![]() |
Prozedur in Typendeklaration
Ich möchte für nen selbstdefinierten Typ gewisse Funktionen festlegen. Ich weiß aber nicht wie ich die Prozedur oder Funtion definieren soll.
Ich hab mal folgendes gemacht:
Delphi-Quellcode:
Dazu hab ich noch die Prozedur new, in der dann einfach steht new(node);
type
dNode = ^pNode; pNode = record dat: integer; next: dNode; new: procedure (var node: dNode); end; Ich hab den Befehl new jetzt nur genommen um ein einfaches Beispiel zu bringen, da kommen dann natürlich andere hin. Das Problem hierbei wäre nur, dass ich ja schreiben muss x.new(x); ...was eigentlich relativ sinnlos ist. Ich will nur schreiben x.new; Ist das irgendwie möglich? MfG Niels |
Re: Prozedur in Typendeklaration
Nein,
aber man könnte ja auch ne Klasse verwenden! Oder? |
Re: Prozedur in Typendeklaration
Moin Niels,
ja, ist möglich. Nur kannst Du dann keinen Record nehmen, sondern musst Dir eine neue Klasse (class) erstellen. Hier kannst Du Daten und Methoden mischen. |
Re: Prozedur in Typendeklaration
Wenn ich ne Klasse nehm, dann hab ich aber auch diese ganzen Standard-Funktionen und Eigenschaften drin. Kann ich das irgendwie rausschmeisen?
MfG Niels |
Re: Prozedur in Typendeklaration
es geht maximal
Delphi-Quellcode:
wobei du für TNotifyEvent dann auch andere Proceduretypen oder wie sich das nennt einsetzen kannst
type
dNode = ^pNode; pNode = record dat: integer; next: dNode; new: TNotifyEvent; end; bsp.:
Delphi-Quellcode:
und schon hast du das was du wolltest....
type
TMyEvent = procedure(var node: dNode) of Object; dNode = ^pNode; pNode = record dat: integer; next: dNode; new: TMyEvent; end; |
Re: Prozedur in Typendeklaration
Moin Niels,
Du könntest es dann noch so machen:
Delphi-Quellcode:
Dann müsstest Du nur bei jedem Satz den Du verwendest noch die Adresse einer entsprechenden Prozedure zuweisen.
type
dNode = ^pNode; TMyProc = procedure(var node: dNode); pNode = record dat: integer; next: dNode; new: TMyProc; end; |
Re: Prozedur in Typendeklaration
Ich versteh nicht wirklich wo jetzt der Unterschied zwischen dem was ich und dem was ihr geschrieben habt.
Außerdem passiert folgendes: wenn ich dann die Prozedur neu schreib sagt er mir Identifier redeclared. Wo soll ich die Prozedur dann hinschreiben, dass es funzt? |
Re: Prozedur in Typendeklaration
Moin Niels,
Zitat:
Geht bei mir problemlos. |
Re: Prozedur in Typendeklaration
ich hab deins ins interface geschrieben und den Inhalt der Prozedur in den implementation-Teil
|
Re: Prozedur in Typendeklaration
Delphi-Quellcode:
type
TMyEvent = procedure(var node: dNode) of Object; dNode = ^pNode; pNode = record dat: integer; next: dNode; new: TMyEvent; end; TForm1 = class(TForm) [...] private procedure test11(var node: dNode); end; [...] procedure TForm1.irgendwas... var test: pNode; begin test.new := test11; test.new(wasweißich); [...] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 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