نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 2
#1
السلام عليكم و رحمة الله و بركاته 
في هذا الجزء سنستمر في التعرف على طريقة دلفي في البرمجة ظمن لفظة الـ RAD

يمكنك الإطلاع على الجزء الأول هنا

File -> New -> Windows VCL Form Application - Delphi

الذي سنقوم بفعله سنظيف زر الى الفورم Button من لوحة المكونات أضف زر و نلاحظ ماذا يفعله دلفي 

ملف الوحدة pas

PHP كود :
type
  TForm1 
= class(TForm)
    Button1TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end
دلفي قام بتعريف Button1 مشتق من الصنف TButton 
ملف dfm

PHP كود :
object Form1TForm1
  Left 
0
  Top 
0
  Caption 
'Form1'
  ClientHeight 202
  ClientWidth 
447
  Color 
clBtnFace
  Font
.Charset DEFAULT_CHARSET
  Font
.Color clWindowText
  Font
.Height = -11
  Font
.Name 'Tahoma'
  Font.Style = []
  OldCreateOrder False
  PixelsPerInch 
96
  TextHeight 
13
  object Button1
TButton
    Left 
192
    Top 
112
    Width 
75
    Height 
25
    Caption 
'Button1'
    TabOrder 0
  end
end 
ملف الـ dfm دلفي قام بحفظ خصائص الـ Button كما قلنا سابقا ملف dfm يحتوي على خصائص جميع المكونات الموجودة على الفورم أي خاصية تغيرها سيتم حفظها في ملف الـ dfm
لنعد الى ملف الوحدة pas و نرى ماذا يوجد هناك
PHP كود :
  TForm1 = class(TForm)
    Button1TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end
اول ما تلاحظه private و public تذكرهم 
{ Private declarations } و  { Public declarations } عبارة عن تعليقات Comments يمكنك حذفهم 
private و public يحددان نطاق المتغيرات و الإجراءات لنسميها محددات الوصول لكن هناك محدد آخر لا يظهر و هو published لماذا لا يظهر دلفي يعتبره إفتراظي لذلك نقوم بكتابته للتتضح الصورة أكثر
لتصبح لدينا الوحدة كاتالي 
PHP كود :
type
  TForm1 
= class(TForm)
  published
    Button1
TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end
لدينا الآن ثلاثة محددات published و private و public
published و public لمهما نفس النطاق لماذا دلفي قام بإظافة الزر تحت published و ليس public اذا كان لهما نفس النطاق السبب أن published يوفر معلومات للـ Object Inspector عكس الـ Public
الذي إعتدت على فعله في دلفي تقوم بسحب زر من لوحة المكونات و تظغط عليه مرتين في الـ Design Mode و تكتب الكود ضمن جسم الإجراء الذي سنقوم بفعله لتوضيح الفرق بين public و published هو التالي لا تقم بالظغط على الزر كما اعتدت على فعله و انما قم بكتابة الـ procedure التالي يدويا ضمن المحدد published
PHP كود :
procedure DoClick(SenderTObject); 

سيصبح لدينا التالي
PHP كود :
type
  TForm1 
= class(TForm)
  published
    Button1
TButton;
    procedure DoClick(SenderTObject); 
حدد الزر في الـ Design Mode اذهب الى Object Inspector ثم Events ثم OnClick تصفح القائمة ستجد الـ procedure الذي كتبناه يدويا
[صورة مرفقة: attachment.php?aid=4009]
قم بنقل الـ procedure الى public 
PHP كود :
type
  TForm1 
= class(TForm)
  published
    Button1
TButton;
  private
    { Private declarations }
  public
    procedure DoClick(SenderTObject);
  end

حدد الزر في Design Mode اذهب الى Object Inspector ثم Events ثم OnClick تصفح القائمة لا يوجد شيئ
و السلام عليكم و رحمة الله و بركاته 


الملفات المرفقة
.png   1.png (الحجم : 24.49 KB / التحميلات : 48)
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
[-] كل من 4 users say قال شكرا ل S.FATEH على المشاركة المفيدة
  • B.M.AbdelAziZ, bassem_43, ELARAPY, أبو معاذ
الرد
#2
السلام عليكم
بارك الله فيك اخي فاتح
واصل دروسك القيمة
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
[-] كل من 1 user says قال شكرا ل bassem_43 على المشاركة المفيدة
  • S.FATEH
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف