Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Feststellen, ob Form schon komplett angezeigt ist (https://www.delphipraxis.net/49756-feststellen-ob-form-schon-komplett-angezeigt-ist.html)

s.h.a.r.k 15. Jul 2005 13:18


Feststellen, ob Form schon komplett angezeigt ist
 
Hallo!

Hab heute gleich nochmals eine Frage: Und zwar wie der Titel schon sagt: Wie kann ich feststellen, ob eine gewisse Form schon komplett angezeigt ist, d.h. schon auf den Desktop gezeichnet ist!?

Vielen Dank schon mal für eure Antworten!

mfg shark

freak24 15. Jul 2005 13:39

Re: Feststellen, ob Form schon komplett angezeigt ist
 
Wenn mich nicht alles täuscht dürfte dann die Eigenschaft Visible auf True stehen. Wenn ein Form nicht angezeigt wird steht es jedenfalls auf False.
(Schlagt mich wenn ich Müll erzähle :lol: )

derpepe 15. Jul 2005 13:43

Re: Feststellen, ob Form schon komplett angezeigt ist
 
Zitat:

Zitat von freak24
Wenn mich nicht alles täuscht dürfte dann die Eigenschaft Visible auf True stehen. Wenn ein Form nicht angezeigt wird steht es jedenfalls auf False.
(Schlagt mich wenn ich Müll erzähle :lol: )

Müll erzählst Du nicht, aber ich glaube das meint er nicht.

Ich weiß es jetzt nicht genau, aber ist die Form nicht komplett gezeichnet wenn OnShow aufgerufen wird?

nailor 15. Jul 2005 13:55

Re: Feststellen, ob Form schon komplett angezeigt ist
 
nein. Beweis:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
Sleep(1000);
end;
PS: http://www.delphipraxis.net/internal...=397459#397459

shmia 15. Jul 2005 14:54

Re: Feststellen, ob Form schon komplett angezeigt ist
 
Zitat:

Zitat von s.h.a.r.k
Wie kann ich feststellen, ob eine gewisse Form schon komplett angezeigt ist, d.h. schon auf den Desktop gezeichnet ist!?

Warum willst du das überhaupt wissen ?
Wenn du eine Aktion ausführen möchtest, direkt nachdem das Formular angezeigt wurde, gibt es hier eine Lösung mit Windows Messages.
http://www.delphipraxis.net/internal...ct.php?t=23524
Wie Nailor schon gezeigt hat, ist das Event OnShow zu früh und AfterShow gibt's nicht.
http://www.delphipraxis.net/internal_redirect.php?t=200

derpepe 16. Jul 2005 10:19

Re: Feststellen, ob Form schon komplett angezeigt ist
 
Zitat:

Zitat von nailor
nein. Beweis:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
Sleep(1000);
end;
PS: http://www.delphipraxis.net/internal...=397459#397459

überzeugt :-)

s.h.a.r.k 18. Jul 2005 11:59

Re: Feststellen, ob Form schon komplett angezeigt ist
 
Hallo!

Die Lösung zu meinem Problem findet ihr in diesem Beitrag von shima. Ich hab die nur ein paar kleine Fehler ausgebessert!

Zitat:

Zitat von shmia
Du musst deinem Formular selbst eine benutzerdefinierte Message schicken:
Delphi-Quellcode:
  const
     UM_PSS_INIT = WM_USER + 100;

  TForm1 = class(TForm)
     protected
        procedure UM_INIT(var msg: TMessage); message UM_PSS_INIT;
  end;
Im Event OnShow schickst du deinem Formular selbst eine Message:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
   // zuerst eigene Dinge erledigen
   ....
 
   // schicke Message an eigenes Formular
   PostMessage(Self.Handle, UM_PSS_INIT, 0, 0);
end;
Sobald das Formular angezeigt wurde, wird die Message empfangen und verarbeitet:
Delphi-Quellcode:
procedure TForm1.UM_INIT(var msg: TMessage);
begin
   // hier deinen Programmcode einfügen
   ...
end;


QuickAndDirty 22. Jul 2005 08:28

Re: Feststellen, ob Form schon komplett angezeigt ist
 
mal ganz davon abgesehen das du wenn OnActive eintritt auch davon ausgehen kannst das es angezeigt wird


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 Uhr.

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