Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#3

Re: Ähnliche Datensätze in TDataSet finden

  Alt 18. Dez 2003, 15:45
Wenn Du nicht Filtern möchtest, könntest Du es in etwa so machen
Delphi-Quellcode:
procedure DeinForm.DeinDbGridKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = 83) and (ssCtrl in Shift) then begin // Ctrl+S - wie Suchen
      Key := 0;
      DeinEdit.SetFocus;
  end;
end;

procedure DeinForm.DeinEditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  LenSearch : Integer;
  DerAusgangsPunkt : TBookmark;
  Gefunden : Boolean;
begin
  if (Key in [VK_RETURN,VK_ESCAPE]) then FlbxList.SetFocus
    DeinEdit.Color := clWindows; // Farbe normalisieren
    DeinEdit.Text := ''; // Suchtext löschen
    DeinDbGrid.SetFocus; // Suchedit verlassen und ins Grid springen
  else begin
    if Key in [8,13,33..40,45..46,65..90,186,192,219,222] then begin // Gültige bzw. suchbare Buchstaben
      LenSearch := length(DeinEdit.Text);
      Gefunden := False;
      if LenSearch > 0 then begin
        DerAusgangsPunkt := DeinDataSet.GetBookmark;
        DeinDataSet.DisableControls; // Es soll ja nicht Flimmern nicht wahr?
        DeinEdit.Color := $00CECEFF; // SuchEdit leicht rot färben
        Gefunden := False;
        DeinDataSet.First;
        While not DeinDataSet.Eof do begin
          if (copy(DeinDataSet.FieldByName('DeinSuchFeld').AsString,1,LenSearch) = DeinEdit.Text)
          then begin
            Gefunden := True;
            Break;
          end;
          DeinDataSet.Next;
        end;
      end;
      if Gefunden then begin
        DeinEdit.Color := $00CEFFCE; // Edit leicht grün (Erfolg)
      end else begin
        DeinEdit.Color := $00CECEFF; // Edit leicht rot (Mißerfolg)
        DeinDataSet.GotoBookmark(DerAusgangsPunkt);
      end;
      DeinDataSet.EnableControls;
      FreeAndNil(DerAusgangsPunkt);
    end;
  end;
end;
Mann - bin ich wieder nett heute - na ja - bald ist Weihnachten
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat