AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dynamisches zwei dimensionales Array erzeugen und zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisches zwei dimensionales Array erzeugen und zugriff

Ein Thema von Jmh124 · begonnen am 19. Apr 2007 · letzter Beitrag vom 19. Apr 2007
Antwort Antwort
Jmh124

Registriert seit: 26. Okt 2006
13 Beiträge
 
#1

Dynamisches zwei dimensionales Array erzeugen und zugriff

  Alt 19. Apr 2007, 05:28
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:='';
  Mit Zitat antworten Zitat
Hafish

Registriert seit: 22. Mär 2007
37 Beiträge
 
#2

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:02
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:='';
  Mit Zitat antworten Zitat
Jmh124

Registriert seit: 26. Okt 2006
13 Beiträge
 
#3

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:11
args wieder angefangen programmiersprachen code zu mixen ;/

alles klar danke!
  Mit Zitat antworten Zitat
Jmh124

Registriert seit: 26. Okt 2006
13 Beiträge
 
#4

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:14
kriege im debugger trotzdem eine EAcception mit versuch auf 00000 zu schreiben! hmm
  Mit Zitat antworten Zitat
Hafish

Registriert seit: 22. Mär 2007
37 Beiträge
 
#5

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:23
Hast du denn den Speicher auch reserviert?
  Mit Zitat antworten Zitat
Jmh124

Registriert seit: 26. Okt 2006
13 Beiträge
 
#6

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:29
eigentlich war ich der meinung ich mache das mit setlength ;/
  Mit Zitat antworten Zitat
Hafish

Registriert seit: 22. Mär 2007
37 Beiträge
 
#7

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:44
Ich meine nicht den array, sondern die Objekte auf die deine Pointer zeigen.
  Mit Zitat antworten Zitat
Jmh124

Registriert seit: 26. Okt 2006
13 Beiträge
 
#8

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 06:47
nein das ist der komplette code den ich habe
  Mit Zitat antworten Zitat
Hafish

Registriert seit: 22. Mär 2007
37 Beiträge
 
#9

Re: Dynamisches zwei dimensionales Array erzeugen und zugrif

  Alt 19. Apr 2007, 07:15
Zitat von Jmh124:
eigentlich war ich der meinung ich mache das mit setlength ;/
Ja, aber damit setzt du nur die Länge des Arrays. Die einzelnen Record-Objekte brauchen auch Speicher.

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:z.B. hier) bzw einem wikipedia Besuch.


Trotzdem hier mal der Code mit dem es klappt:

Delphi-Quellcode:
  
procedure 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;
Allerdings musst du vorher die String-Länge begrenzen
Delphi-Quellcode:
  TTextlist = record
    text: string[255];
  end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz