Sınıflarda override property kullanmak mümkün mü?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sınıflarda override property kullanmak mümkün mü?
--
En son aseka tarafından 18 Mar 2008 09:06 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
aslında diğer işlemleride paint olayında yapabilirsin diye düşünüyorum çünkü her değişiklik olduğunda boyama yeniden yapılacak ve bu arada senin diğer işlemlerinde yapılmış olacak..
illede sadece boyutlar değiştiğinde bu işlemleri yapmasını istiyorsan resize olayını kullanabilirsin diye düşünüyorum..
illede sadece boyutlar değiştiğinde bu işlemleri yapmasını istiyorsan resize olayını kullanabilirsin diye düşünüyorum..
"property Width: Integer read GetWidth write SetWidth;" şeklinde tanımlayın.
Kolay gelsin...
Kod: Tümünü seç
function BilesenAdi.GetWidth: Integer;
begin
Result := inherited Width;
end;
procedure BilesenAdi.SetWidth(Value: Integer);
begin
inherited Width := Value;
//+ beyaza boyama fonksiyonu
end;
Teşekkür ederim...
--
En son aseka tarafından 18 Mar 2008 09:08 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Aslında bu çözüm gayet iyi bir çözüm. TImage için bir override operasyonu ile tüm mesele hallolabilir. Sadece paint metodunun override olması yeterli başka hiç bir tanıma gerek yok. bu şekilde tasarlarsan sadece Width değil diğer tüm özellik değişimlerinden tetiklenecektir. Bir zamanlar bu şekilde tasarlayarak duvar kağıdı bileşeni yazmıştım.
Kod: Tümünü seç
TWallPaper=class(TImage)
public
procedure Paint; override;
end;
procedure TWallPaper.Paint;
begin
inherited Paint;
//Boyama kodları
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .