با سلام.
میشه بگید چه فرقی بین سه تا کد زیر هست چون من هر سه تا شو امتحان کردم جواب میده، منظورم در ساخت شئی هست.
منظورم بین Self، nil، Application هست.
کد:
LabelName := TLabel.Create(Self);
LabelName := TLabel.Create(nil);
LabelName := TLabel.Create(Application);
با تشکر.
nil : مشخص میکند که هیچ شیئ مالک فرم نیست و بنابراین ، برنامه نویس (شما) ، وظیفه دارد فرم ساخته شده را آزاد کند. مثلاً زمانی که دیگر نیازی به فرم ندارید میتوانید با دستور myForm.Free ، حافظه مورد استفاده فرم را آزاد کنید.
Self : مشخص کننده شیئی ست که متد Create را فراخوانی کرده (Self اشارهگری ست به کلاس جاری) ، فرض کنید در فرمی با نام MainForm هستید و میخواهید شیئ MyForm را بسازید، روی دکمه ای کلیک میکنید و کد مورد نظر را مینویسید، در اینجا Self به کلاس MainForm اشاره دارد و نه دکمهای که کد را روی آن نوشتید(در واقع دکمه، فیلدی از کلاس MainForm هست). بنابراین Self مساوی ست با MainForm ، پس هر زمانیکه MainForm از بین برود(آزاد شود) ، MyForm نیز از بین میرود(آزاد میشود).
Application : مشخص کننده یک متغیر عمومی از نوع کلاس TApplication هست و زمانی ایجاد میشود که برنامهتان را اجرا میکنید و در زمان خاتمه برنامه نیز به همراه تمام اشیائی که مالکشان هست از بین میرود. ایجاد و حذف آن بر عهده ی شما نیست و از این بابت نگران نباشید. این کلاس و شیئ به ترتیب در یونیت Forms تعریف و در یونیت Controls ساخته میشود.کلاس TApplication هم یک کامپوننت هست اما در زمان طراحی نمیتوانید از آن استفاده کنید. بعضی از ویژگیهای Application را میتوانید مستقیماً در صفحه Application فرم Project Options تنظیم کنید، برای مابقی تنظیمات هم، میبایست از کد استفاده کنید.