AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

items suchen in TreeView

Ein Thema von Micha · begonnen am 3. Dez 2003 · letzter Beitrag vom 4. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#1

items suchen in TreeView

  Alt 3. Dez 2003, 19:25
Habe weder im Forum noch in der Delphi-Hilfe was zum Thema "Suchen in einem TreeView" gefunden.

Möchte über Eingabe in ein Edit-Feld ein TreeView durch eben diesen Eingabewert ins Edit durchsuchen lassen.

Meine Werte für den Baum lese ich aus einer Datenbank.

Die Items sollen dann entweder farbig markiert werden oder es sollen eben anderweitig markiert werden.

Hat jemand ein solche Suchfunktion schon mal angewendet oder weiß, wie es gehen könnte?

Vielen Dank im Voraus.
  Mit Zitat antworten Zitat
Horald

Registriert seit: 29. Okt 2003
11 Beiträge
 
#2

Re: items suchen in TreeView

  Alt 3. Dez 2003, 19:42
Hallo,

wie man TreeView direkt durchsucht, weiß ich auch nicht.
Aber ansich müsstest du über eine Schleife alle treenodes durchgehen können,
und dann deinen Suchtext abfragen können.
Und wenn du die Einträge aus einer Datenbank einliest, warum suchst du dann
nicht in der Datenbank. Bei Sql kann du mit SELECT doch sehr elegant die
Datenbank suchen lassen.

Gruß

Horst

  Mit Zitat antworten Zitat
huberlix

Registriert seit: 10. Nov 2003
46 Beiträge
 
#3

Re: items suchen in TreeView

  Alt 3. Dez 2003, 19:43
Code:
Procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);

begin

  case node.Text of

     'AAA': treeview1.canvas.font.Color:=clGreen ;
     ...
     'BBB': treeview1.canvas.font.Color:=clred ;
  end;

.........
.........
nicht getestet!
Gruß,Bernd
  Mit Zitat antworten Zitat
Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#4

Re: items suchen in TreeView

  Alt 3. Dez 2003, 19:45
Das mit der Schleife habe ich mir auch schon gedacht. Aber damit habe ich noch wie was gemacht.

Mit SQL-Befehlen habe ich außerdem auch noch nie gearbeitet.

Gibt es sonst noch Möglichkeiten oder könntest du mir mal ein Beispiel für eine solche Schleife geben?

Ein großes DANKE schon mal.
  Mit Zitat antworten Zitat
Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#5

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:19
Das ist doch schon mal gut @huberlix

aber mir fehlt leider immer noch was, womit ich den Tree durchsuchen kann.
Kann mir jemand einer solchen Schleife helfen?
  Mit Zitat antworten Zitat
Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#6

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:26
Etwa so in der Art?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 i : integer;
begin
TreeView1.Visible := true;
 for i := 0 to TreeView1.Items.Count -1 do
 begin
  if i = 2 then // aber wie bringe ich hier einen String
                //z. B. aus einem Edit unter?
   begin
    ShowMessage('Suchwert gefunden!');
   end;
 end;
end;
  Mit Zitat antworten Zitat
huberlix

Registriert seit: 10. Nov 2003
46 Beiträge
 
#7

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:29
Versteh ich jetzt nicht ganz.
Wenn mich nicht alles täuscht wird TreeView1CustomDrawItem für jeden Node durchlaufen. D.h. der Codeschnipsel von mir müsste reichen. Musst halt in der CaseAnweisung irgendwie deine DBWerte abfragen
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:35
HY!

Bernd hat völlig recht. Du musst gar nicht suchen, wenn Du das Ergebnis nur Visualisieren willst. Es reicht aus, z.B. die Variablen FSuchText_1,FSuchText_2:String entsprechend der Suchanfrage(n) zu setzen und dann mit Treeview.Invalidate ein Neuzeichnen der Baumansicht zu erzwingen.

@Bernd: Ich klau mal gerade Deinen Code:

Delphi-Quellcode:
Procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
Begin
  Case node.Text of
     FSuchText_1: treeview1.canvas.font.Color:=clGreen ;
     FSuchText_2: treeview1.canvas.font.Color:=clred ;
  end;
End;

Procedure TForm1.StartNewSearch;
Begin
  FSuchText_1: Edit1.Text ;
  FSuchText_2: Edit1.Text;
  Treeview.Invalidate;
End;
Viele Grüsse

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#9

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:43
O.K., sorry, stimmt, is einfacher.

Aber wenn ich

Delphi-Quellcode:
...
case node.Text of
...
schreibe, dann bekomme ich einen Fehler, dass ein Ordinaltyp erforderlich sei.
  Mit Zitat antworten Zitat
huberlix

Registriert seit: 10. Nov 2003
46 Beiträge
 
#10

Re: items suchen in TreeView

  Alt 3. Dez 2003, 20:46
Also das mit der CaseAnweisung funktioniert nicht. StringTypen sind da nicht erlaubt.
Jetzt hab ich mal ein Treeview mit den Werten A,B,C und D vorbelegt, und mit if/then nach ABCD abgefragt. Der Baum wird vierfarbig gezeichnet.
Hier die Prozedur:
Code:
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  If node.Text= 'A' then
    treeview1.canvas.font.Color:=clGreen
  else
  If node.Text= 'B' then
    treeview1.canvas.font.Color:=clred
  else
  If node.Text= 'C' then
    treeview1.canvas.font.Color:=clyellow
  else
  If node.Text= 'D' then
    treeview1.canvas.font.Color:=clblue ;

end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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