Hallo Zusammen,
jetzt habe ich den Vorschlag von uligerhardt mal ausprobiert, aber irgendwas scheine ich nicht richtig zu verstehen. Könnt Ihr mir nochmal weiterhelfen?
Also, ich hab mal folgende
Unit gemacht:
Delphi-Quellcode:
unit hs.str2;
interface
type
ThsStr2 =
record
FStr:
string;
function AsString:
string;
function Init(
const mString:
string): ThsStr2;
end;
implementation
uses
System.SysUtils;
{ ThsStr2 }
function ThsStr2.AsString:
string;
begin
Result := FStr;
end;
function ThsStr2.Init(
const mString:
string): ThsStr2;
begin
FStr := mString;
// Result := @Self; // so war der Vorschlag, aber das kompiliert gar nicht "Pointer und ThsStr2"
Result := ThsStr2(@Self);
// so kompiliert es, aber wirft eine AV bei der Ausführung
end;
end.
Testen wollte ich das Ganze so:
Delphi-Quellcode:
procedure Test;
var
lStr: ThsStr2;
lDummy: string;
begin
lDummy := lStr.Init('dummy').AsString;
end;
Aber eben beim Init bekomme ich eine
AV. Was mache ich falsch - oder wo ist mein Denkfehler?
Viele Grüße
Harald