Nesne Adında Değişken Kullanma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 19
- Kayıt: 11 Tem 2010 01:38
Nesne Adında Değişken Kullanma
Merhabalar. Yapmak istediğim işlem şu. Misal olarak formum üzerinde 10 tane edit var. ben bunların textini atıyorum göstermek istediğimde ;
showmessage(edit1.text);
showmessage(edit2.text);
showmessage(edit3.text); ... şeklinde kullanıyorum. Burda sorun yok. fakat ben bir değişken tanımlıyorum ( _EditNo). bunu orada nasıl kullanabiliriM?
Showmessage(Edit'+_EditNo+'.Text); yada // '+_EditNo+' yazdığım yerde kullanmak istiyorum
EditSonuc.Text:=Edit'+_EditNo+'.Text; // '+_EditNo+' yazdığım yerde kullanmak istiyorum
^^^ buradaki o satırların yerine tek satır kod kullanarak göstermesini istediğim değişkeni yani "_EditNo" 'yu nasıl kullanabilirim ?
showmessage(edit1.text);
showmessage(edit2.text);
showmessage(edit3.text); ... şeklinde kullanıyorum. Burda sorun yok. fakat ben bir değişken tanımlıyorum ( _EditNo). bunu orada nasıl kullanabiliriM?
Showmessage(Edit'+_EditNo+'.Text); yada // '+_EditNo+' yazdığım yerde kullanmak istiyorum
EditSonuc.Text:=Edit'+_EditNo+'.Text; // '+_EditNo+' yazdığım yerde kullanmak istiyorum
^^^ buradaki o satırların yerine tek satır kod kullanarak göstermesini istediğim değişkeni yani "_EditNo" 'yu nasıl kullanabilirim ?
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Nesne Adında Değişken Kullanma
Kod: Tümünü seç
i:=1;
ShowMessage(TEdit(FindComponent('Edit'+IntToStr(i))));
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: Nesne Adında Değişken Kullanma
burada da bir örnek var. viewtopic.php?f=2&t=12341
Mücadele güzelleştirir!
-
- Üye
- Mesajlar: 19
- Kayıt: 11 Tem 2010 01:38
Re: Nesne Adında Değişken Kullanma
ilginize teşekkür ederim öncelikle. Fakat yapmak istediğim işlemi gerçekleştiremedim.
Incompatible types hatasını alıyorum..
şeklinde uyguladığım zaman ise; Incompatible types: 'String' and 'Edit'
Yazmış olduğum kendi kodlarımdada nasıl kullanmak istediğimi anlatabilmişimdir umarım.. Şimdiden teşekkür ederim yardımlarınız için
bu kodu kendime göre düzenlediğim zamansabanakman yazdı:Kod: Tümünü seç
i:=1; ShowMessage(TEdit(FindComponent('Edit'+IntToStr(i))));
Kod: Tümünü seç
if TEdit(FindComponent('Edit_'+IntToStr(_Pencere)+'Pen_1Sayi.Text'))='0' then begin
ShowMessage('0 Değer İçin İşlem Yapamazsınız'); exit;
Kod: Tümünü seç
_Pencere:=3;
ShowMessage(TEdit(FindComponent('DEdit_'+IntToStr(_Pencere)+'Pen_1Sayi.Text')));
Yazmış olduğum kendi kodlarımdada nasıl kullanmak istediğimi anlatabilmişimdir umarım.. Şimdiden teşekkür ederim yardımlarınız için

- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Nesne Adında Değişken Kullanma
Kod: Tümünü seç
if TEdit(FindComponent('Edit_'+IntToStr(_Pencere)+'Pen_1Sayi')).Text='0' then begin
ShowMessage('0 Değer İçin İşlem Yapamazsınız'); exit;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Nesne Adında Değişken Kullanma
Anladığım kadarıyla şöyle birşey istiyorsun
Kod: Tümünü seç
var
i:Byte;
kontrol :TComponent;
begin
for i := 1 to Form1.ComponentCount do
begin
kontrol := FindComponent(Format('Edit%d',[i]));
if kontrol = nil then Continue;
ShowMessage((kontrol as TEdit).Text);
end;
end;
-
- Üye
- Mesajlar: 19
- Kayıt: 11 Tem 2010 01:38
Re: Nesne Adında Değişken Kullanma
Hocam teşekkür ederim. Aradığım buydu. İyi çalışmalarsabanakman yazdı:Kod: Tümünü seç
if TEdit(FindComponent('Edit_'+IntToStr(_Pencere)+'Pen_1Sayi')).Text='0' then begin ShowMessage('0 Değer İçin İşlem Yapamazsınız'); exit; end;


-
- Üye
- Mesajlar: 19
- Kayıt: 11 Tem 2010 01:38
Re: Nesne Adında Değişken Kullanma
Tekrar merhabalar. Ben aynı işlemi label dada kullanmak istiyorum..
Örnek olarak 5 adet labelim var. Yapmak istediğim ise örneğin kullanıcı 3 e bastığında L_3'üm gözüksün istiyorum. 5'e bastığında L_5...
yukarıda sabanakman'ın yöntemi ile tekrardan değişkeni yerleştiriyorum;
bu şekilde almaya çalışıyorum ve bunuda değişkene bağlıyorum
şu şekildede kullanmak istiyorum.
yani benim kodum olmalı...
Şu anda bu şekilde kullanmaya çalıştığımda "Record, object or class type required" hatası alıyorum. Bu işlemi nasıl gerçekleştirebilirim ?
Örnek olarak 5 adet labelim var. Yapmak istediğim ise örneğin kullanıcı 3 e bastığında L_3'üm gözüksün istiyorum. 5'e bastığında L_5...
yukarıda sabanakman'ın yöntemi ile tekrardan değişkeni yerleştiriyorum;
Kod: Tümünü seç
_Deger:=Edit_Deger.Text; //kullanıcının gireceği değeri birkaç yerde farklı şekilde kullandığım için böyle kullandım
Kod: Tümünü seç
_LabelSakla:=TLabel(FindComponent('L_'+IntToStr(_Deger))).Caption;
Kod: Tümünü seç
_LabelSakla.Hide; // burada _LabelSakla'nın almasını istediğim değer kullanıcı 2'ye basmış sayarsak =>"L2"
Kod: Tümünü seç
L2.Hide;
Şu anda bu şekilde kullanmaya çalıştığımda "Record, object or class type required" hatası alıyorum. Bu işlemi nasıl gerçekleştirebilirim ?
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Nesne Adında Değişken Kullanma
Değişken tipleriyle alakalı eksiklerimiz bayağı çok gibi. şeklinde bir kodla pek bir yere varılmaz. Öncelikle şeklinde TLabel tipinde değişken tanımlanmalı ve aranan bileşen koduyla değişkenine atanmalıdır. Artık kodu ile istenen işlem gerçekleşecektir. Neden böyle olması gerektiğinden şimdilik bahsetmiyorum ama biraz zihin egzersizi ile durumu çözeceğinizi umuyorum.
Kod: Tümünü seç
_LabelSakla:=TLabel(FindComponent('L_'+IntToStr(_Deger))).Caption;
Kod: Tümünü seç
var _LabelSakla:=TLabel
Kod: Tümünü seç
_LabelSakla:=TLabel(FindComponent('L_'+IntToStr(_Deger)));
Kod: Tümünü seç
_LabelSakla.Hide
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 19
- Kayıt: 11 Tem 2010 01:38
Re: Nesne Adında Değişken Kullanma
Hocam teşekkür ederim.. Durumu ve olayı anladım. Bu cevabınız aklımda olan diğer sorularımada cevap oldu. İlginiz için teşekkürler...