type TControlClass = class of TControl;
function CreateControl(ControlClass: TControlClass;
const ControlName: string; X, Y, W, H: Integer): TControl;
begin
Result := ControlClass.Create(MainForm);
with Result do
begin
Parent := MainForm;
Name := ControlName;
SetBounds(X, Y, W, H);
Visible := True;
end;
end;
ile asagidaki kod arasinda fark nedir acaba?eger iki kodda ayni anlama geliyorsa class reference typelarin varolus amaci nedir?cevaplariniz icin simdiden tesekkurler.saygilar
function CreateControl(ControlClass: TControl;
const ControlName: string; X, Y, W, H: Integer): TControl;
begin
Result := ControlClass.Create(MainForm);
with Result do
begin
Parent := MainForm;
Name := ControlName;
SetBounds(X, Y, W, H);
Visible := True;
end;
end;
Ne yüksek bir zeka ne büyük hayal gücü Her ikisi de insani dahi yapamaz.Deha'nın ruhu sevgidir,sevgidir ve yine sevgidir.
Bu kodlar aynı kodlar değildir. 2. yazdığınız kodun hata çıkaracağı kanaatindeyim. Çünkü bir nesne oluşturulurken onun sınıfı kullanılır, nesnenin kendisi değil. Yani bir buton oluşturmak için TButton.Create kodu kullanılır. Button1.Create hata oluşturacaktır.
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .
sabanakman yazdı:Bu kodlar aynı kodlar değildir. 2. yazdığınız kodun hata çıkaracağı kanaatindeyim. Çünkü bir nesne oluşturulurken onun sınıfı kullanılır, nesnenin kendisi değil. Yani bir buton oluşturmak için TButton.Create kodu kullanılır. Button1.Create hata oluşturacaktır.
Yanlız Button1 eğer önceden oluşturulmuş ise Nesne üzerinden de constructor çağırabilirsiniz. Yani Button1 öncden oluşmuş ise