استفاده از شيء فرم در توابع و زيربرنامه ها

استفاده از شيء فرم در توابع و زيربرنامه ها<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

همان طور که مي دانيد براي راحتتر شدن کد نويسي، از توابع و زير برنامه ها استفاده مي شود.

در VB وقتي در کد مربوط به يک فرم، يک تابع تعريف مي کرديد، از درون آن تابع مي توانستيد به فرم و اشياء آن دسترسي داشته باشيد.

مثال:

 

Public Sub SetCaption()

Caption = "This is a testion"

Text1.Text = "This is a new testion"

End Sub

 

Private Sub Command1_Click()

SetCaption

End Sub

همانطور که مي بينيد، در تابع SetCaption نيازي نيست که ما عبارت Form1 را ذکر کنيم. و وقتي مي گوئيم Caption = ... در واقع مثل اين است که بنويسيم Form1.Caption = ... . و همچنين Text1 که يک شيء وابسته به Form1 است.

 

اما اگر دقت کرده باشيد، در دلفي چنين چيزي نيست. يعني اگر شما يک procedure ياfunction در يونيت فرم خود تعريف کنيد، براي دسترسي به اشياء و خواصيت هاي فرم خود، بايد اسم فرم را ذکر کنيد. همان مثال در دلفي:

 

procedure SetCaption;

begin

Caption:='This is a testion';

Text1.Text:='This is a new testion';

end;

چنانچه کد زير را بنويسيد، برنامه ي شما به خطا برخواهد خورد.

براي رفع اين خطا 3 راه وجود دارد. يکي اين که اول تک تک اشياء کلمه ي Form1 را اضافه کنيم ( که البته راه حلي غير منطقي است ! )

در اين صورت کد ما به شکل زير در مي آيد:

 

procedure SetCaption;

begin

Form1.Caption:='This is a testion';

Form1.Text1.Text:='This is a new testion';

end;

يک روش راحت تر استفاده از حکم With است. بدين شکل:

 

procedure SetCaption;

begin

with Form1 do

begin

Caption:='This is a testion';

Text1.Text:='This is a new testion';

end;

end;

حکم with را حتما آشنايي داريد. بنابراين ديگر آن را توضيح نمي دهيم.

و اما راه حل سوم که بهترين راه حل است، استفاده از قسمتهاي public و ياprivate در فرم است. اگر به تعريف يک فرم نگاه کنيد، اين را مي بينيد:

 

type

  TForm1 = class(TForm)

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

در قسمتهاي public و private شما مي توانيد توابع و زيربرنامه هاي دلخواه خود را براي فرم مورد نظر تعريف کنيد. بدين صورت که ابتدا تعريف تابع همراه با پارامترهاي آن را نوشته و سپس در قسمت implementation، کد اصلي تابع را مي نويسيد.

حال مثال قبلي را براي قسمتهاي publicو private مي زنيم:

 

  Public

      Procedure SetCaption;

 

در اينجا زيربرنامه ي

/ 0 نظر / 10 بازدید