![]() |
Message gelöcht ohne timer
Hi kann man es realisieren
Das eine Meldung aufgeht und nach 2 sekunden wieder weg ohne timer.(und ohne auf ok zu drücken) bei der zeile 7
Delphi-Quellcode:
procedure TForm7.löschenClick(Sender: TObject);
begin if MessageDlgPos('Wollen Sie diesen Vertretungsplan wirklich löschen? ',mtInformation,[mbYes,mbNo],0,290,300) = mrYes then begin DeleteFile(FileListBox1.FileName); Showmessage('Datei wurde gelöscht'); // Zeile 7 end else else begin if MessageDlgPos('Es wurde kein Vertretungsplan ausgewählt' +'',mtInformation,[mbok],0,260,200) = mrok then end; end; |
Re: Message gelöcht ohne timer
:gruebel:
Kannst du uns noch den Rest zeigen? Oder wie kommts, dass hier zwei "else" hintereinanderstehen und deine Vorhersage nicht eintritt? Woher kommen denn die 2 Sekunden? |
Re: Message gelöcht ohne timer
Delphi-Quellcode:
Die 2 sekunden hab einfach mal so geschrieben
procedure TForm7.LöschenClick(Sender: TObject);
begin if FileListBox1.Items.Count > 0 then begin if MessageDlgPos('Wollen Sie diesen Vertretungsplan wirklich löschen? ',mtInformation,[mbYes,mbNo],0,290,300) = mrYes then begin DeleteFile(FileListBox1.FileName); Showmessage('Datei gelöscht'); end else ComboBox4.SetFocus; end else begin if MessageDlgPos('Es wurde kein Vertretungsplan ausgewählt' +'',mtInformation,[mbok],0,260,200) = mrok then end; |
Re: Message gelöcht ohne timer
ich würde sagen mit Delay(2000) oder sleep(2000) + Keybd_event
|
Re: Message gelöcht ohne timer
naja mit sleep ist das nicht so gut oder
|
Re: Message gelöcht ohne timer
Ach, das war eine Frage :wall: Es sah aus, wie eine Aussage.
Selbst mit Timer ist es nicht ganz einfach einen Messagedlg zu unterbrechen. Messagedlg ist dafür nicht gedacht. Bau dir deine eigenes Fenster zusammen und zeige dies an. Allerdings brauchst du da einen Timer. Irgendwie musst du ja die Zeit messen. :gruebel: (Achte darauf, dass dieses Fenster nicht gleich zu Programmstart erzeugt wird!) Der Messagedlg ist ein Formular was Modal angezeigt wird. |
Re: Message gelöcht ohne timer
Ah gut das war meine Frage geht also nicht
das hätte ich dann als nächstes gemacht ein eigenes fenster gebaut ist halt sehr umständlich für ne kleine meldung das die datei gelöscht wurde aber danke |
Re: Message gelöcht ohne timer
Du kannst statt eines eigenen Formulars eben auch in den Components von Application nach dem Messagedlg suchen und ihn löschen.
Edit: Im Event des Timers :mrgreen: |
Re: Message gelöcht ohne timer
na ich glaube das hört sich jetzt noch komplizierter an
ich mach es dann lieber mit der neuen form oder mit einem Panel |
Re: Message gelöcht ohne timer
Hallo,
alle MessageDlgX rufen intern ja CreateMessageDialog auf, um den Dialog zu erzeugen. Return-Wert ist TForm und muss noch mit ShowModal aufgerufen werden. Ein Free oder .Close der Variable sollte eigentlich klappen. also
Delphi-Quellcode:
so in etwa
MyDlg: TForm;; // nicht lokal, sondern direkt im aufrufenden Formular definieren.
procedure TForm1.DoShowMessageDlg; var iDlgResult: Word; begin MyDlg:= CreateMessageDialog(... ); Timer1.Enabled:= True; iDlgResult:= MyDlg.ShowModal; if MyDlg<>NIL then begin if iDlgResult ... end; end; procedure TForm1.OnTimer; begin FreeAndNIL(MyDlg); end; Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz