Einzelnen Beitrag anzeigen

needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Mehrere Werte mit Locate suchen

  Alt 26. Feb 2007, 08:55
Ja, du hast recht irgendwie gibt mir die Funktion nicht das zurück was ich wollte.
Nur wo liegt der Fehler?
In einer Unit namens uMyLib hab ich folgenden Typ deklariert.
Delphi-Quellcode:
type TMyPosNummer = record
    myPOS: Integer;
    myAPOS: Char;
  end;
... und folgende Funktion
Delphi-Quellcode:
function SplitPosNummer(PosNr: string): TMyPosNummer;
var i: integer;
  c: Char;
  s: string;
begin
  s := PosNr;
  if StrToIntDef(RightStr(s, 1), 99) = 99 then
  begin
    // Letztes Zeichen ist ein Buchstabe
    c := RightStr(s, 1)[1];
    i := strtoint(LeftStr(s, length(s) - 1));
  end
  else
  begin
    i := strtoint(s);
    c := #13; // Default
    Result.myPOS := i;
    Result.myAPOS := c;
  end;
end;
Nun rufe ich die Funktion aus meinem Programm wie folgt auf:
(unit uMyLib mit uses eingebunden)
Delphi-Quellcode:
procedure TfmPositionen.aEinfuegenExecute(Sender: TObject);
var NeuePosNummer: string;
    PosNummer : TMyPosNummer;
begin
  if InputQuery('Bitte Positionsnummer eingeben', '', NeuePosNummer) then
  begin
    SplitPosNummer(NeuePosNummer);
    if DM1.PosQuery.Locate('POSNR;APOS', VarArrayOf([PosNummer.MyPos, PosNummer.MyApos]), []) then
   ...
  end;
  Mit Zitat antworten Zitat