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 Verständnisfrage zu TFrame > fehlendes OnCreate (https://www.delphipraxis.net/131461-verstaendnisfrage-zu-tframe-fehlendes-oncreate.html)

Pfoto 25. Mär 2009 08:58


Verständnisfrage zu TFrame > fehlendes OnCreate
 
Hallo zusammen,

ich gebrauche nahzu zum ersten mal Frames in denen ich eigene
nicht-visuelle Objekte erstellen muss, und mich stört, dass es
in Frames kein OnCreate-Event gibt.

Wie ich gesehen habe, sind doch TForm und TFrame beide von
TScrollingWinControl abgeleitet.

Gibt es einen nachvollziehbaren Grund, warum OnCreate und
OnDestroy bei TFrame nicht als Events verfügbar sind?
Man hat dies doch sicher ganz bewusst gemacht, oder?

Ich erstelle nun die benötigten Objekte über eine Frame-Methode,
die ich im OnCreate-Teil des Elternobjektes aufrufe. Oder gibt
es da doch noch eine bessere Lösung?


Dank und Gruß
Jürgen

Keldorn 25. Mär 2009 09:06

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Hallo

ich überschreibe den constructor und destructor
Delphi-Quellcode:
constructor Create(AOwner: TComponent); override;
...
und erstelle dort meine Objekte, die der frame benutzt.

Gruß Frank

Pfoto 25. Mär 2009 09:24

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Hallo Frank,

ich stand da irgendwie auf dem Schlauch und glaubte,
man müsste erst eine eigene Ableitung schreiben, aber
letztendlich kann ich ja den Konstruktor einfach schon
im erstellen TFrame unterbringen.

Das ist schonmal eine sinnvollere Variante als meine
zusätzlichen Methoden. Danke!

Gruß
Jürgen

Bbommel 25. Mär 2009 09:40

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Zitat:

Zitat von Pfoto
ich stand da irgendwie auf dem Schlauch und glaubte,
man müsste erst eine eigene Ableitung schreiben, aber
letztendlich kann ich ja den Konstruktor einfach schon
im erstellen TFrame unterbringen.

Ich muss nur ganz kurz klugsch***ern: Deim eigenes Frames ist ja auch schon eine eigene Ableitung von TFrame, in der du dann die Konstruktoren und Destruktoren überschreibst. Insofern hast du selbst also eigentlich ganz richtig gedacht. :thumb:

Ich mach das übrigens in meinen Frames genauso. Funktioniert wunderbar. Aber warum es das "bequeme" OnCreate nicht gibt, verstehe ich auch nicht... dazu habe ich mich aber vielleicht auch zu wenig mit den Delphi-Quelltexten beschäftigt.

Bis denn
Bommel

Pfoto 25. Mär 2009 10:02

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Hallo Bommel,

:oops: :wall:
Oops... man ist das peinlich,
da stand ich wohl auf mehreren Schäuchen....

Danke für den Hinweis!

Gruß
Jürgen

hanspeter 25. Mär 2009 10:27

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Zitat:

Zitat von Pfoto
Hallo zusammen,

ich gebrauche nahzu zum ersten mal Frames in denen ich eigene
nicht-visuelle Objekte erstellen muss, und mich stört, dass es
in Frames kein OnCreate-Event gibt.
n

nur nicht-visuelle Objekte ?
Dann wäre ein Datenmodul besser.
Frames verhalten sich an einigen Stellen sehr spröde.
Ich habe sie deswegen wieder abgeschaft und verwende ein normales TForm.
Setze ich den Parent des TForm auf z.B. einen Panel oder Tabsheet, dann verhält es
sich (fast) wie ein Frame.

Gruß
Peter

Hawkeye219 25. Mär 2009 10:56

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
Hallo,

als Alternative gäbe es noch die virtuelle Methode Delphi-Referenz durchsuchenAfterConstruction. Sie wird lauf Hilfe automatisch aufgerufen, nachdem der letzte Konstruktor des Objekts ausgeführt wurde. Das Objekt ist zu diesem Zeitpunkt also - aus Sicht des Systems - vollständig initialisiert.

Gruß Hawkeye

Pfoto 25. Mär 2009 11:20

Re: Verständnisfrage zu TFrame > fehlendes OnCreate
 
@Peter:
in dem Frame sind schon noch visuelle Elemente, so dass
ein Datencontainer nichts nützen würde.

Ich habe sonst die Frames bzw. Forms ohne Windows-Style
zur Laufzeit erstellt. In diesem Projekt wollte ich einfach
mal in den "Genuss" von zur Designzeit angezeigten Frames
kommen.

@Hawkeye:
das ist zumindest interessant zu wissen, aber in der Praxis
würde ich doch keinen Vorteil erhalten, ob ich nun Create
überschreibe oder AfterConstruction, wenn ich das richt sehe.

Ich dachte halt, es gäbe auch einen nachvollziehbaren Grund,
warum OnCreate und onDestroy als Event nicht published sind.

Gruß
Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.

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