![]() |
Pointer mit einer Stringlist
Delphi-Quellcode:
und wenn ich nun das hier versuche
type
TAttack = record Name : String; Description : TStringlist; end; ArAttack = Array[1..10] of TAttack; type TTechnique = record Name : String; Attack : ArAttack; end; pTechnique = ^TTechnique; var TheList : TList; [...] procedure TfrmMain.AddToList(Str: String; Ar: ArAttack); var p: pTechnique; i: integer; begin new(p); p^.Name := Str; AddResults('0',Str,true); for i:=1 to Length(Ar) do begin if Ar[i].Name <> '' then begin p^.Attack[i].Name := Ar[i].Name; p^.Attack[i].Description := Ar[i].Description; TheList.Add(p); end; end; end; procedure TfrmMain.FormCreate(Sender: TObject); var tmpAr: ArAttack; tmpStrings: TStringlist; begin TheList := TList.Create; tmpStrings := TStringlist.Create; tmpAr[1].Name := 'At1'; tmpStrings.Add('This is the text for At1'); tmpAr[1].Description := tmpStrings; tmpStrings.Clear; tmpAr[2].Name := 'At2'; tmpStrings.Add('This is the text for At2'); tmpAr[2].Description := tmpStrings; tmpStrings.Clear; AddToList('Tech',tmpAr); [...] end;
Delphi-Quellcode:
klappt alles bis auf die Letzte Zeile ?!
p := TheList[0];
ShowMessage(p^.Name); ShowMessage(p^.Attack[1].Name); memDesc.Assign( p^.Attack[1].Description ); //<====== |
Re: Pointer mit einer Stringlist
Was ist memDesc?
|
Re: Pointer mit einer Stringlist
Moin!
Im FormCreate legst du eine Stringlist Instanz an und weisst ein Inhalt zu. Dann merkst du dir die Instanzenadresse in dem Record. Danach leerst du die Stringlist (damit auch die in dem Record, da es die gleiche ist) und dann füllst du sie wieder. Dann weist du die gleiche Instanz dem anderen Record zu (also beide Records benutzen die gleiche StringList) und leerst wieder die gleiche Stringlist, also zeigen beide Records auf ein und die selbe StringList und haben beide den gleichen Inhalt: nix. MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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