Odliczjacy messagebox ?

0

Czy da sie jakos zrobic aby pokazal sie messagebox z opcja "tak" lub "nie" a na jego pasku tytulowym widoczne byloby odliczanie od 3 do 0 jesli nie podejmie sie akcji to sam wybierze "nie" [???]

0

Zamiast MessageBox zrób własne okno i do odliczania oraz zmiany nagłówka użyj TTimer.

0

Moglbys podpowiedziec jak sie do tego zabrac [???] :-/

0
smigo napisał(a)

Moglbys podpowiedziec jak sie do tego zabrac [???] :-/

File -> New -> Form
Wrzucasz na formę komponent Timer i

From1.Caption := IntToStr(jakisCzas);

pzdr.

0

na szybkiego i nie testowane:

var
  Czas  : Integer = 3;

implementation

{$R *.dfm}

procedure TForm1.ButtonNieClick(Sender: TObject);
begin
      //tutaj jakies instrukcje
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Dec(Czas);
  Form1.Caption := IntToStr(Czas);
  if Czas = 0 then
  begin
    ButtonNieClick(Sender);
  end;
end;
0

Możesz wykorzystać CreateMessageDialog
Przykład:

Uses ExtCtrls;
Var 
  d:tform;
  T:TTimer;

Procedure TForm1.Timer(Sender: TObject);
Begin
  d.Tag:=d.Tag-1;
  d.Caption:=inttostr(d.tag);
  IF d.tag<1 then d.ModalResult:=mrNo;
End;

Function TForm1.MessageDlgTimer(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons): Word;
Begin
 d:=CreateMessageDialog(msg,DlgType, Buttons);
 d.tag:=5;
 T:=TTimer.create(nil);
 T.Interval:=1000;
 T.OnTimer:=Timer;

 Result:=d.ShowModal;

 T.Free;
End;

 if MessageDlgTimer('Czy wyjść ?',
    mtConfirmation, [mbYes, mbNo]) = mrYes then
0

Dzieki poszlo ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1