AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OnCreate bei eigener Klasse?

Ein Thema von Bronko · begonnen am 3. Jun 2004 · letzter Beitrag vom 3. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
Bronko

Registriert seit: 19. Mai 2004
19 Beiträge
 
#1

OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 12:01
Kann man einer selbst erstellten Klasse, die von TObject abgeleitet wurde, irgendwie die Eigenschaft OnCreate mitgeben, die dann eine Prozedur aufruft, die bei der Erstellung automatisch ausgeführt wird?
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#2

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 12:19
Delphi-Quellcode:
USES
  Classes;

TYPE
  TMyType = CLASS(TObject)
  PRIVATE
    FOnCreate : TNotifyEvent;
  PUBLISHED
    CONSTRUCTOR Create;
    PROPERTY OnCreate : TNotifyEvent READ FOnCreate WRITE FOnCreate;
  END;

implementation

CONSTRUCTOR TMyType.Create;
BEGIN
  INHERITED;
  IF Assigned(FOnCreate) THEN FOnCreate(NIL);
END;
..oder so ähnlich...

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 12:43
Besser wäre:
Delphi-Quellcode:
constructor TMyType.Create;
begin
  inherited;
  if Assigned(FOnCreate) thenFOnCreate(SELF);
end;
Dann gibts das Objekt das erzeugt wurde auch gleich mit.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Bronko

Registriert seit: 19. Mai 2004
19 Beiträge
 
#4

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 13:26
Danke schön
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#5

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 13:37
Es reicht einfach in der published Section

Delphi-Quellcode:
published
  property onCreate;
hinzuschreiben, da es nen vererbtes Ereignis ist brauch man da selbst nichts mehr rumzuwurschteln.

mfg phlux
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 13:38
Zitat von phlux:
Es reicht einfach in der published Section

Delphi-Quellcode:
published
  property onCreate;
hinzuschreiben, da es nen vererbtes Ereignis ist brauch man da selbst nichts mehr rumzuwurschteln.

mfg phlux
Hi,

Ähm... ich glaube TObject hat kein OnCreate...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#7

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 13:57
Stimmt In letzter Zeit geb ich ja nur noch Müll von mir habs grad nachgeguckt, hast recht, existiert nicht in der Basisklasse, aber solltest du irgendwie mal was von TPanel, TLabel, etc. ableiten dann klappt das, weils halt da schon integriert ist, so nochmal gerettet
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 14:33
Moin!

Ähm, eine Frage Jungs: Wie stellt ihr euch das denn vor??

Mal so als Abhandlung über den Ablauf, vielleicht versteht ihr dann meine Bedenken:

1. Man kann eine Methode dem OnCreate erst zuweisen, wenn man die Klasse instanziiert habe...
2. Das OnCreate wird im Constructor der Klasse aufgerufen, wenn eine Methode dem OnCreate zugewiesen wurde...

Nochmal zur Verdeutlichung:
Delphi-Quellcode:
Var
  Test : TTest;
Begin
  Test := TTest.Create; // <-- hier wird OnCreate aufgerufen, wenn vorhanden
  Test.OnCreate := MyProc; // <-- hier kann erst OnCreate zugewiesen werden...
End;
Bei TCustomForm Elementen wird das OnCreate ausgelöst durch das erhalten der WM_CREATE Botschaft von Windows - die nach dem CreateWindow() Aufruf gesendet wird. In dieser Message muss man das erstellen des Fenster, grob gesagt, "bestätigen". Daher kommt
das OnCreate nach dem Constructor und vor dem eigentlichen endgültigen existieren des Fensters...

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#9

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 14:41
Zitat von Muetze1:
1. Man kann eine Methode dem OnCreate erst zuweisen, wenn man die Klasse instanziiert habe...
Logisch... So gehts, wenn man schreibt ohne zu denken
Gut vergesst alles, was ich da oben von mir gegeben hab, ist logischerweise Unfug

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.019 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: OnCreate bei eigener Klasse?

  Alt 3. Jun 2004, 15:30
Ist ja eigentlich widersprüchlich die ganze Sache. Wofür benötige ich bei einem TObject ein OnCreate-Event?
Wenn irgendwas beim Create ausgeführt werden soll, dann ab ins Create. Wenn aber der Benutzer, der solch ein Objekt verwendet, noch was beim Create machen will, dann leite es doch von TComponent ab. Denn nur dann kann man auch im Designmodus das OnCreate setzen.
Was meint ihr?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 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