Einzelnen Beitrag anzeigen

Maik81NF

Registriert seit: 22. Mär 2014
2 Beiträge
 
#1

Array Programm übergreifend verarbeiten

  Alt 22. Mär 2014, 11:09
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.
  Mit Zitat antworten Zitat