Treeview

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Treeview

Mesaj gönderen Laz61 »

Selamun aleykum

Treeview'in o anki aktif agac yapisini kapanirken kaydedip, acilirken tekrar ayni yapinin aktif olmasini istiyorum.

Tesekkür...
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
nightwolfcem
Üye
Mesajlar: 32
Kayıt: 02 Eki 2008 02:55

Re: Treeview

Mesaj gönderen nightwolfcem »

Component kaydetme olayını denedinmi
filestream.writecomponent(treeview1)
filestream.readcomponent(treeview1)
gibi
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Treeview

Mesaj gönderen Laz61 »

Merhaba

Tsk. ederim. Bir sey denemedim. Bu konuyla da hic ugrasmadim. Ben yogun sekilde programlarla ugrasmiyorum. Yaptigim programa gerekli olan kodlari yazmaya calisiyorum. Beceremezsem ariyorum. Bulamayinca soruyorum. Yogun sekilde sevdigim yazarlarin kitaplarini programliyorum. Bir kitap okuma programi yaptim. sesli degil. Treeview'in aktif yapisini programdan cikarken kaydetmek istiyorum. Umarim basaririm

Tsk. ederim
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
nightwolfcem
Üye
Mesajlar: 32
Kayıt: 02 Eki 2008 02:55

Re: Treeview

Mesaj gönderen nightwolfcem »

yeni bir form aç Bir tane treeview1
3 button(Name:Add,Save,Load olan) ekle
Codeları aşağıdaki gibi düzenle;

Kod: Tümünü seç

var
fileS:TFileStream;
index:integer;
begin
if TreeView1.Selected<>nil then
begin
  fileS:=TFileStream.Create(ExtractFilePath(Application.ExeName)+'.Treeview.sav',fmCreate);
  files.WriteComponent(TreeView1);
 index:=treeview1.Selected.AbsoluteIndex;//SEçili Öğenin gercek indexini al
  files.Write(index,4);//indexi Dosyaya yazdır
  files.free;
end;
end;

procedure TForm1.LoadClick(Sender: TObject);
var
fileS:TFileStream;
index:integer;
begin
  fileS:=TFileStream.Create(ExtractFilePath(Application.ExeName)+'.Treeview.sav',fmOpenread);
  files.ReadComponent(TreeView1);
  files.Read(index,4);//Dosyadan seçili index numarasını al
  TreeView1.Selected:=TreeView1.Items[index];// Okunan index Numarasına ait Öğeyi seçili kıl 
// Bu kısımdada görüntülenmesi gereken içeriği seçili öğeye göre güncellersin
  files.free;
end;

procedure TForm1.addClick(Sender: TObject);
var
sel:TTreeNode;
begin
sel:=TreeView1.Selected;
if assigned(sel) then
TreeView1.Items.AddChild(sel,'Yeni')
else
TreeView1.Items.AddChild(TreeView1.topitem,'Yeni')
En son nightwolfcem tarafından 07 Tem 2010 06:22 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Treeview

Mesaj gönderen Laz61 »

Merhabalar

nightwolfcem tsk. ederim. Kodu calistirdim, sorunsuz calisti. Kastim bu olmamakla beraber, herhalde kod maksadima dönüstürülebilir. Ben, örnegin Treeview'de "+icindekiler-Yazarin hayati vd." baslikli ve onunla iliskilendirilmis olan "yazarin hayati.rtf" isimli dosyayi ekrana cagiriyorum. Kasdettigim "+icindekiler-Yazarin hayati"nin acilmis sekliyle kaydedilmesi, ve program tekrar calistirildiginda aynen acilmasi, diger basliklarin degil, yani tüm agacin degil. Sadece "icindekiler" ve onun alt dali olan "yazarin hayati"nin acilmis sekliyle kaydedilmesi. Yani treeviewde yüzlerce baslik var. Vatandas okumus oldugu aktif metni ekranda zaten görüyor. Ben treeviewdeki basligin da o anda acilmis sekliyle aktif olmasini istiyorum. Tekrar konu basligini aramasina gerek kalmasin.

Tsk ederim
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
nightwolfcem
Üye
Mesajlar: 32
Kayıt: 02 Eki 2008 02:55

Re: Treeview

Mesaj gönderen nightwolfcem »

Laz61 yazdı:Merhabalar
nightwolfcem tsk. ederim. Kodu calistirdim..
Yukardaki Kodu güncelledim Gerekli açıklamaları yanlarına yazdım ;)
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Treeview

Mesaj gönderen Laz61 »

Merhabalar

nightwolfcem tsk ederim. Ben siteye soru sordugumda oturup gelecek olan cevaplari beklemiyorum. Kendimce cözüm yollari ariyorum. Dolayisiyle soru sorduktan sonra maksadimi kendi yöntemlerimle cözdüm. Aslinda yanlis anlasilir diye bu itirafi yapmayacaktim. Umarim yanlis anlasilmaz. Sorunu söyle cözdüm. Treeview'de tikladigim "icindekiler" baslikli metni bir listboxsa atiyorum ve cikarken listboxa kaydediyorum.
Daha sonra program acildiginda basligi "icindekiler" bir edit kutusuna atiyorum. Edit kutusunun change olayina yazdigim kodla Treeviewde basligi aratarak bulduruyorum. Ve cok harika calisiyor.

Tsk ederim
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
nightwolfcem
Üye
Mesajlar: 32
Kayıt: 02 Eki 2008 02:55

Re: Treeview

Mesaj gönderen nightwolfcem »

yok canım niye yanlış anlıyım . çözümü kendin bulman senin için daha güzel başkalarının yaptığını örnek alarak kendini geliştiremezsin veya zevki kalmaz işin. ama fikir olması açısından kodu incelemen senin için faydalı olur.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Treeview

Mesaj gönderen Laz61 »

Merhaba

Tsk. ederim. Gönderdiginiz kodu inceledim. Aklinizdan olasi bir sey gecmesin.

Tsk.
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Cevapla