![]() |
Dynamisches zwei dimensionales Array erzeugen und zugriff
hi, ich habe eine array:
und greife drauf wie folgt zu:
Delphi-Quellcode:
type
PTextlist = ^TTextlist; TTextlist = record text: String; end; var PList : array[0..3] of array of Plist; setLength(Plist[0],31); Plist[0][0].text:=''; |
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
Ohne zu wissen was du eigentlich willst wage ich zu vermuten, dass ich das Programm so nicht kompilieren lässt.
Wahrscheinlich kommt da eine Fehlermeldung dass Delphi eine Konstante oder einen Typ erwartet. Zunächst einmal solltest du bei der Variablendeklaration nicht als Typ PList verwenden (so heißt deine Variable die du gerade deklarierst). Was du meinst ist doch wahrscheinlich:
Delphi-Quellcode:
type
PTextlist = ^TTextlist; TTextlist = record text: String; end; var PList : array of array of PTextList; setLength(Plist,0,31); Plist[0,0].text:=''; |
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
args wieder angefangen programmiersprachen code zu mixen ;/
alles klar danke! |
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
kriege im debugger trotzdem eine EAcception mit versuch auf 00000 zu schreiben! hmm
|
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
Hast du denn den Speicher auch reserviert?
|
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
eigentlich war ich der meinung ich mache das mit setlength ;/
|
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
Ich meine nicht den array, sondern die Objekte auf die deine Pointer zeigen.
|
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
nein das ist der komplette code den ich habe :)
|
Re: Dynamisches zwei dimensionales Array erzeugen und zugrif
Zitat:
Also: Wenn du Pointer benutzt, dann musst du erst Speicher für die einzelnen Objekte reservieren, bevor du sie benutzen kannst. Wenn du das Prinzip von Pointern noch nicht verstanden hast rate ich dir dringed zu einem Tutorial(Edit: ![]() Trotzdem hier mal der Code mit dem es klappt:
Delphi-Quellcode:
Allerdings musst du vorher die String-Länge begrenzenprocedure TForm1.Button1Click(Sender: TObject); begin SetLength(PList,100,100); GetMem(PList[45,10],SizeOf(TTextList)); PList[45,10].text := 'Test'; ShowMessage(PList[45,10].text); FreeMem(PList[45,10]); end;
Delphi-Quellcode:
TTextlist = record
text: string[255]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 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