www.sma-soft.com

www.sma-soft.com

سایت جدیدم رو راه اندازی کردم.

البته فعلا مراحل ساخت رو طی می کنه و طراحیش هنوز تکمیل نیست.

از این به بعد مطالبم رو اونجا می نویسم.

در ضمن اگر دیدید لینک بعضی از برنامه های این وبلاگ خراب است، از سایت اصلی دانلود کنید.

 

www.sma-soft.com

 

 

  
نویسنده : محمد ; ساعت ۳:٤۳ ‎ق.ظ روز سه‌شنبه ٢٧ امرداد ،۱۳۸۳

هشدار!

هشدار!

 

جديدا در برخي از سايتها و وبلاگها، به اسم Smart-PS، ويروس و تروجان براي دانلود مي گذارند.

يادتون باشه که اين برنامه پولي است و از هيچ سايتي قابل دريافت نيست.

و اگر هم جايي اون رو براي دانلود ديديد، مطمئن باشيد که با دانلود کردنش خودتون هک مي شيد و پسوردتون براي صاحبان اون سايتها و وبلاگ ها ميره.

پس مواظب باشيد که چيزي به اسم Smart-PS از جايي دانلود نکنيد.

اگر هم قرار باشه اين برنامه براي دانلود گذاشته بشه، در همين سايت و وبلاگ گذاشته مي شه. يا در سايتي که من تاييدش کنم.

در ضمن براي خريد اين برنامه به لينک زير مراجعه کنيد:

همه چيز در اينجا توضيح داده شده است.

Buy Smart-PS

  
نویسنده : محمد ; ساعت ٦:۱٧ ‎ق.ظ روز سه‌شنبه ۱۳ امرداد ،۱۳۸۳

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

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

 

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

در 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;

 

در اينجا زيربرنامه ي SetCaption را تعريف کرده ايم. سپس در قسمت implementation چنين مي نويسيم:

Procedure TForm1.SetCaption;

Begin

Caption:='This is a testion';

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

End;

 

همانطور که مشاهده مي کنيد، در کد اصلي تابع، ذکر کردن اسم فرم ضروريست. چنانچه در اينجا کلمه ي TForm1 را حذف کنيم، برنامه با خطا مواجه خواهد شد.

 

حال اين سوال پيش مي آيد که تفاوت دو قسمت public و private در چيست؟

تفاوت آنها در اين است که توابعي که در قسمت public مي نويسيد، عمومي بوده و از ديگر يونيتهايي که از اين يونيت استفاده مي کنند (uses)، قابل صدا کردن مي باشد. ولي توابع و زيربرنامه هايي که در قسمت private مي نويسيد، فقط از دورن يونيت همان فرم قابل دسترسي مي باشد.

 

 

  
نویسنده : محمد ; ساعت ۳:۳٧ ‎ق.ظ روز دوشنبه ۱٢ امرداد ،۱۳۸۳