Thema: Delphi Suche in ListBoxes

Einzelnen Beitrag anzeigen

Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Suche in ListBoxes

  Alt 1. Apr 2007, 10:51
Hallo
Hier kannst Du zusätzlich auch mit * Suchen zb. bei Hello *el
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListbox) do
 begin
   if OdSelected in State then //Prüft, ob ein Item markiert ist
   Canvas.Brush.Color := clRed; //Canvas-Hintergrundfarbe auf Rot setzen
   Canvas.FillRect(Rect); // Hintergrund malen
   Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]); // Text ausgeben
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Style:= lbOwnerDrawFixed;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var SuchString : string;
    i : Integer;
begin
    SuchString := Edit1.Text;
    if Copy(SuchString,1,1) = '*then begin // * als Platzhalter vorn
        SuchString := Copy(SuchString, 2, Length(SuchString) - 1);
        for i := 0 To ListBox1.Items.Count - 1 do
        if Pos(SuchString, Listbox1.Items[i]) <> 0 then
        begin
           Listbox1.ItemIndex := i; // Eintrag markieren
           Exit
        end
    end else begin // sonst
        for i := 0 to ListBox1.Items.Count - 1 do
        if UpperCase(SuchString) = UpperCase(Copy(Listbox1.Items[i],1, Length(SuchString))) then
        begin
          ListBox1.ItemIndex := i; // Eintrag markieren
          Exit;
        end;
    end;
end;
Blackheart
  Mit Zitat antworten Zitat