Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi weiterlaufen während showmessage() (https://www.delphipraxis.net/70150-weiterlaufen-waehrend-showmessage.html)

happyaura 25. Mai 2006 21:12


weiterlaufen während showmessage()
 
Hallo,
ich möchte dem User meines Programmes gerne etwas mitteilen, ohne das während dessen das Programm stehen bleibt. Am liebsten wäre es mir, wenn das ganze als popup laufen könnte, nicht als label.
ein wenig pseudocode sagt mehr, als tausend worte:
Delphi-Quellcode:
procedure Tform1.ontimer
begin
  timer.enabled:= false;

  // tu was
  if bedingung then
    //benachrichtige user z.B. Showmessage
    // das fenster sollte aber möglichst nicht bei jedem timer ausgelöst werden, sondern nur, wenn keines offen ist...
  timer.enabled:= true;
end
P.S.: mit suchen hab ich es schon versucht, aber irgendwie wohl nicht die passenden suchwörter gefunden...

Cyberbob 25. Mai 2006 21:22

Re: weiterlaufen während showmessage()
 
Das ist meines Wissens nicht möglich. Du könntest ein neues Formular erstellen und dieses anzeigen. Dann müssten die Prozeduren der Hauptform weiteraebeiten.

happyaura 25. Mai 2006 21:31

Re: weiterlaufen während showmessage()
 
das wär natürlich höchst schade. gibt es denn eine möglichkeit, wenn man die forderung nach "warnung nicht doppelt öffnen" fallen lässt? primär geht es mir erst einmal darum, dass das programm weiterläuft, vor allem der Timer weiterläuft. Buttonklicks und andere Benutzereingaben können meinentwegen gerne erst abgearbeitet werden, wenn die warnmeldung weggeklickt ist.

Cyberbob 25. Mai 2006 21:36

Re: weiterlaufen während showmessage()
 
Du könntest mit Threads arbeiten. Schau mal unter http://www.michael-puff.de/dirindex....phi/Tutorials/ nach.
Aber meineswissens gibt es keine einfache möglichkeit, das Programm während der anzeige einer MessageBox weiterlaufen zu lassen. Evtl gehts ja über SendMessage oder dergleichen, womit ich mich aber nicht so auskenne.

lizardking 25. Mai 2006 21:41

Re: weiterlaufen während showmessage()
 
Zitat:

Zitat von happyaura
das wär natürlich höchst schade. gibt es denn eine möglichkeit, wenn man die forderung nach "warnung nicht doppelt öffnen" fallen lässt? primär geht es mir erst einmal darum, dass das programm weiterläuft, vor allem der Timer weiterläuft. Buttonklicks und andere Benutzereingaben können meinentwegen gerne erst abgearbeitet werden, wenn die warnmeldung weggeklickt ist.

Cyberbob hat doch 'ne passende Loesung beschrieben... Einfach 'ne neue Form dafuer anlegen. Die darf halt nur nicht modal angezeigt werden(wie es z.B. ShowMessage macht), dann laeuft das Programm normal weiter.

Gruss, Lizzy

happyaura 25. Mai 2006 23:23

Re: weiterlaufen während showmessage()
 
hatte gehofft, dass es eine Lösung mit 1-2 befehlen gibt. Hab es nun aber über ein neues formular gebastelt, das erste mal, dass eine anwendung bei mir aus 2 formen bestehet. Und siehe da, es klappt und war gar nicht so schlimm ;-) Im Gegenteil, es ist so sogar jetzt noch etwas anwenderfreundlicher geworden.

Vielen dank für eure Hilfe.

Gruß Martin.

Luckie 25. Mai 2006 23:41

Re: weiterlaufen während showmessage()
 
Wenn du das Formular aber nicht modal anzeigen lässt, verschwindet es im Hintergrund, wenn der Benutzer das darunterliegende Fenster anklickt. Und das ist dann doch wohl nicht so gedacht oder? Ein modales Fenster hat nun mal die Eigenschaft, dass es erst weiterget, wenn man es schließt.

juergen 26. Mai 2006 00:28

Re: weiterlaufen während showmessage()
 
wie wäre es die 2. Form dann auf StayOnTop zu setzen und die Hauptform auf visible := false zu setzen?

Luckie 26. Mai 2006 00:34

Re: weiterlaufen während showmessage()
 
Weil man dann auch nicht mit einem anderen Fenster weiterarbeitenn kann, weil dein Fenster dann immer im Weg ist.

lizardking 26. Mai 2006 06:44

Re: weiterlaufen während showmessage()
 
Zitat:

Zitat von Luckie
Wenn du das Formular aber nicht modal anzeigen lässt, verschwindet es im Hintergrund, wenn der Benutzer das darunterliegende Fenster anklickt. Und das ist dann doch wohl nicht so gedacht oder? Ein modales Fenster hat nun mal die Eigenschaft, dass es erst weiterget, wenn man es schließt.

Kann man ja entsprechend so steuern, dass im OnActivate der Hauptform ein BringToFront der zweiten Form aufgerufen wird, wenn diese sichtbar ist. Zwar eine etwas... oehm... hakelige Loesung, aber sie funktioniert ;)

Gruss,
Lizzy


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 Uhr.
Seite 1 von 2  1 2      

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