stringten bileşene?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

stringten bileşene?

Mesaj gönderen sarp_halit »

S. A. Arkadaşlar. Öncelikle herkese iyi akşamlar.

viewtopic.php?f=2&t=28118 adresinde yetkilendirmeler ile ilgili bir konu açtım ama ya ben konuyu tam olarak aktaramadığımdan ya da yanlış bir yere açtığımdan olsa gerek çok da doyurucu bir sonuç alamadım. Bu konu yetkilendirmeyle ilgiliydi ama yapmak istediğim şey tam olarak şu:

bileşenlerin isimlerini ve tiplerini veritabanında tutuyorum. yaptığım sorgulamada sorgu sonucuna denk gelen bileşenleri yine aynı tabloda gelen bir değere göre görünür ya da görünmez yapmak istiyorum.

gelen string değeri bileşene dönüştüremediğim için visible özelliğini değiştiremiyorum.

Bu konuda nasıl bir yöntem izleyebilirim.

viewtopic.php?f=2&t=28118 adresinde tablo detayları yer almaktadır.

ilginizden dolayı şimdiden teşekkür eder herkese iyi akşamlar dilerim.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: stringten bileşene?

Mesaj gönderen SimaWB »

Eğer yanlış anlamadıysam FindComponent fonksiyonu işinizi görmesi lazım. Örneğin;

Kod: Tümünü seç

var MyComp: TComponent; 
begin 
  MyComp := FindComponent("strCompName"); 
  If MyComp is TButton then 
    TButton(MyComp).Visible:= False; 
end;
There's no place like 127.0.0.1
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: stringten bileşene?

Mesaj gönderen sarp_halit »

eğer bileşenleri tek tek kontrol etmek istersem o zaman findcomponents fonksiyonunu kullanmamda herhangi bir problem yok. ama ben toplu olarak bu kontrolü yapmak istiyorum. sorunda bu noktada ortaya çıkıyor.

ben bileşenle birlikte bileşen türünü de veritabanında saklıyorum. eğer bileşen bir ttoolbutton ise bileşen adının yanında btnYeni gibi.
örneğin:

Kod: Tümünü seç

var bilesen:TComponent;
begin
bilesen:=FindComponents(veritabanindangelenbilesenadialani);
if bilesen is [b]bilesentipi[/b] Then
veritabanindakibilesentipi(bilesenadi).Visible=veritabanindakiyetkidegeri=1;
end;
bu benim de düşündüğüm alternatiflerden birisi. bir diğeri de

Kod: Tümünü seç

var i:integer;
bilesen:TComponent;
begin
for i:=0 to ComponentsCount-1 do
begin
bilesen:=Components[i];
//burada yapmak istediğim şey
if LowerCase(bilesen.Name)=LowerCase(veritabanindakibilesenadi) Then
bilesen.Visible:=veritabanindakiyetkialani=1; // tabi burada visible özelliğini bu şekilde kullanamıyorum. 
end;
bu noktada tıkandım kaldım. nasıl çıkacağımı da bilemedim.

ilgin için teşekkür ederim. iyi akşamlar.
Fethiye den herkese sevgiler ...
X))@:>
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: stringten bileşene?

Mesaj gönderen Battosai »

Nasıl bir yetkilendirme sistemin var senin anlamadım. İğneden ipliğe yetki mi tanımlıyorsun :) Yaptıkların sanki işini zorlaştırmaktan ibaret...neyse kolay gelsin
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: stringten bileşene?

Mesaj gönderen sarp_halit »

biraz öyle gibi. tablonun bir tanesinde form isimleri ve bu formlar üzerindeki bileşenlerin tipleri ve isimleri var. yetkiler tablosunda ise bütün bunlara ek olarak yetki adı, kullanıcı adı, ve yetki alanları var.

yetki adı alanını bileşenlere verecek olduğum yetkileri toplu olarak değiştirmek için bir yöntem. yani bir checkbox işaretlendiğinde eğer seçildiyse yetki adı o olan bütün bileşenleri otomatik olarak 0 yap eğer işaretliyse 1 yap gibisinden bir mantık için hazırlandı.

sanırım bunu yapabilecek bilgi ve tecrübeye sahip değillim ya da böyle bir şey delphi ile mümkün değil.

benzer örneklerini vb ve c# ile denedim ( internet üzerinde derin araştırmalar sonucunda örnekler vasıtasıyla) ama delphi de takıldım kaldım :(

işin içinden çıkamadıkça geliştirdiğim projeye karşı bir soğukluk oluşmaya başladı.

neyse, yapacak bir şey yok artık. herkese iyi akşamlar dilerim. bu arada bugün kandil ve herkesin kandili mübarek olsun.
Fethiye den herkese sevgiler ...
X))@:>
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: stringten bileşene?

Mesaj gönderen orhancc »

Şöyle birşey yapmalısın ama tüm bileşenleri kontrol ettirmen lazım. veritabanından gelen değerlere göre de true false yapacaksın sadece.

Kod: Tümünü seç

var
i:integer;
bilesen:TComponent;
begin
  for i:=0 to ComponentCount-1 do
    begin
      bilesen:=Components[i];
    //  if LowerCase(bilesen.Name)=LowerCase(veritabanindakibilesenadi) Then
     //ilesen.Visible:=veritabanindakiyetkialani=1; // tabi burada visible özelliğini bu şekilde kullanamıyorum.
       if bilesen is TEdit then (bilesen as TEdit).Visible := false;
       if bilesen is TCheckBox then (bilesen as TCheckBox).Visible := false;
       if bilesen is TLabel then (bilesen as TLabel).Visible := false;
    end;
end;
Kullanıcı avatarı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

Re: stringten bileşene?

Mesaj gönderen sarp_halit »

en son çare olarak bu şekilde yapmak gerek tabi. ben bu kontrolleri otomatik yaptırabilir miyim diye düşünmüştüm ama zaten bir form üzerinde kontrol edeceğim bileşen sayısı kaç tane olabilir ki :D

ilginizden dolayı hepinize teşekkür ederim arkadaşlar.

iyi günler dilerim.
Fethiye den herkese sevgiler ...
X))@:>
Cevapla