Sayfayı Yazdır | Pencereyi Kapat

TreeView ile kendi ağaç yapınızı nasıl oluşturursu

Nereden Yazdırıldığı: Datakent
Kategori: Diğer bölümler
Forum Adı: Borland Delphi
Forum Tanımlaması: Borland Delphi ile ilgili soru / sorun / paylaşım bölümü
URL: http://forum.datakent.com/forum_posts.asp?TID=2013
Tarih: 19.Nisan.2024 Saat 11:36


Konu: TreeView ile kendi ağaç yapınızı nasıl oluşturursu
Mesajı Yazan: murat turan
Konu: TreeView ile kendi ağaç yapınızı nasıl oluşturursu
Mesaj Tarihi: 02.Aralik.2010 Saat 09:56

(*
By MT
sonsuza kayan ağaç liste yapısı
TreeView ile kendi ağaç yapınızı nasıl oluşturursunuz?
SRID -1 olanlar master kayıt.
ve kayıtlar nesneye eklenirken kayıtların ID si nesnenin ImageIndex özeliğine yazılıyor.
nesneye Object tipinde bir tür de eklenebiliyor fakat listede resim kullanmayacaksanız
ImageIndex özelliğini Tag gibi kullanabilirsiniz.

alanlar:
MRID    INT
SRID    INT  
VLE     STRING

ana kayıtları için bir query:
Name: sql_tree
SQL.Text: Select * From ttree Where SRID = -1

kayıt kontrol için bir query:
Name: sql_tree_cnt
SQL.Text : Select Count(MRID) AS RCX From ttree Where SRID = :ID
*)

procedure TForm4.Button1Click(Sender: TObject);
  procedure AddSubTree(var _master:TTreeNode;ID:Integer);
  var
   rcx:Integer;
   tnx:TTreeNode;
  begin
      sql_tree_cnt.Close;
      sql_tree_cnt.Params.ParamByName('ID').AsInteger := ID;
      sql_tree_cnt.Open;
       rcx := sql_tree_cntRCX.Value;
      sql_tree_cnt.Close;

      if rcx  > 0 then
      begin

        with TQuery.Create(nil) do
        begin
          DatabaseName := 'C:\tmp';
          SQL.Text :='Select MRID, VLE From ttree Where SRID = ' + IntToStr(ID);
          Open;

          while not (Eof) do
          begin
             tnx := TreeView1.Items.AddChild(_master, Fields.FieldByNumber(2).AsString);
             tnx.ImageIndex := Fields.FieldByNumber(1).AsInteger;

             AddSubTree(tnx, Fields.FieldByNumber(1).AsInteger);
            Next;
          end;
          Close;
          Free;
        end;

      end;
  end;
var
 tmx:TTreeNode;
begin
 TreeView1.Items.Clear;

 sql_tree.Open;
 if sql_tree.RecordCount > 0 then
 begin
  while not (sql_tree.Eof) do
  begin
      tmx := TreeView1.Items.Add(nil, sql_treeVLE.Value);
      tmx.ImageIndex := sql_treeMRID.Value;

      AddSubTree(tmx, sql_treeMRID.Value);
     sql_tree.Next;
  end;
 end;
 sql_tree.Close;

end;

procedure TForm4.TreeView1Click(Sender: TObject);
begin
 lblText.Caption := TreeView1.Selected.Text;
 lblID.Caption   := IntToStr( TreeView1.Selected.ImageIndex );
end;

örnek görüntüler:
 


-------------
http://www.kasatakip.com - Kasa Takip  |  http://www.caritakip.com - Cari Takip  |  http://www.evraktakip.com - Evrak Takip  |  http://www.etasqlmobil.com - ETA SQL Mobil



Cevaplar:
Mesajı Yazan: turknetyazilim
Mesaj Tarihi: 06.Aralik.2010 Saat 11:00

Güzel paylaşım



-------------



Sayfayı Yazdır | Pencereyi Kapat