Nesneye ait özelliği string olarak görmek hak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Nesneye ait özelliği string olarak görmek hak.

Mesaj gönderen kahraman1285 »

Mrb.
Nesneye ait özellikleri "string" olarak görebilir yada bir label,edite yazdırabilirmiyiz?

Mesela TrzLabel (Raize ait label) nesnesinin "boreder Inner" özelliğini ögrenmek istiyorum.
Şu anki bilgilerim ışığında bunu şu şekilde yapabiliyorum.

Kod: Tümünü seç

if Rzlabel1.BorderInner=fsNone then Showmessage('Derinlik yok');
if Rzlabel1.BorderInner=fslowered then Showmessage('Derinlik içe doğru');
...
...
..
.  (borderInner:TFrameStyle)

gibi devam eden 9 adet if then else yazmalıyım.
Bunun yerine

Kod: Tümünü seç

Var Kose:string;
Kose:=Rzlabel1.BorderInner;
gibi bi ifade kullanabilirmiyiz.böyle bi ifade yazdığımda haliyle delphi hata veriyor.

Kod: Tümünü seç

incompatible types:'String' and 'Tframestyleex'
anlatmaya çalıştığım gibi herhangi bir nesnenin string olmayan özelliğini string hale çevirebilirmiyiz? Özelliği öğrenmenin başka bir yolu varmı?

Herkese kolay gelsin...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

enumerated type lari string olarak rtti kullanarak alabilirsin.

Kod: Tümünü seç

uses TypInfo;

caption:=GetEnumName(typeinfo(TFrameStyle),ord(Rzlabel1.BorderInner))
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Nesneye ait özelliği string olarak görmek hak.

Mesaj gönderen sabanakman »

Mrb;
kahraman1285 yazdı:f Rzlabel1.BorderInner=fsNone then Showmessage('Derinlik yok');
if Rzlabel1.BorderInner=fslowered then Showmessage('Derinlik içe doğru');
...
...
..
.
Bu gibi durumlarda case kullanmak daha pratiktir.

Kod: Tümünü seç

case Rzlabel1.BorderInner of
  fsNone:Showmessage('Derinlik yok');
  fslowered:Showmessage('Derinlik içe doğru');
  .
  .
//else Showmessage('Bilinmiyor');
end;
gibi. Kolay gelsin.
sadettinpolat yazdı:uses TypInfo;

caption:=GetEnumName(typeinfo(TFrameStyle),ord(Rzlabel1.BorderInner))
ise hemen kayıtlarıma geçti :) .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Cevaplar için teşekkürler sayın saadettinpolat'ın çözümü bana yeni bir şey öğretti ..

Teşekkür ederim...
Cevapla