Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   ein event und mehrere prozeduren (https://www.delphipraxis.net/153289-ein-event-und-mehrere-prozeduren.html)

snook 28. Jul 2010 07:58

ein event und mehrere prozeduren
 
hey,

ich habe in meinem mainform mehrere (unbekannt wieviele genau) komponenten die alle von der selben basisklasse abgeleitet sind. ich würde gerne beim oncreate des mainforms in jeder komponente eine prozedur auslösen. geht das auch irgendiwe eleganter (besser) als so?
Delphi-Quellcode:
procedure TKomponente.Initialize(Sender: TObject);
var I: integer;
begin
  FInitialized := true;
  if (Sender <> nil) then
    for i := 0 to TComponent(Sender).ComponentCount do
      if TComponent(Sender).Component[i].InheritsFrom(TKomponentenBasisklasse) and
         not (TKomponentenBasisklasse(TComponent(Sender).Components[i])).Initialized
           then (TKomponentenBasisklasse(TComponent(Sender).Components[i])).Initialize(Sender);
end;
wenn eine Instanz der Komponente erzeugt wird wird dieses Initialize dem OnCreate der mainform zugeordnet, aber dass wird halt bei jeder weiteren Komponente überschrieben, daher dieses konstrukt.

viele grüße

hoika 28. Jul 2010 08:09

AW: ein event und mehrere prozeduren
 
Hallo,

Zitat:

oncreate des mainforms
Was spricht dagegen, den Konstruktor der jeweiligen Komponente zu benutzen ?
Muss das Form schn vollständig initialisiert sein,
dann schau dir mal Loaded an.


Heiko

snook 28. Jul 2010 08:26

AW: ein event und mehrere prozeduren
 
ich bin da auf die mainform angewiesen, unter umständen wird die komp mit ner toolbar aus dem mainform verbunden (wenn vorhanden)

edit: loaded is genau was ich gesucht habe danke


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