Bilinmeyen bir component'in method'unu ismi ile kullanmak..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Bilinmeyen bir component'in method'unu ismi ile kullanmak..

Mesaj gönderen Glen »

Daha uygun bir baslik bulamadim, pek aciklayici olmadiginin farkindayim.
Soruma gelince..

Ornegin;

Kod: Tümünü seç

TEdit(FindComponent('Edit1')).Text := 'Ahmet';
Seklinde kullanabiliyoruz. Peki...

TComponent(FindComponent('Edit1').('Text')) := 'Ahmet' gibi bir kullanim var mi? veya

TComponent(FindComponent('Combobox1').('Items').('Add') gibilerinden yani salliyorum bunalr zaten calismiyor da..

Nereden cikti bu soru diye sorarsaniz hani propertyler

Kod: Tümünü seç

SetPropValue(xForm, '_degiskenadi', 'Deneme')
SetPropValue(xForm, '_degiskenadi2', 15)
seklnde kullanilabiliyor ya, o bakimdan..

Umarim anlatabilmisimdir, ilginiz icin tesekkür ederim..
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Re: Bilinmeyen bir component'in method'unu ismi ile kullanma

Mesaj gönderen sadettinpolat »

Glen yazdı:
TComponent(FindComponent('Edit1').('Text')) := 'Ahmet' gibi bir kullanim var mi? veya

TComponent(FindComponent('Combobox1').('Items').('Add') gibilerinden yani salliyorum bunalr zaten calismiyor da..
kullanmak istediginiz ozelligin tip zorlamasi yaptiginiz sinifta bulunmasi gerekir.

kullanmak istediginiz ozellik Text , tip zorlamasi yaptiginiz sinif ise TComponent dersek TComponent(FindComponent('Edit1').('Text')) kodu calismayacaktir. cunku Tcomponent sinifinin text ozelligi yoktur. text ozelligi TControl sinifinda tanimlanmistir.
yani
TComponent(FindComponent('Edit1').('Text'))
yerine
TControl(FindComponent('Edit1').('Text')) yazarsaniz -ya da TControl yerine Tcontrolden turemis baska bir sinif- kod calisacaktir.

hani sinifta hangi ozellikler var diye ogrenmek isterseniz delphi helpinden yararlanabilirsiniz.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Mesaj gönderen Glen »

Cevabiniz icin cok tesekkür ederim birazdan bakacagim help'e ;)

İyi calismalar, kolay gelsin.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Kod: Tümünü seç

TEdit(FindComponent('Edit1')).Text := 'Ahmet';
yerine

Kod: Tümünü seç

uses TypInfo;
SetPropValue(FindComponent('Edit1'), 'Text', 'Ahmet');
yazarak yapılabilir fakat, Items (TStrings) gibi sınıf türünden bir özellik olduğundan bu fonksiyonu kullanarak atama yapılabilir mi şu anda net bir cevap veremem.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla