Hi,
Ich wollte den String auslesen der an einer bestimmten Speicheradresse liegt.
So
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Hallo: Pointer;
bla: String;
begin
Instanz := TKlasse.Create;
Instanz.Eigenschaft := 'Hallo';
Hallo := GetMemory($00403EB0); // an der Adresse müsste Instanz.Eingeschaft sein
SetLength(bla,sizeof(Integer));
bla := String(@Hallo);
ListBox1.Items.Add(bla);
end;
Da kommt jedoch nur kryptische Zeichen xD
Ist GetMemory dafür überhaupt geeignet ?
Und ich habe die Adresse herausgefunden indem ich z.B Caption := Instanz.Eigenschaft geschrieben habe bevor die Klasse erstellt wurde. Die Adresse von der Zugriffsverletzung hab ich dann genommen. Bin mir aber auch nicht sicher ob das so geht
Ach ja noch was wodrauf ich gestoßen bin, was ich sehr komisch fand:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Hallo: Pointer;
bla: String;
begin
Instanz := TKlasse.Create;
Instanz.Eigenschaft := 'Hallo';
Hallo := GetMemory($00403EB0); // Da müsste 'Hallo' gespeichert sein
Form1.Font.Name := (String(@Hallo));
SetLength(bla,sizeof(Integer));
ListBox1.Items.Add(bla);
end;
Das ist eine seltsame Erscheinung finde ich. Also wenn ich das so da stehen hab steht in der Listbox "comc"
Aber woher kommt das ? Ich hab Bla doch gar nix zugewiesen^^
Wenn ich schreibe
Caption := (String(@Hallo));
dann steht in der ListBox "Form".. komisch.
Vielleicht auch nur komisch weil ich von Pointern mal (fast) keine Ahnung hab