![]() |
ListView suchen
hi,
wie kann ich in ner listview suchen(auch nach subitems-eiträgen) ich möchte dass das dann in ner anderen listview steht das suchergebnis! hab das mit dem suchen schon so hinbekommen:
Delphi-Quellcode:
aber wenn ich nach nem subitem suche findet der gar nichts!
var gefunden: Boolean;
i, iCnt: integer; l: TListItem; begin gefunden := false; i := 0; while not gefunden and (i < Form3.ListView1.Items.Count) do begin if Form3.ListView1.Items[i].Caption = Edit1.Text then begin gefunden := true; //Erstellen eines neuen ListItems l := Form15.ListView1.Items.Add; //Zuweisung der Beschriftung l.Caption := Form3.ListView1.Items[i].Caption; //Kopieren aller SubItems for iCnt := 0 to Form3.ListView1.Items[i].SubItems.Count - 1 do l.SubItems.Add(Form3.ListView1.Items[i].SubItems[iCnt]); end; inc(i); end; if gefunden then Form15.ShowModal; end; MFG Lars W. |
Re: ListView suchen
Zitat:
Genau wie du die SubItems kopierst, musst du sie auch durchsuchen, mit einer Schleife. |
Re: ListView suchen
kann ich das in die schleife mit reintun oder muss ich da ne neue nehmen???
|
Re: ListView suchen
Zitat:
|
Re: ListView suchen
Und das im else-Zweig ;)
|
Re: ListView suchen
Ach übrigens: Wenn du deinen gewünschten Eintrag gefunden hat, dann kannst du die Schleife mit Break verlassen und musst nicht auf eine Variable wie "gefunden" prüfen.
|
Re: ListView suchen
hab das grad versucht aba dann is alles irgendwie(:)) abgestürzt!
kannste mir da bidde viellecht n beipsiel für geben |
Re: ListView suchen
Bei break und exit reagieren einige allergisch ("schlechter Stil").
|
Re: ListView suchen
kapier ich jez net so ganz hat denn keiner n bisschen zeit um mir da nbeipsiel für zu machen???
|
Re: ListView suchen
Ungetestet:
Delphi-Quellcode:
Da wir nun aber 2 mal dasselbe tun, kann man über eine Unterprozedur nachdenken.
var gefunden: Boolean;
i, j, iCnt: integer; l: TListItem; begin gefunden := false; i := 0; while not gefunden and (i < Form3.ListView1.Items.Count) do begin if Form3.ListView1.Items[i].Caption = Edit1.Text then begin gefunden := true; //Erstellen eines neuen ListItems l := Form15.ListView1.Items.Add; //Zuweisung der Beschriftung l.Caption := Form3.ListView1.Items[i].Caption; //Kopieren aller SubItems for iCnt := 0 to Form3.ListView1.Items[i].SubItems.Count - 1 do l.SubItems.Add(Form3.ListView1.Items[i].SubItems[iCnt]); end else begin for j := 0 to Form3.ListView1.Items[i].SubItems.Count - 1 do if Form3.ListView1.Items[i].SubItems[j] = Edit1.Text then begin gefunden := true; //Erstellen eines neuen ListItems l := Form15.ListView1.Items.Add; //Zuweisung der Beschriftung l.Caption := Form3.ListView1.Items[i].Caption; //Kopieren aller SubItems for iCnt := 0 to Form3.ListView1.Items[i].SubItems.Count - 1 do l.SubItems.Add(Form3.ListView1.Items[i].SubItems[iCnt]); break; //einmal reicht wohl end; end; inc(i); end; if gefunden then Form15.ShowModal; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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