AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi [Fehler]: Inkompatible Typen: 'String' und 'dynamic Array'
Thema durchsuchen
Ansicht
Themen-Optionen

[Fehler]: Inkompatible Typen: 'String' und 'dynamic Array'

Ein Thema von RobSteward · begonnen am 17. Nov 2007 · letzter Beitrag vom 17. Nov 2007
Antwort Antwort
RobSteward

Registriert seit: 23. Okt 2007
9 Beiträge
 
#1

[Fehler]: Inkompatible Typen: 'String' und 'dynamic Array'

  Alt 17. Nov 2007, 18:57
Hi,

ich weiß nicht ob man lieber ein neues thema machten sollte, oder sich an alte dran hängen, deswegen hier der "aufhängethread":
http://www.delphipraxis.net/internal...+dynamic+array

ich habe ein ähnliches problem: bei mir kommt immer wieder der fehler: string und dynamic array inkompatibel.

hier der code dazu:
Code:
procedurevaribale:
langemeldet_id               : ARRAY OF ARRAY OF STRING;
das andere "dynamische array" kommt aus einer anderen unit und ist natürlich public
Code:
public
 zmySQL_speicher: ARRAY OF ARRAY OF STRING;
nun die procedure:
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
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Fehler]: Inkompatible Typen: 'String' und 'dynamic Arra

  Alt 17. Nov 2007, 20:54
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:
 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;
Davon abgesehen kann ich deinen Fehler nicht reproduzieren, dieser Code funktioniert:

Delphi-Quellcode:
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;
In welcher Code-Zeile tritt der Fehler denn auf?
Dani H.
At Least I Can Say I Tried
  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 23:51 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