Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   OnAftercreate oder Aftershow (https://www.delphipraxis.net/169162-onaftercreate-oder-aftershow.html)

mcinternet 3. Jul 2012 09:22

OnAftercreate oder Aftershow
 
Hallo,

ich probiere und bastle rum ( auch nach den hier gefundenen Tipps ) und komme da nicht weiter.

Ich habe eine Komponente entwickelt, welche sich beim Starten der Mainform an das Ereignis OnCreate oder OnShow dranhängen soll, ( hat auch als Klasse logischerweise einen eigenen Construktor ) aber logischerweise erst nachdem alle Construktoren durch sind. Wie kann ich da ein eigenes Ereignis ( OnafterCreate oder OnAfterShow o.ä. ) dranhängen?

Gruss

mc

shmia 3. Jul 2012 09:40

AW: OnAftercreate oder Aftershow
 
Zitat:

Zitat von mcinternet (Beitrag 1173256)
Ich habe eine Komponente entwickelt, welche sich beim Starten der Mainform an das Ereignis OnCreate oder OnShow dranhängen soll

Wozu brauchst du das?
Handelt es sich um eine visuelle oder nicht-visuelle Komponente?
Visuelle Komponenten werden auch Controls genannt.

Kennst du schon die virtuelle Methode
Delphi-Quellcode:
Loaded
, die direkt nach dem Laden der Properties aufgerufen wird?
Delphi-Quellcode:
procedure TMeinKompo.Loaded; {override;}
begin
  inherited;
  // hier Code ...
 
end;

Maya 3. Jul 2012 09:52

AW: OnAftercreate oder Aftershow
 
Ich brauchte gestern ein Ereignis, was nach dem OnShow geschieht und hab dafür OnActivate genutzt. Reicht für meine Zwecke zumindest aus.
Vielleicht mal ein Blick wert?

mcinternet 3. Jul 2012 10:12

AW: OnAftercreate oder Aftershow
 
Zitat:

Zitat von shmia (Beitrag 1173260)
Zitat:

Zitat von mcinternet (Beitrag 1173256)
Ich habe eine Komponente entwickelt, welche sich beim Starten der Mainform an das Ereignis OnCreate oder OnShow dranhängen soll

Wozu brauchst du das?
Handelt es sich um eine visuelle oder nicht-visuelle Komponente?
Visuelle Komponenten werden auch Controls genannt.

Kennst du schon die virtuelle Methode
Delphi-Quellcode:
Loaded
, die direkt nach dem Laden der Properties aufgerufen wird?
Delphi-Quellcode:
procedure TMeinKompo.Loaded; {override;}
begin
  inherited;
  // hier Code ...
 
end;


Hey, das wars!
vielen Dank

Gruss
mc

jaenicke 3. Jul 2012 11:52

AW: OnAftercreate oder Aftershow
 
Auch wenn das Thema schon gelöst ist, noch ein Nachtrag:
Zitat:

Zitat von Maya (Beitrag 1173265)
Ich brauchte gestern ein Ereignis, was nach dem OnShow geschieht und hab dafür OnActivate genutzt. Reicht für meine Zwecke zumindest aus.
Vielleicht mal ein Blick wert?

Das Problem an diesem Event ist, dass es nicht nur einmal ausgeführt wird, sondern jedesmal, wenn das Fenster aktiviert wird. Deshalb ist es für Initialisierungszwecke relativ ungeeignet.

Maya 3. Jul 2012 12:02

AW: OnAftercreate oder Aftershow
 
Zitat:

Zitat von jaenicke (Beitrag 1173304)
Auch wenn das Thema schon gelöst ist, noch ein Nachtrag:
Zitat:

Zitat von Maya (Beitrag 1173265)
Ich brauchte gestern ein Ereignis, was nach dem OnShow geschieht und hab dafür OnActivate genutzt. Reicht für meine Zwecke zumindest aus.
Vielleicht mal ein Blick wert?

Das Problem an diesem Event ist, dass es nicht nur einmal ausgeführt wird, sondern jedesmal, wenn das Fenster aktiviert wird. Deshalb ist es für Initialisierungszwecke relativ ungeeignet.

Ich weiß, stand hier: Understanding the Birth, Life and Death of a Delphi Form ja auch so drin. Aber da ich das Fenster danach sofort schließe wieder, dürfte das kein Problem ergeben.
Die Testphase ist eh noch nicht abgeschlossen, muss nebenbei immerhin noch anderes machen.

Nachtrag: Da mit dem OnActivate sofort ein Vorgang gestartet wird, kann das Fenster während dem Vorgang nicht noch mal aufgerufen werden. Hab das jetzt mehrmals getestet und es reagiert genauso, wie ich es möchte.:)

himitsu 3. Jul 2012 12:47

AW: OnAftercreate oder Aftershow
 
Loaded:

Aber Achtung, dieses wird standardmäßig nur vom DFM-Loader aufgerufen, also beim Laden der Form.
Also wenn man die Komponente manuell erstellt wird, dann wird Loaded nicht aufgerufen.

Leider kann man im Constructor auch noch nicht den ComponentState (csLoading/csReading) auslesen.
(nicht direkt ... über den Owner könnte man es aber versuchen, allerdings muß man da auch aufpassen, ob die Komponente über den Loader erstellt wird, oder Manuell in der Owner-Komponente...)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 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