View Single Post
Eski 26/01/2007, 20:50   #5 (permalink)
cemaliozan
Kodlarım, Canlarım...
 
cemaliozan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Yer: » Delphi Bölümü «
Mesaj: 1,678
Varsayılan

Kod:
type
  PLinkData = ^TLinkData;
  TlinkData =  packed record
    Id         : Integer
    Kategori : WideString;
  end;


........................


procedure TForm1.AgacGorunumu;
  Var
     Q      : TQuery;
 myNode  : TTreeNode;
 DataLink : PLinkData;
begin
  try
   TreeView1.Clear;
    Initialize(DataLink^);
    Q  := TQuery.Create(Self);
    Q.DatabaseName := 'myDB';
    //Sorguyu kategori düzenine göre ayarlarsın
    Q.SQL.Add('Select * from tablom order by id') ;
    Q.Open; 
    myNode  := Nil // Veya root
    While Not Q.EOF do 
    begin
       New(DataLink); // İşaretçi için yer ayır
       DataLink.ID          := Q.FieldByName('id').AsInteger;
       DataLink.Kategori  := Q.FieldByName('kategori').Asstring;
      myNode :=    TreeView1.Items.AddChild(myNode,Q.FieldByName('kategori').Asstring); 
      myNode.Data := DataLink; //işaretçiyi düğüme ata
      Q.Next; 
    end;
  finally
    Q.Close;
    Q.Free;
  end;
end;

procedure TForm1.TreeView1.ItemClick(......);
  Var
    DataLink  : PLinkData;
    ID          : Integer;
begin
   DataLink := (Item.Data);
   if Assigned(DataLink) then
   begin
      ID := DataLink.ID;
      .......................
   end;
end;

//Uygulamayı sonlandırırken bellekte ayrılan yeri boşaltmayı unutma

procedure TForm1.OnCloseQuery(....);
  Var
    DataLink : PLinkData;
             i  : Integer;
      myNode  : TTreeNode;
begin
    for i:=0 to TreeView1.items.count-1 do
    begin
       myNode := Treeview1.Items[i];
       if myNode <> Nil then
       begin
           DataLink := myNode.Data;
           if Assigned(DataLink) then
          begin
             Finalize(DataLink^);
             FreeMem(DataLink);//belleği boşalt....
          end;
       end;
    end;
end;
__________________
Yerel Seçimler|Haberbox | Tek Sevgi | Genel Seçimler | Magice Book |
Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin...
cemaliozan hatta değil   Alıntı Yaparak Yanıtla