treeview de arama yapma (çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

treeview de arama yapma (çözüldü)

Mesaj gönderen tuna »

Arkadaşlar merhaba. Treeview da aramak yapmak istiyorum ama bir türlü mantığını bulamadım.
Treeview'in içi şöyle

BİLGİSAYAR
OEM
CD
HDD
MARKALI
NOTEBOOK
HDD
ELEKTRONIK
OEM
HDD
VS......


Diye gidiyo. Buradaki mantık 3 node'nin üçüde aynı olamaz BİLGİSAYAR OEM HDD / ELEKTRONİK OEM HDD
Benim yapmak istediğim 1. nodu bilgisayar , alt nodu oem, onun altı hdd olan nodu seçili hale getirmek.
En son tuna tarafından 14 Kas 2014 11:05 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
tuna
Üye
Mesajlar: 300
Kayıt: 07 Tem 2008 04:39
Konum: İstanbul

Re: treeview de arama yapma

Mesaj gönderen tuna »

Dün gece yaptığım arama sonucunda çözümü viewtopic.php?p=110750 bu linkteki ertug kardeşimizin yaptığı örnek üzerinde oynama yaparak buldum.
İhtiyacı olan olursa diye aşağıya çözümü yazıyorum.

Treeview in hiddenselection özelliğini false yapmayı unutmayın.
Aşağıdaki kod 3 node olan düğüm ler için yaptım. Daha fazla düğüm varsa döngüleri iç içe ekleyip çoğaltabilirsiniz.

Kod: Tümünü seç

var
i:integer;
 aNode: TTreeNode;
begin
  aNode := cxTreeView1.Items.GetFirstNode; { ilk elemana git }
  while (aNode <> nil) do begin
   if aNode.Text = 'BİLGİSAYAR' then
   begin
     cxTreeView1.Selected := aNode;
     aNode.MakeVisible; { elemanın görünmesini sağla }

     while (aNode <> nil) do begin
   if aNode.Text = 'OEM' then
   begin
     cxTreeView1.Selected := aNode;
     aNode.MakeVisible; { elemanın görünmesini sağla }
      while (aNode <> nil) do begin
   if aNode.Text = 'HDD' then
   begin
     cxTreeView1.Selected := aNode;
     aNode.MakeVisible; { elemanın görünmesini sağla }
     break;
   end else  aNode := aNode.GetNext; { sonraki elemana geç }
   end;

     Break;
   end else
     aNode := aNode.GetNext; { sonraki elemana geç }
   end;
     Break;
   end else
     aNode := aNode.GetNext; { sonraki elemana geç }
 end;

end;

Cevapla