merhabalar
vcl'de protected olarak hazirlanmis procedure ve fonksiyonları çağırabilir miyiz?Teşekkür ederim....
protected hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
protected daha çok özellik tanımlama bölümüdür. Fonksiyon ve prosedürlerin yazımı burada olmaz. (virtual ve dynamic olanlar hariç). protected bölümde yazılan özellik, fonksiyon ve prosedürler çocuk sınıflarda açığa çıkartılabilir. Mesela TEdit nesnesinin kodlarına bakarsanız, TCustomEdit'ten türemiştir ve sadece TCustomEdit'te tanımlanmış protected özelliklerin published içinde tanımlanarak açığa çıkarılmış hali olduğunu göreceksiniz. virtual veya dynamic prosedür, fonksiyonlar da override ile yeniden yazılabilir durumdadırlar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- fatihtolgaata
- Üye
- Mesajlar: 382
- Kayıt: 04 Mar 2004 09:46
- Konum: K.çekmece / İstanbul
- İletişim:
Çağırabilirsiniz. Bu aslında hileli bir teknik ama işe yarar. Mesela:
gibi bir fonksiyondaki protected metoda erişmek için ya bu fonksiyondan türeyen bir bileşen yapacaksınız ya da kodlarınız bu sınıfın uniti ile aynı olacak. Ya da aşağıdaki tekniği kullanacaksınız:
Bileşen türetmeye benzese de yeni bir bileşen kaydettirmiyorsunuz. Böylece belkide bir çok bileşeni yeniden türetmekten kurtulmuş oluyorsunuz. Burada eğer prosedür sanal ya da dinamik ise override etmeyi unutmuyorsunuz, eğer değilse override kelimesini kaldırmalısınız.
vesselam
Kod: Tümünü seç
TSomeClass = class
protected
procedure BirMetod; virtual;
end;
Kod: Tümünü seç
TGosterenClass = class(TSomeClass)
public
procedure BirMetod; override;
end;
Daha sonra kodlar içinde TSomeClass.BirMetod'a ulaşmak için:
var
SomeClass: TSomeClass;
begin
....
TGosterenClass(SomeClass).BirMethod;
vesselam