Zitat von
Daniel:
Hallo Croco,
Zitat von
lordcroc:
Ich hab eine class deklariert da wollte er nicht mal diese variablen initialisieren ich musste draus ein object machen!
Das ist auch kein Wunder. Die Klassendeklaration ist erstmal nicht viel mehr als die Bau-Anleitung für ein Objekt. Erst das Objekt selber ist ein funktionierendes "Ding", welches alle die Möglchkeiten bietet, die Du Dir in Deiner Klassen-Definition angegeben hast.
Ich glaube lordcroc meint es eher so, dass er einer Deklaration
type TSomething = class so umformen musste, dass dabei
type TSomething = object heraus kommt.
@lordcroc: Das dürfte daran liegen, dass du keinen Kostruktor und Destruktor eingebaut hast.
objects sollte man nicht mehr benutzen, sie sind nur zur Abwärtskompatiblität da. Baue deine Klasse so um:
Code:
type
TSomething = class(TObject)
{ hier dein Kram }
constructor Create();
destructor Destroy();
end;
// ...
constructor TSomething.Create();
begin
inherited Create();
end;
destructor TSomething.Destroy();
begin
inherited Destroy();
end;
Du kannst diene Objekte dann mit
aTSomethingInstanceVariable := TSomething.Create() erstellen und mit
aTSomethingInstanceVariable.Free() entfernen.
MfG,
d3g