![]() |
Dynamische Arrays in normale Arrays umwandeln
Hi,
sitze hier vor einem Problem. Hab hier ne VCL(Delphi 4) die ich gerne Delphi3-konform umschreiben moechte. Mein Problem besteht darin, dass ich nicht weiss wie ich die Arrays umschreiben muss.
Delphi-Quellcode:
Da dies in Delphi3 nich funktioniert hab ichs mal so probiert:
var FByteArray : array of Byte;
Delphi-Quellcode:
daraufhin kommen dann solche Fehler wie: Inkompatible Typen: 'Array' und 'Cardinal'
FByteArray : array[1..100] of Byte;
oder Inkompatible Typen: 'Array' und 'Word'
Delphi-Quellcode:
//Kann ja nich gehen, da das Array nicht dynamisch erzeugt wurde. Wie koennte es funktionieren?
SetLength(FByteArray,FPacket^.ResponseCounter);
Wie koennte ich denn ![]() Danke schonmal Gruss Sinblur |
Re: Dynamische Arrays in normale Arrays umwandeln
Gibt es unter D3 schon die Klasse TList? Dann nimm doch die.
|
Re: Dynamische Arrays in normale Arrays umwandeln
Ja, TList gibt es.
Aber wie hilft mir das bei meinem Problem? Bin noch ein kleiner Delphi-DAU! //edit wenn ich dies einsetze:
Delphi-Quellcode:
sagt es immernoch: Inkompatible Typen: 'Array' und 'Cardinal'
var FByteArray : TList;
|
Re: Dynamische Arrays in normale Arrays umwandeln
Delphi-Quellcode:
Ein Blick in die Hilfe hätte es auch getan.
type
TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; type TMyRec = record Zahl: Integer; end; PMyRec = ^TMyRec; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var MyDynArray: TList; MyRec: PMyRec; i: Integer; begin MyDynArray := TList.Create; try // füllen for i := 0 to 99 do begin // Speicher anfordern New(MyRec); // Irgendwas zuweisen MyRec.Zahl := Random(50); // in Liste aufnehmen MyDynArray.Add(MyRec); end; // anzeigen for i := 0 to MyDynArray.Count - 1 do begin // aus Liste "rausholen" MyRec := MyDynArray.Items[i]; // in Listbox ausgeben Listbox1.Items.Add(IntToStr(MyRec.Zahl)); end; finally // Speicher wieder freigben for i := 0 to MyDynArray.Count - 1 do begin // Listeneinträge freigben MyRec := MyDynArray.Items[i]; Dispose(Myrec); end; // Liste selber wieder freigeben MyDynArray.Free end; end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz