Einzelnen Beitrag anzeigen

Freyr77
(Gast)

n/a Beiträge
 
#9

AW: Datenbanksuche, Versionsnummer, Punkte

  Alt 21. Sep 2016, 12:44
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?
  Mit Zitat antworten Zitat