Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi im TreeView suchen (https://www.delphipraxis.net/40489-im-treeview-suchen.html)

sBorchert 16. Feb 2005 15:08


im TreeView suchen
 
Moin!
Wie kann ich denn in einem TreeView suchen? Speziell möchte ich alle Elemente mit einem bestimmten Text im Namen ausgeben (in eine Liste einfügen oder markieren, ist ganz egal). Und alle Elemente einzeln durchgehen ist ein wenig umständlich. Gibt es da keine eingebaute Funktion, also so etwas: treeview.FindItems('test*')?

schöne Grüsse,

Stefan

SirThornberry 16. Feb 2005 15:13

Re: im TreeView suchen
 
ich kenn da keine funktion. Du wirst wohl nicht umhinn kommen dir selbst eine funktion zu schreiben. Da es sich um eine Baumstruktur handelt wäre da eine rekursive suche zu empfehlen.
Pseudo-Code
Code:
function SucheItems(ParentItem)
begin
  if ParentItem.Text = gesuchterText then
    ParentItem.Text zu Liste hinzufügen
  für Alle Unteritems
    SucheItems(UnterItem[UnteritemIndex]);
end;

sBorchert 17. Feb 2005 10:04

Re: im TreeView suchen
 
Zitat:

ich kenn da keine funktion.
Hm, schade. Ich dachte, da mal irgendetwas gesehen zu haben.
Zitat:

Du wirst wohl nicht umhinn kommen dir selbst eine funktion zu schreiben. Da es sich um eine Baumstruktur handelt wäre da eine rekursive suche zu empfehlen.
Danke. So in etwa hatte ich mir das schon gedacht.
Ich hatte mal (zu VB-Zeiten) eine Funktion, die das über SendMessage löst, allerdings wüsste ich jetzt nicht, wie ich den Suchbegriff in Delphi übergeben soll. Der musste nämlich als letzter Parameter übergeben werden und bei der "Delphiversion" ist der letzte Parameter ein integer.
Ausgesehen hat das in etwa so:
Delphi-Quellcode:
itmIndex = SendMessage(listview.hwnd, LVM_FindFirst, -1, "dingens")
Naja, muss wohl die kleine Suchfunktion her.
Schöne Grüsse,

Stefan

toms 17. Feb 2005 10:09

Re: im TreeView suchen
 
Hi,

Sage nur: Goolge suche benutzen: Bei Google suchentreeview find Delphi

SirThornberry 17. Feb 2005 10:10

Re: im TreeView suchen
 
Vermutlich musst du einfach nur einen PChar auf das Suchwort übergeben. Und da ein Integer erwaret wird musst du diesen wiederum zu einem Integer casten.
Delphi-Quellcode:
  sendmessage(listview.hwnd, LVM_FindFirst, -1, Integer(PChar('dingens')));
@toms: Deine funktion ist dann ja die welche ich nicht gepostet hab um den fragenden zu zwingen selbst das letzte stück zu denken (pseudocode war ja schon da).

Ansonsten für das was er aus VB-Hatte sollte übertragen nach Delphi das obere Codeschnippsel herauskommen

Muetze1 17. Feb 2005 10:28

Re: im TreeView suchen
 
Moin!

Wenn wir hier schon Lösungen posten, dann will ich auch noch meine rekursiven Beispiel Fkts von meiner HP reinstellen: TreeView rekursiv durchsuchen

MfG
Muetze1

sBorchert 23. Feb 2005 15:29

Re: im TreeView suchen
 
@toms:
Zitat:

Sage nur: Goolge suche benutzen
Hatte ich schon. Mit dem Ergebnis, dass ich die Funktion, die ich mir schon zusammengebastelt hatte, wiedergefunden habe. Allerdings verwende ich zusätzlich noch Reguläre Ausdrücke.

@SirThornberry:
Danke für den Hinweis. Ich habe gerade auf einer Seite [1] eine Funktion gefunden, welche mit SendMessage arbeitet. Mal schauen, was die so bringt.

@Muetze1:
Deine Seite funktioniert leider irgendwie nicht ("Verbindung wurde zurückgesetzt") :-{

schöne Grüsse,

Stefan

[1] http://www.delphi-central.com/tutori...eViewNode.aspx

Muetze1 23. Feb 2005 16:25

Re: im TreeView suchen
 
Moin!

Zitat:

Zitat von sBorchert
@Muetze1:
Deine Seite funktioniert leider irgendwie nicht ("Verbindung wurde zurückgesetzt") :-{

Wer auch erst eine Woche später nachschaut...

Ich bin umgezogen und die domain ist beim denic schon neu eingetragen, es braucht noch bis zu 40 Stunden bis alle DNS Server die Änderung haben. Bei manchen Providern klappts schon.

MfG
Muetze1

sBorchert 24. Feb 2005 17:48

Re: im TreeView suchen
 
Zitat:

Zitat von Muetze1
Wer auch erst eine Woche später nachschaut...

Naja, Urlaub muss auch mal sein (oder sagen wir mal, ein wenig Rechnerabstinenz) :-)

Zitat:

Zitat von Muetze1
Ich bin umgezogen und die domain ist beim denic schon neu eingetragen, es braucht noch bis zu 40 Stunden bis alle DNS Server die Änderung haben. Bei manchen Providern klappts schon.

Ok. Anpingen kann ich schon, nur aufrufen noch nicht.

schöne Grüsse,

Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz