Einzelnen Beitrag anzeigen

needatip

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

Re: Mehrere Werte mit Locate suchen

  Alt 26. Feb 2007, 11:42
Ja ! Ich hab auch die Funktion IsValidPos von Dir in abgewandelter Form eingebaut.
Hab sie nur der Übersichtlichkeit halber hier weggelassen!
Delphi-Quellcode:
function IsValidPos(s: string): Boolean;
var
  number, index: Integer;
begin
  Val(s, number, index);
  Result := (index = 0) or (s = '')
    or ((index > 1) and (s[index] in ['a'..'z']) and (index = Length(s)));
end;
Delphi-Quellcode:
procedure TfmPositionen.aEinfuegenExecute(Sender: TObject);
var NeuePosNummer: string;
    PosNummer : TMyPosNummer; // ist das falsch oder muss ich das im implementation Abschnitt angeben ????????????????
begin
  if InputQuery('Bitte Positionsnummer eingeben', '', NeuePosNummer)
  and IsValidPos(NeuePosNummer) then
  begin
    SplitPosNummer(NeuePosNummer);
    if DM1.PosQuery.Locate('POSNR;APOS', VarArrayOf([PosNummer.MyPos, PosNummer.MyApos]), []) then
   ...
  end;
Muss ich nun im implementation Abschnitt schreiben
var PosNummer : TMyPosNummer; oder reicht das auch in der aufrufenden 'procedure' ?
Beim Fall a bekomm ich dann den Wert 0 für c und für a nichts.
Beim Fall b bekomm ich irgendeinen Speicherwert.

mir ist auch noch aufgefallen - es fehlt in der Funktion auch noch
Delphi-Quellcode:
    Result.myPOS := i;
    Result.myAPOS := c;
im oberen Abschnitt.

Es liegt also irgendwie an meiner Übergabe der Variablen bzw. der Rückgabe.
Bitte helft mir schnell vom Eis. Danke.
  Mit Zitat antworten Zitat