Mannomann, manche Sprachkonzepte fallen mir immer noch schwer.
Wie definieren ich eine Klassenmethode, die eine Instanz der Klasse erzeugt, darauf arbeitet, eine Rückgabe erzeugt und das Objekt wieder freigibt?
Ich habe bisher:
Delphi-Quellcode:
MyClass = class(TObject)
constructor Create; override;
destructor Destroy; override;
class procedure GetValues(var val1: string; var val2: string);
end;
class procedure MyClass.GetValues(var val1: string; var val2: string);
var
obj: MyClass;
begin
obj := MyClass.Create;
val1 := obj.ClassName;
val2 := 'irgendwas';
obj.free;
end;
Wenn ich nun z.B. von der Hauptform aus mit
MyClass.GetValues(s1, s2);
darauf zugreifen will, bekomme ich immer einen EVariantError (Ungültige Varianten-Typumwandlung).
Kann mir jemand sagen, was ich da falsch gemacht habe?
EDIT: Natürlich sind contructor und destructor korrekt implementiert, wenn ich das was ich aus der Klassenmethode heraus machen will direkt auf dem Objekt mache tut da auch.
/EDIT