Nesnenin Özelliğini Delphiye tanıtma 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

Nesnenin Özelliğini Delphiye tanıtma hak.

Mesaj gönderen kahraman1285 »

Mrb.
Delphi 7 kullanıyorum.Projemde TRzLabel(Raize) kullanıyorum ve bunun bordersides özelliğini run-time da değiştirmek istiyorum.

Fakat

Kod: Tümünü seç

RzLabel1.BorderSides:=[sdLeft,sdTop,sdRight,sdBottom];
yazdığımda

Kod: Tümünü seç

incompatible types: "Enumeration" and"TSide"
hatasını veriyor yardım menüsüne baktığımda ise

Kod: Tümünü seç

property BorderSides: TSides default[sdLeft, sdTop, sdRight, sdBottom]; 
diye belirtiyor anladığım kadarıyla benim bir tip tanımlaması yapmam gerekiyor.Ayrıca bu özellik "RzCommon" unitini işaret ediyor ve ben onuda uses satırına eklemiş durumdayım.

Bu noktada bu tip tanımlamasının nereye ve nasıl yapmalıyım
Herkese Teşekkürler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

merhaba,

rzcommon'u ekledikten sonra şu şekilde yapabilirsin :

Kod: Tümünü seç

RzLabel1.BorderSides := RzLabel1.BorderSides + [sdLeft];
  RzLabel1.Invalidate;
Kolay gelsin.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Hocam maalesef yine aynı hatayı alıyorum.bu konuda başka yapabileceğim bişey var mı?
yazdığım kod

Kod: Tümünü seç

var Metin1:TRZLabel;

Metin1.BorderSides:=Metin1.BorderSides - [sdLeft];
metin1.Invalidate;
aldığım hata

Kod: Tümünü seç

incompatible types: "Enumeration" and "TSide"
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: Nesnenin Özelliğini Delphiye tanıtma hak.

Mesaj gönderen sabanakman »

kahraman1285 yazdı:

Kod: Tümünü seç

incompatible types: "Enumeration" and"TSide"
hatasını veriyor yardım menüsüne baktığımda ise

Kod: Tümünü seç

property BorderSides: TSides default[sdLeft, sdTop, sdRight, sdBottom]; 
diye belirtiyor
Benim buradan çıkardığım anlam TSide tipi bir değişkene TSides tipinde bir değer atamaya çalışılıyotr. Hatta TSides=set of TSide; şeklinde tanımlanmış galiba. Bu tiplere ve atanan değerlere biraz hassasiyet gösterilirse sorun çözülebilir. Hatta property BorderSides: TSides default[sdLeft, sdTop, sdRight, sdBottom]; şeklindeki kodu tekrar derleyin belki derlenmesinde de bir problem olmuş olabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7604
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

kahraman1285 yazdı:Hocam maalesef yine aynı hatayı alıyorum.bu konuda başka yapabileceğim bişey var mı?
yazdığım kod

Kod: Tümünü seç

var Metin1:TRZLabel;

Metin1.BorderSides:=Metin1.BorderSides - [sdLeft];
metin1.Invalidate;
aldığım hata

Kod: Tümünü seç

incompatible types: "Enumeration" and "TSide"
Hocam kodu deneyip yazmıştım ben :roll: Raize 4.1.1'de sorunsuz çalışmıştı.

Bence sıfır bir projede bir daha dene. Olmazsa sıfır oluşturduğun projenin kodlarını bana at, ben bir deneyim.

Kolay gelsin.
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Mustafa Hocam ;

Kodları yeni bir projede denediğimde hata vermedi.Ama kodda yapması gerekeni yapmadı.

Ama şunu farkettim benim kullandığım Raize 3.0.12 sürümü sanırım sürüm farkından kaynaklanan bir hata 4.1 sürümü kurulu bi makinede tekrar deneyeceğim.

ilginize teşekkürler.
Kullanıcı avatarı
SeRoKi
Üye
Mesajlar: 72
Kayıt: 09 Kas 2005 02:59
Konum: İstanbul

Mesaj gönderen SeRoKi »

kahraman1285 yazdı:Mustafa Hocam ;

Kodları yeni bir projede denediğimde hata vermedi.Ama kodda yapması gerekeni yapmadı.

Ama şunu farkettim benim kullandığım Raize 3.0.12 sürümü sanırım sürüm farkından kaynaklanan bir hata 4.1 sürümü kurulu bi makinede tekrar deneyeceğim.

ilginize teşekkürler.
yeni projede hata vermediyse ve işlemini yerini de getirmediyse RzLabel'in borderwidth değerini 1 yapın (standart olarak 0'dır. böylece kenarları görebilirsiniz.)
Cevapla