![]() |
Re: Objekt funktion override
Zitat:
|
Re: Objekt funktion override
Das Problem ist, es handelt sich um einen interpreter, der natürlich zur laufzeit sachen erzeugt und das override von funtkionen bringe ich nicht zum laufen, da mir hier etwas der plan fehlt
so ein script sieht dann zb so aus
Delphi-Quellcode:
... und das Clear schaffe ich nicht, das er mir nun aufruft, weil ich nicht weiss ob und wie ich mich hier zwischen delphi hängen kann ...
unit testinterpreterv3;
type TProzessItem = class private fTyp : integer; Name : string; public constructor Create; override; destructor Destroy; override; procedure Show; end; TProzessList = class(TList) private myCount : integer; public constructor Create; override; destructor Destroy; override; procedure Clear; function FindByTyp(Typ : integer) : TProzessItem; function AddTyp(Typ : integer; Name : string) : TProzessItem; end; constructor TProzessItem.Create; begin ShowMessage('TProzessItem.Create'); end; destructor TProzessItem.Destroy; begin ShowMessage('TProzessItem.Free'); end; constructor TProzessList.Create; begin myCount := 0; ShowMessage('ProzessList.Create'); end; destructor TProzessList.Destroy; begin ShowMessage('ProzessList.Free'); end; procedure TProzessList.Clear; var i : integer; begin for i:=0 to Count-1 do Item[i].Free; inherited; end; function TProzessList.AddTyp(Typ : integer; Name : string) : TProzessItem; begin Result := TProzessItem.Create; Result.fTyp := Typ; Result.Name := Name; Add(Result); myCount := myCount + 1; end; function TProzessList.FindByTyp(Typ : integer) : TProzessItem; var i : integer; begin Result := nil; for i:=0 to Count-1 do if Items[i].fTyp = Typ then begin Result := Items[i]; break; end; end; procedure TProzessItem.Show; begin ShowMessage(Name); Name := Name + 'test'; end; function main : integer; var x : TProzessItem; x2 : TProzessItem; li : TProzessList; begin li := TProzessList.Create; x := li.AddTyp(1, 'test'); li[0].Show; li.FindByTyp(1).Show; ShowMessage(myCount.Count); li.Free; end; end. |
Re: Objekt funktion override
1. Hast du es schon mal mit override versucht ?
2. Warum nimmst du keine ObjectList, da ist Clear so implementiert. ( wenn OwnsObjects True ist ) |
Re: Objekt funktion override
Zitat:
nicht zu vergessen, das ist ein SCRIPT was in einem INTERPRETER läuft, und kein Delphi code!!! |
Re: Objekt funktion override
Hallo,
Delphi-Quellcode:
jefährlich ...
for i:=0 to Count-1 do Item[i].Free;
besser
Delphi-Quellcode:
Ich hatte mir übrigens damals eine neue Methode ClearList definiert,
for i:= Count-1 downto 0 do Item[i].Free;
die im Destructor aufgerufen wurde. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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