Ich habe es jetzt so gelöst:
Delphi-Quellcode:
GetVerNrParts(ComboboxText: string; AArray: array of string);
var
version: TStringList;
iCounter: integer;
begin
version := TStringList.Create;
version.Delimiter := '.';
version.DelimitedText := ComboboxText;
for iCounter := 0 to version.Count -1 do
begin
AArray[iCounter] := version[iCounter];
end;
end;
Geht auch, die Nummern stehen ohne Punkt und aufgeteilt in meinen Arrays.
Nächstes Problem : wenn ich die Arrays abrufen will, sind sie auf einmal wieder leer. Wahrscheinlich auch wieder ein Flüchtigkeitsfehler.
Die Prozedur oben lasse ich mir nach einem Button-Click durchlaufen:
Delphi-Quellcode:
btnProduktAuswahlClick(Sender: TObject);
begin
GetVerNrParts(cmbBoxFrom.Text, VersNumberFromArray);
GetVerNrParts(cmbBoxTo.Text, VersNumberToArray);
FillGrid;
FromVersionToVersionCheck;
end;
Bei "FillGrid" wird die Funktion "GetTSQLData" aus einer anderen
Unit aufgerufen, deren Parameter so aussehen (Produkt:TProdukt; FirstArray: array of string, SecondArray: array of string): TSQLTable;
Aus diesem Array heraus befülle ich mein
SQL-Statement mit FirstArray[1] .... / SecondArray[1].... und vergleiche die Bestandteile. So weit komme ich aber nicht, weil mir "GetTSQLData" sagt, dass die Arrays leer sind. Wieso?
Übergeben werden die Parameter in der "Array" -
Unit so:
SQLData := AndereUnit.GetSQLData(FSelectedProduct, VersNumberFromArray, VersNumberToArray);
Arrays sind als "private" Variable (wie "FSelectedProdukt" auch - das erkennt er komischerweise) deklariert:
Delphi-Quellcode:
private
var
FSelectedProduct: TProdukt;
VersNumberFromArray : array[1..3] of string;
VersNumberToArray : array[1..3] of string;
Wieso geht das nicht?