![]() |
[Fehler]: Inkompatible Typen: 'String' und 'dynamic Array'
Hi,
ich weiß nicht ob man lieber ein neues thema machten sollte, oder sich an alte dran hängen, deswegen hier der "aufhängethread": ![]() ich habe ein ähnliches problem: bei mir kommt immer wieder der fehler: string und dynamic array inkompatibel. hier der code dazu:
Code:
das andere "dynamische array" kommt aus einer anderen unit und ist natürlich public
procedurevaribale:
langemeldet_id : ARRAY OF ARRAY OF STRING;
Code:
nun die procedure:
public
zmySQL_speicher: ARRAY OF ARRAY OF STRING;
Code:
setlength(langemeldet_id, dbverwaltung.zmySQL_speicher_zeilen,7);
for a := 1 to dbverwaltung.zmySQL_speicher_zeilen do begin for i := 1 to 6 do begin langemeldet_id[a,i] := dbverwaltung.zmySQL_speicher[a,i]; end; end; Fehler: [Fehler]: Inkompatible Typen: 'String' und 'dynamic array' zur erklärung: db_verwaltung.zmySQL_speicher_zeilen gibt einen int-wert wieder und der zmySqlSpeicher ist halt ein text speicher den ich übergeben will. weiß einer von euch wo mein problem liegt??? danke |
Re: [Fehler]: Inkompatible Typen: 'String' und 'dynamic Arra
Hallo! Dynamische Arrays beginnen beim Index 0, deshalb ist nach Durchlauf deiner Schleife das erste Element nicht initialisiert. Wenn du nur das komplette Array durchlaufen willst reicht auch
Delphi-Quellcode:
Davon abgesehen kann ich deinen Fehler nicht reproduzieren, dieser Code funktioniert:
for i := Low(a) to High(a) do begin
for j := Low(a[i]) to High(a[i]) do begin a[i,j] := IntToStr(i) + '_' + IntToStr(j); end; end;
Delphi-Quellcode:
In welcher Code-Zeile tritt der Fehler denn auf?
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private public a: array of array of String; end; procedure TForm1.Button1Click(Sender: TObject); var b: array of array of String; i,j: Integer; begin SetLength(b, Length(a), Length(a)); for i := Low(b) to High(b) do begin for j := Low(b[i]) to High(b[i]) do begin b[i,j] := a[i,j]; end; end; end; procedure TForm1.FormCreate(Sender: TObject); var i,j: Integer; begin SetLength(a, 7, 7); for i := Low(a) to High(a) do begin for j := Low(a[i]) to High(a[i]) do begin a[i,j] := IntToStr(i) + '_' + IntToStr(j); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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