Tobject nesnesinden Name Nasıl Alınır? (Çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Tobject nesnesinden Name Nasıl Alınır? (Çözüldü)

Mesaj gönderen adelphiforumz »

SA

bir TObject nesnesinden object'i as yapmadan objenin adını nasıl alabilirim.

(xObject as TButton).Name gibi her obje için bir satır yazmak istemiyorum
bir döngü halinde form üzerindeki tüm objelere işlem yapmak istiyorum

Teşekkürler
En son adelphiforumz tarafından 12 Haz 2013 04:11 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Tobject nesnesinden Name Nasıl Alınır?

Mesaj gönderen yusuf simsek »

for iDongu := 0 to self.ComponentCount - 1 do
begin
if ( self.Components[ iDongu ] is TButton ) memo1.Lines.Add( (self.Components[iDongu] as TButton).Name );
end;
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Tobject nesnesinden Name Nasıl Alınır?

Mesaj gönderen unicorn64 »

delphi versiyonunuz nedir? yanlış bilmiyorsam delphi2007 ve sonrasında gelen özellikle nesnenin property lerine erişebiliyoruz.
aşağıdaki metodla parametre olarak geçtiğiniz nesnenin Name property sini string olarak alabilirsiniz.
kodu denemedim, kontrol edersiniz.

Kod: Tümünü seç

function GetObjectName(aObject:TObject):string;
var
  ctx: TRttiContext;
  t: TRttiType;
  p: TRttiProperty;
begin
   result:='';
   ctx := TRttiContext.Create;
   t := ctx.GetType(aObject.ClassType);	
   for p in t.GetProperties do
   begin
    if p.Name = 'Name' then
    begin
      result:=p.GetValue(aObject).AsString; 
      break;
    end;
   end;
end;

bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Tobject nesnesinden Name Nasıl Alınır?

Mesaj gönderen SimaWB »

Yanlış bilmiyorsam Name özelliği TComponent class'ından itibaren var. Dolayısıyla Form'un Components özelliği(listesi) sizin aradığınız liste olabilir.

Kod: Tümünü seç

with Form1 do
  for I := ComponentCount - 1 downto 0 do
  begin
     Components[I].Name //bu şekilde forma ait tüm bileşenlerin isimlerine ulaşırsın
  end;
Mesela Panel1'in üzerindeki bileşenlerin isimlerini öğrenmek istersen sadece with 'ten sonraki Form1 yerine Panel1 yazarsın...
There's no place like 127.0.0.1
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Tobject nesnesinden Name Nasıl Alınır?

Mesaj gönderen adelphiforumz »

Bende söyle bşey buldum

bir objenin istenen değeri alınabiliyor
xObjectName := GetStrProp(pObject, 'Name');

Set etme işlemide şöyle
SetStrProp(pObject, 'Name', xObjectName);
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla