Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Message gelöcht ohne timer (https://www.delphipraxis.net/96758-message-geloecht-ohne-timer.html)

SaFu 30. Jul 2007 14:05


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;

sirius 30. Jul 2007 14:12

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?

SaFu 30. Jul 2007 14:14

Re: Message gelöcht ohne timer
 
Delphi-Quellcode:
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;
Die 2 sekunden hab einfach mal so geschrieben

dajuhsa 30. Jul 2007 14:15

Re: Message gelöcht ohne timer
 
ich würde sagen mit Delay(2000) oder sleep(2000) + Keybd_event

SaFu 30. Jul 2007 14:19

Re: Message gelöcht ohne timer
 
naja mit sleep ist das nicht so gut oder

sirius 30. Jul 2007 14:23

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.

SaFu 30. Jul 2007 14:26

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

sirius 30. Jul 2007 14:29

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:

SaFu 30. Jul 2007 14:31

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

hoika 30. Jul 2007 14:33

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:
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;
so in etwa

Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz