Moin euch Delphianer
Habe mal eine Frage, bezüglich Statischer/Dynamischer Arrays zu einem Offenen Array übergeben werden muß.
Die Verarbeide Funktion schaut wie folgt aus:
procedure StrResult(const Info: Array of String; Trenner: String; var Value: String);
Diese Procedure liegt innerhalb einer eigenen
unit, welche im Späteren Verlauf als
API erweitert werden soll.
Der Aufruf erfolgt hier:
Delphi-Quellcode:
procedure FTA(Row: Word);
var a: Byte;
Info: Array[0..3] of String;
begin
Form2.LabeledEdit0.Text := PlanEdit.StringGrid1.Cells[a+1, Row];
Form2.ComboBox1.Text := PlanEdit.StringGrid1.Cells[a+1, Row];
for a:= 2 to 5 do begin
info[a] := PlanEdit.StringGrid1.Cells[a+1, Row];
end;
StrResult(Info, '#', Form2.LabeledEdit1.Text);
end;
Hier erhalte ich die Meldung:
Zitat von
Lazarus:
edit.pas(59,19) Error: Incompatible type for arg no. 1: Got "Array[0..4] Of ShortString", expected "Open Array Of AnsiString"
umgeschrieben auf ein Dynamisches Array
Delphi-Quellcode:
procedure FTA(Row: Word);
var a: Byte;
Info: Array of String;
begin
SetLength(Info, 4);
Form2.LabeledEdit0.Text := PlanEdit.StringGrid1.Cells[a+1, Row];
Form2.ComboBox1.Text := PlanEdit.StringGrid1.Cells[a+1, Row];
for a:= 0 to 3 do begin
info[a] := PlanEdit.StringGrid1.Cells[a+1, Row];
end;
StrResult(Info, '#', Form2.LabeledEdit1.Text);
end;
erhalte ich die Meldung
Zitat von
Lazarus:
edit.pas(60,19) Error: Incompatible type for arg no. 1: Got "Dynamic Array Of ShortString", expected "Open Array Of AnsiString"
Hat von euch jemand einen Idee, wie ich das lösen kann, Ohne eine Funktion mit bis zu 50 Variablen schreiben zu müßen?
Durch die Eigenschaft des Programmen bin ich auf die gewählen Typen (String) angewiesen.