Registriert seit: 4. Mai 2005
846 Beiträge
Delphi 7 Enterprise
|
Re: Suche in ListBoxes
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
|
|
Zitat
|