درخواست توضیح در مورد این کد
سلام میشه در مورد خط قرمز توشح بدید؟
constructor TCustomForm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IF DEFINED(CLR)}
GlobalNameSpace.AcquireWriterLock(MaxInt);
{$ELSE}
GlobalNameSpace.BeginWrite;
{$IFEND}
try
FCreatingMainForm := Application.FCreatingMainForm;
if FCreatingMainForm then
Application.FCreatingMainForm := False;
InitializeNewForm;
if (ClassType <> TForm) and not (csDesigning in ComponentState) then
begin
Include(FFormState, fsCreating);
try
if not InitInheritedComponent(Self, TForm) then
raise EResNotFound.CreateFmt(SResNotFound, [ClassName]);
finally
Exclude(FFormState, fsCreating);
end;
{$IF NOT DEFINED(CLR)}
if OldCreateOrder then
{$IFEND}
DoCreate;
end;
finally
{$IF DEFINED(CLR)}
GlobalNameSpace.ReleaseWriterLock;
{$ELSE}
GlobalNameSpace.EndWrite;
{$IFEND}
end;
end;
نقل قول: درخواست توضیح در مورد این کد
یعنی Constructor مربوط به کلاس والد در ابتدا اجرا شده و پس از کد مربوط به Constructor فعلی . البته در شرایطی که Constructor مربوط Override شده باشد . همین قضیه برای Destructor صادق است ولی در انتهای آن.
نقل قول: درخواست توضیح در مورد این کد
توی پردازش پیام ها هم کاربرد داره؟
به کار بردن به این صورت چه معنی داره؟
inherited
نقل قول: درخواست توضیح در مورد این کد
نقل قول:
به کار بردن به این صورت چه معنی داره؟
متدی با نام و امضاء متد فعلی را از کلاس والد فراخوانی میکنه.
نقل قول: درخواست توضیح در مورد این کد
نقل قول:
متدی با نام و امضاء متد فعلی را از کلاس والد فراخوانی میکنه.
خوب قبلی هم همینکارو میکرد دیگه! متدی رو که از کلاس والد Overrideش کرده ایم رو فراخوانی میکنه؟!
منظور از امضا چیه؟
در ضمن فقط در ارث بری کاربرد داره؟
نقل قول: درخواست توضیح در مورد این کد
احتمالا منظور ترتیب و نوع پارامتر هاست.
در هر صورت در مورد inherited در صورتی که پارامتر های متد override شده نسبت به پارامتر های متد در کلاس والد تغییری نکرده باشه می تونیم نام و پارامتر ها رو ذکر نکنیم، اما اگه پارامتر ها تغییر کرده باشن دیگه حتما باید نام و پارامتر ها نوشته بشن.
اگر پارامترها تغییر نکرده باشن ذکر و عدم ذکر نام متد بعد از inherited هیچ تفاوتی نداره (حد اقل از نظر اجرای برنامه، حالا لایه های پایین تر رو نمی دونم).