تست کامپوننت نصب نشده
شما می توانید رفتار یک کامپوننت را قبل از نصب در پالت کامپوننت ها در زمان اجرا تست کنید. این امر به ویژه برای اشکال زدایی (دیباگ کردن) کامپوننت تازه ایجاد شده ، مفید است. اما شما می توانید بدون در نظر گرفتن اینکه کامپوننت در پالت کامپوننت ها ظاهر شده است یا نه ، از این تکنیک برای تست هر کامپوننتی استفاده کنید.
در واقع ، درست مانند زمانی که یک کاربر ، کامپوننت را از پالت کامپوننت ها روی فرم قرار می دهد ، شما نیز می توانید یک کامپوننت نصب نشده را با تقلید از فعالیت های انجام شده تست کنید. برای اینکار مراحل زیر را دنبال کنید :
-
نام یونیت کامپوننت را به قسمت uses یونیت فرم اضافه کنید.
-
به نمایندگی از کامپوننت ، یک فیلد شیء به فرم اضافه کنید.
این یکی از اصلی ترین تفاوت های بین روش اجرایی شما و دلفی است. شما فیلد شیء را به قسمت public در انتهای اعلان type فرم اضافه می کنید. دلفی برای مدیریت آن ، فیلد شیء را بالای قسمت اعلان type فرم اضافه می کند.شما نباید هیچ وقت فیلد ها را در قسمت مدیریت شده دلفی واقع در بالای اعلان type فرم اضافه کنید. آیتم هایی که در آن قسمت اعلان می شوند مطابق با آیتم های موجود در فایل فرم (فایل های DFM) هستند.افزودن نام کامپوننت هایی که در فرم وجود ندارند به آن قسمت ، باعث نا معتبر شدن فایل فرم (DFM) خواهد شد.
-
یک رویداد OnCreate به فرم اضافه کنید . برای این کار می توانید روی قسمت خالی فرم دبل کلیک کنید تا دلفی آن را برای شما ایجاد کند.
-
کامپوننت را در رویداد OnCreate بسازید.
وقتی که سازنده کامپوننت را فراخوانی می کنید ، باید پارامتری را به عنوان مالک کامپوننت به آن پاس دهید(این مالک وقتی که لازم باشد مسئول از بین بردن کامپوننت خواهد بود). شما تقریباً همیشه برای مالک از عبارت Self استفاده می کنید.در این روش ، Self یک مرجع برای شیئی است که آن را در بر گرفته است. در این مورد ، در رویداد OnCreate فرم ، Self به فرم اشاره می کند.
-
خصوصیت Parent را به کامپوننت اختصاص دهید.
تنظیم خصوصیت Parent ، همیشه اولین چیزی است که پس از ساخت کامپوننت باید انجام شود. Parent کاموننتی است که به صورت بصری کامپوننت را در بر می گیرد، که در اغلب موارد همان فرم است ، اما ممکن است یک Group Box یا Panel باشد. معمولاً شما Parent را همان Self قرار می دهید که در اینجا همان فرم است. همیشه Parent را قبل از سایر خصوصیات مشخص کنید.
-
سایر تنظیمات کامپوننت را آنطور که مایلید انجام دهید.
فرض کنید شما می خواهید یک کامپوننت جدید از نوع TNewComponent را در یک یونیت به نام NewTest تست کنید. یک پروژه جدید ایجاد کرده و مراحل گفته شده را تا آخر دنبال کنید تا نتیجه به شکل زیر شود:
کد:
unit MyComponent;
interface
uses
System.SysUtils, System.Classes;
type
TNewComponent = class(TComponent)
private
{ Private declarations }
FParent: TComponent;
FLeft : Integer;
procedure SetLeft(val:Integer);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(Owner:TComponent); override;
destructor Destroy; override;
property Parent: TComponent read FParent write FParent;
property Left: Integer read FLeft write SetLeft;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('ایران دلفی', [TNewComponent]);
end;
constructor TNewComponent.Create(Owner:TComponent);
begin
inherited;
end;
destructor TNewComponent.Destroy;
begin
inherited;
end;
procedure TNewComponent.SetLeft(val: Integer);
begin
FLeft := val;
end;
end.
کد:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils,
System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, MyComponent;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
NewComponent1: TNewComponent;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
NewComponent1 := TNewComponent.Create(Self); { 4. Construct the component }
NewComponent1.Parent := Self; { 5. Set Parent property }
NewComponent1.Left := 12; {6. Set other properties...}
{ ...continue as needed }
end;
end.
پایان فصل اول
علاقه مندي ها (Bookmarks)