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
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.
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,
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,
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.
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
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;