treeview ile goruntuleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
acolak
Üye
Mesajlar: 22
Kayıt: 25 Şub 2005 01:20
Konum: istanbul

treeview ile goruntuleme

Mesaj gönderen acolak »

herkese selamlar,

forumda gecen onceki treeview ile yazılmıs olan soruları incelemiş olmama ragmen problemime yonelik cevabı bulamadım.Sorun su:
Programımın raporlar bolumunde treeview bileseni kullandım ve ana ve alt dallara tıklandıgında treeview un sag tarafında panel bilesenlerinin goruntulenmesini istiyorum.Dikkat ederseniz form degil panel cunku bu treeview bileseni bir tabsheet uzerine kurulu.ve programın tamamını tek bir anaform altında yurutmek istiyorum.ilgili editleri,labelları ve dugmeleri bu panellerin uzerine yerleştirip,her item tıklandıgında farklı bir panel ve buna baglı olarak da farklı label,edit vs gelmesini istiyorum.

Panelin goruntulenme islemini treeview un onClick eventi uzerinde denemiş olsamda basarıya ulasamadım.Bu konuda onceden calısmıs veya bilgisi olan arkadaslar yardımcı olurlarsa memnun olurum.

NOT:Panel bileseni diger bileşenler arasında bu iş icin en uygun oldugunu dusundugum icin uyguladım.Eger sizin bildiginiz daha uygun bir bileşen varsa o da kabulumdur :)
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Merhaba

Aslında onclick tetiklemesinde ki kodları da yazsan iyi olurdu.... :wink:


burada kontrollerini şu şekilde yapabilirsin

1. Treewiev1.Selected.Text komutu ile kontrol ettirebilirsin.

2. Treewiev1.itemindex komutu ile kontrol ettirebilirsin.... 8)

Mesela

if treewiev1.selected.text=' :D ' then
begin
........
end
else
if treewiev1.selected.text=' :wink: ' then
begin
........
end;

Saygılar,
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Ben bunun için güzel bir çözüm bulmuştum.her grup için bir sınıf jode tanımlayarak o sınıfın alt nodelerinide child node (yine ayrı bir sınıf olarak tanımladım.) ve buna bağlı olarak bir tanede numara veren özelllk ekledim numarasına göre işlem yaptırıyorum.Bir ara zamanım olursa kodları açrım buraya.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
acolak
Üye
Mesajlar: 22
Kayıt: 25 Şub 2005 01:20
Konum: istanbul

Mesaj gönderen acolak »

ender_arslanturk yazdı:Merhaba

Aslında onclick tetiklemesinde ki kodları da yazsan iyi olurdu.... :wink:


burada kontrollerini şu şekilde yapabilirsin

1. Treewiev1.Selected.Text komutu ile kontrol ettirebilirsin.

2. Treewiev1.itemindex komutu ile kontrol ettirebilirsin.... 8)

Mesela

if treewiev1.selected.text=' :D ' then
begin
........
end
else
if treewiev1.selected.text=' :wink: ' then
begin
........
end;

Saygılar,
ben onclick eventine su sekilde bir ifade yazmaya calıstım:

if treeview1.items.item[1].selected then panel1.show;

form (aslında tabsheet) uzerinde birden fazla panel oldugundan,hangi item tıklanırsa o panelin aktif olması lazım.Burda form kullanmak istemiyorum. :cry:
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
ben TTreeview i menü şeklinde kullandığım projelerimde TTreeview in StateIndex özelliğinden yararlanırım Tasarım anında eleman eklerken StateIndex değerini belirliyorsunuz ve sonra şuna benzer bir komut dizisi ile basit ve kontrolü kolay bir yönetemle işlemlerini yaptırabilirsiniz,

Kod: Tümünü seç

case TTreeview.Selected.StateIndex of
 0:
 1:
 2:
 .. . .  
end;
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
ZER0
Üye
Mesajlar: 24
Kayıt: 09 Tem 2005 10:14
Konum: İst/Maltepe

Mesaj gönderen ZER0 »

vkamadan yazdı:Merhaba ,
ben TTreeview i menü şeklinde kullandığım projelerimde TTreeview in StateIndex özelliğinden yararlanırım Tasarım anında eleman eklerken StateIndex değerini belirliyorsunuz ve sonra şuna benzer bir komut dizisi ile basit ve kontrolü kolay bir yönetemle işlemlerini yaptırabilirsiniz,

Kod: Tümünü seç

case TTreeview.Selected.StateIndex of
 0:
 1:
 2:
 .. . .  
end;
kolay gelsin.
şeklinde yapıp panel in visible özelliğiyle bu işi halledebilirsin.
Gökay Okutucu
Sakarya Bilgisayar Programcılığı Öğrencisi
Kullanıcı avatarı
acolak
Üye
Mesajlar: 22
Kayıt: 25 Şub 2005 01:20
Konum: istanbul

Mesaj gönderen acolak »

sorumla ilgili olarak birsey daha sormak istiyorum.arkadasların tavsiyesi ile stateindex ve visible ozelliklerini kullandım.Fakat sonucta tabsheet uzerinde birden fazla(15 adet) panel var.bunların birinin visible ozelligini true yaptıgımız zaman digerlerini false yapmamız gerek.Ve o panelle isimiz bitip te basla bir panele gectigimizde tekrardan false olan degerleri true yapmamız gerekiyor.Yoksa ilk panelden baska paneli goremiyoruz.

Sorum su: bu tip boolean degerlerine gore sorgulama yapma sansımız varmı?Ornegin Visible ozellikleri True olan Panelleri bulup,hepsini false olarak degistirmek gibi.

Tesekkurler simdiden
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
Tıklandığında görünmesini istediğin panelin tag özelliğine Treeview in ilgili node sinin Stateindex özelliğin deki değerini verin. Sonra aşağıdakine benzer bir procedure yapısı kullanarak olayı halledin

Kod: Tümünü seç

procedure PanelGosterGizle;
var
i:integer;
begin
for i:=0 to componentcount-1 do
begin
if components[i] is TPanel then
begin 
if TPanel(components[i]).tag=treeview.selected.stateindex then 
TPanel(components[i]).visible:=true else TPanel(components[i]).visible:=false;
end;
end;
end;
kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla