Treeview de itemsleri ekliyorum, her items için resimleri ekliyorum buraya kadar sorun yok. Ama itemslerin üzerine fareyle tıklayınca resmi ilk itemsin resmi olarak değişmekte.nedenini anlayamadım.Resimleri imagelist kontrolünden atıyorum
procedure TForm1.ekleitem;
var
nodev:TTreeNode;
begin
nodev:=Form2.TreeView1.Items.Add(nil,'Veritabanı');
for i:=1 to 9 do
begin
dizim[i]:=nodeler[i];
end;
for i:=1 to 9 do
begin
form2.TreeView1.Items.Addchild(nodev,dizim[i]);
form2.TreeView1.Items.Item[i].ImageIndex:=i;
end;
Bu şekilde hem itemslerimi hem resimlerimi bir kerede ekliyorum.itemsler diziye yuklu string elemanlar.
Böyle Bir problem neden olur ?.İlgilenenlere şimdiden teşekkür ederim.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
Hocam stateimages in nesini kurcalıycam anlamadım.Normalde stateimages özlliğinde boş.Artı bir sorun daha çıktı yukarıda verdiğim mfonksiyonla ikinci defa ekleme yaptığım zaman ise bütün itemslere aynı resmi yani 0 index nolu resmi atıyor.Ne yapacaz ya kafayı yiycem.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
procedure Tcari_kart.FillTreeview;
var
TNDChild,TRN:TTreeNode;
begin
rxBrans.first;
while not rxBrans.eof do
begin
TNDChild:=TreeView1.items.AddChild(nil,rxBransbransadi.AsString);
TNDChild.ImageIndex:=0;
TNDChild.StateIndex:=0;
rxPoliceturu.first;
while not rxPoliceturu.eof do
begin
if rxPoliceturubrans_kodu.AsString=rxBransbranskodu.AsString then
begin
TRN:=TreeView1.Items.AddChild(TNDChild,rxPoliceturupol_turu.AsString);
TRN.ImageIndex:=2;
TRN.StateIndex:=2;
rxPoliceyeTeminat.first;
while not rxPoliceyeTeminat.Eof do
begin
if rxPoliceyeTeminatpol_kodu.AsString=rxPoliceturupol_kodu.AsString then
TreeView1.items.addChild(TRN,rxPoliceyeTeminattem_adi.AsString);
TRN.ImageIndex:=2;
TRN.StateIndex:=2;
TRN.SelectedIndex:=2;
rxPoliceyeTeminat.next;
end;
end;
rxPoliceturu.Next;
end;
rxBrans.next;
end;
end;
procedure TForm1.ekleitem;
var
i,k:integer;
nodev:TTreeNode;
begin
nodev:=Form2.TreeView1.Items.Add(nil,opendialog1.FileName);
for i:=1 to 9 do
begin
form2.TreeView1.Items.AddChild(nodev,dizim[i]);
end;
for k:=0 to form2.TreeView1.Items.Count-1 do
begin
form2.TreeView1.Items.Item[k].ImageIndex:=k;
form2.TreeView1.Items.Item[k].StateIndex:=k;
end;
end;
end.
Bu şekilde yaptım ama yine olmadı ne hikmetse.Sorun başka ne olabilir anlayamadım hocam.Halen daha aynı sorun.ebeveyn itemsin resmi bütün childitemslerdeki resimlerin yerini alıyor diğerini seçincede eski haline geliyor.ne biçim bir iş anlamadım.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.