![]() |
Re: Suchfunktion <> Listbox ?
hallo marabu,
im leerproject funzt es mit ein paar eingaben, wenn ich aber in meinem prog was suche da makiert er nichts !!! mfg vader |
Re: Suchfunktion <> Listbox ?
Wie kann ich dir da weiter helfen?
marabu |
Re: Suchfunktion <> Listbox ?
hallo
hab die eine PN geschickt mit meinen project ich hoffe es ist angekommen ! mfg vader |
Re: Suchfunktion <> Listbox ?
Sagen wir mal so - du hast es probiert. Angekommen ist bei mir nichts.
marabu |
Re: Suchfunktion <> Listbox ?
hallo
jetzt muß es geklappt haben ! mfg vader |
Re: Suchfunktion <> Listbox ?
Hai Vader,
noch eine kleine Idee für die Suche. Wenn Du kein extra Feld für die Suche möchtest könntest Du auch mit einem Timer und einer extra Variablen arbeiten um in der Listbox zu suchen wenn diese den Focus besitzt. Wenn also jemand ein "C" drückt wird zum ersten Eintrag gesprungen der mit "C" anfängt. Wenn er jetzt innerhalb einer bestimmten Zeitspanne (dafür der Timer) einen weiteren Buchstaben drückt wird dieser zu den vorhandenen hinzugefügt und es wird "weiter gesprungen" |
Re: Suchfunktion <> Listbox ?
Hi Vader,
deine ListBox ist unsortiert - die von mir verwendete Methode Find() funktioniert nur mit sortierten Strings. Das Vorgehen bei unsortierten Strings demonstriert Button2:
Delphi-Quellcode:
Grüße vom marabu
procedure MarkFirstLine(lb: TListBox; const prefix: string);
var i: integer; s: TStrings; begin s := lb.Items; lb.ItemIndex := -1; for i := 0 to s.Count - 1 do if (AnsiUppercase(Copy(s[i], 1, Length(prefix))) = AnsiUppercase(prefix)) then begin lb.ItemIndex := i; if lb.MultiSelect then lb.Selected[i] := true; Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; index: integer; begin sl := TStringList.Create; sl.Sorted := ListBox1.Sorted; with ListBox1 do begin sl.Assign(Items); // funktioniert nur wenn sl.Sorted = true sl.Find(Edit1.Text, index); if (Edit1.Text <> '') and (index >= 0) and (index < sl.Count) and (AnsiUppercase(Copy(sl[index], 1, Length(Edit1.Text))) = AnsiUppercase(Edit1.Text)) then ItemIndex := index else ItemIndex := -1; end; sl.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin MarkFirstLine(ListBox1, Edit1.Text); end; |
Re: Suchfunktion <> Listbox ?
hallo,
herzlichendank es funzt !!! mfg vader |
Re: Suchfunktion <> Listbox ?
hallo,
kann ich die suchfunktion auch auf eine neue form platzieren, so wie das bei den meisten programmen ist, wo über den menüpunkt "bearbeiten-suchen " ein neues fenster geöffnet wird und dort dann den suchbegriff eingibt ? wie muß ich die beiden units oder forms verbinden ? mfg vader |
Re: Suchfunktion <> Listbox ?
Hi vader,
klar kannst du. Zitat:
Delphi-Quellcode:
Grüße vom marabu
var
searchText: string; begin searchText := '42'; // Initialisierung if InputQuery('Suchen nach', 'Suchtext', searchText) and (searchText <> '') then begin // dein Code für die Suche nach searchText end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz