السلام عليكم و رحمة الله و بركاته
الذي سنفعله اننا سنقوم بإنشاء مشروع جديد و نلاحظ فقط ما يفعله دلفي
قم بانشاء مجلد سمه كما شئت
File -> New -> Windows VCL Application - Delphi
أول ما يظهر هو فورم فارغ نقوم بحفظ المشروع داخل المجلد الذي أنشئته سابقا عن طريق
File -> Save All
أولا سيطلب منا حفظ الوحدة إحفظها باسم Unit1.pas.
ثانيا سيطلب منا حفظ المشروع إحفظه باسم Project1.dproj في النسخ الأقدم ستكون اللاحقة dpr بدلا من dproj.
تصفحه الملفات الموجودة داخل المجلد الملفات تختلف حسب نسخة دلفي المنصبة لديك الذي يهمنا هي الملفات الرئيسية التالية و التي لا يمكن عمل Compile للمشروع بدونها
Project1.dpr اختصارا لـ Delphi Project لمشاهدة محتويات الملف
Project -> View Source
Unit1.pas ملف الكود للفورم الذي يظهر أمامك pas إختصارا للـ Pascal
و أخيرا ملف Unit1.dfm إختصارا لـ Delphi Form الملف يحتوي على خصائص المكونات الموجودة على الفورم للوصول إليه يمكنك الضغظ على alt + F12 عندما تكون في الوضع Design و للعودة كذلك alt + F12 أو كما في الصورة
محتويات الملف
لنبدأ بملف الـ Pas
دلفي كخواصه RAD قام بتعريف Class جديد تحت الإسم الإفتراضي TForm1 مورث من TForm أولا الحرف T ليست ضرورية و لكنها أسلوب متعارف عليه بين جميع مبرمجي دلفي حيث يتم تسبيق الـ Type بحرف T لتفريق بينه و بين الأغراض Objetcs
دلفي قام بتعريف متغير عام Global Variable تحت الإسم Form1 من النمط TForm1 كما تعلم في الدلفي الأغراظ لا يمكن إستخدامها الى في حالة حجز ذاكرة لها عن طريق إستدعاء الباني Create أين يقوم دلفي بذلك سنعلم بعد حين
ملاحظة هذا ليس تعليق Comments و انما هو توجيه للـ Compiler يقول له أن يظمن ملف dfm حيث رمز الإفتتاج هنا هو {$ و ليس { اذن ربطنا ملف الـ dfm مع ملف pas
نذهب الآن لملف dpr لنلاحظ ماذا يفعله دلفي و قد قلنا كيف نطع عليه
السطر التالي
دلفي يحدد مكان تواجد الـ Unit بما انها موجود مع ملف dpr يذكر فقط اسمها في حالة كانت موجود داخل مجلد اخر يتم تحديد المسار
توجيه للـ Compiler لتضمين ملفات الـ Resources
أهم سطر هو التالي
دلفي يقوم بإنشاء الغرض Form1 و حجز الذاكرة له عن طريق إستدعاء CreateForm تذكر جيدا أن دلفي قام من قبل بتعريف المتغير Form1 و قام بتعريف النمط TForm1 في دلفي الطريقة الكلاسيكية لدلفي هي تعريف النمط تعريف الغرض حجز الذاكرة للغرض ثم تحرير الغرض من الذاكرة عند الإنتهاء منه
CreateForm تقوم بحجز الذاكرة للغرض و تقوم بدور آخر هنا مهم جدا و هو تحديد الفورم الرئيسي للبرنامج في حالة كان لدينا العديد من الفورمات الفورم الرئيسي للبرنامج هو أول فورم نقوم بإنشاء عن طريق Application.CreateForm
السلام عليكم و رحمة الله و بركاته
يمكنك الإطلاع على الجزء الأول هنا
File -> New -> Windows VCL Form Application - Delphi
الذي سنقوم بفعله سنظيف زر الى الفورم Button من لوحة المكونات أضف زر و نلاحظ ماذا يفعله دلفي
ملف الوحدة pas
دلفي قام بتعريف Button1 مشتق من الصنف TButton
ملف dfm
ملف الـ dfm دلفي قام بحفظ خصائص الـ Button كما قلنا سابقا ملف dfm يحتوي على خصائص جميع المكونات الموجودة على الفورم أي خاصية تغيرها سيتم حفظها في ملف الـ dfm
لنعد الى ملف الوحدة pas و نرى ماذا يوجد هناك
اول ما تلاحظه private و public تذكرهم
{ Private declarations } و { Public declarations } عبارة عن تعليقات Comments يمكنك حذفهم
private و public يحددان نطاق المتغيرات و الإجراءات لنسميها محددات الوصول لكن هناك محدد آخر لا يظهر و هو published لماذا لا يظهر دلفي يعتبره إفتراظي لذلك نقوم بكتابته للتتضح الصورة أكثر
لتصبح لدينا الوحدة كاتالي
لدينا الآن ثلاثة محددات published و private و public
published و public لمهما نفس النطاق لماذا دلفي قام بإظافة الزر تحت published و ليس public اذا كان لهما نفس النطاق السبب أن published يوفر معلومات للـ Object Inspector عكس الـ Public
الذي إعتدت على فعله في دلفي تقوم بسحب زر من لوحة المكونات و تظغط عليه مرتين في الـ Design Mode و تكتب الكود ضمن جسم الإجراء الذي سنقوم بفعله لتوضيح الفرق بين public و published هو التالي لا تقم بالظغط على الزر كما اعتدت على فعله و انما قم بكتابة الـ procedure التالي يدويا ضمن المحدد published
سيصبح لدينا التالي
حدد الزر في الـ Design Mode اذهب الى Object Inspector ثم Events ثم OnClick تصفح القائمة ستجد الـ procedure الذي كتبناه يدويا
و السلام عليكم و رحمة الله و بركاته
للامانة الفكرية تم نقل الموضوع من منتدى دلفي للعرب
لماذا يطلق على دلفي لفظة RAD - Rapid Application Development
الذي سنفعله اننا سنقوم بإنشاء مشروع جديد و نلاحظ فقط ما يفعله دلفي
قم بانشاء مجلد سمه كما شئت
File -> New -> Windows VCL Application - Delphi
أول ما يظهر هو فورم فارغ نقوم بحفظ المشروع داخل المجلد الذي أنشئته سابقا عن طريق
File -> Save All
أولا سيطلب منا حفظ الوحدة إحفظها باسم Unit1.pas.
ثانيا سيطلب منا حفظ المشروع إحفظه باسم Project1.dproj في النسخ الأقدم ستكون اللاحقة dpr بدلا من dproj.
تصفحه الملفات الموجودة داخل المجلد الملفات تختلف حسب نسخة دلفي المنصبة لديك الذي يهمنا هي الملفات الرئيسية التالية و التي لا يمكن عمل Compile للمشروع بدونها
- Project1.dpr
- Unit1.pas
- Unit1.dfm
Project1.dpr اختصارا لـ Delphi Project لمشاهدة محتويات الملف
Project -> View Source
PHP كود :
program Project1;
uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Unit1.pas ملف الكود للفورم الذي يظهر أمامك pas إختصارا للـ Pascal
PHP كود :
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
و أخيرا ملف Unit1.dfm إختصارا لـ Delphi Form الملف يحتوي على خصائص المكونات الموجودة على الفورم للوصول إليه يمكنك الضغظ على alt + F12 عندما تكون في الوضع Design و للعودة كذلك alt + F12 أو كما في الصورة
محتويات الملف
PHP كود :
object Form1: TForm1
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
end
PHP كود :
TForm1 = class(TForm)
PHP كود :
var
Form1: TForm1;
PHP كود :
{$R *.dfm}
نذهب الآن لملف dpr لنلاحظ ماذا يفعله دلفي و قد قلنا كيف نطع عليه
PHP كود :
program Project1;
uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
السطر التالي
PHP كود :
Unit1 in 'Unit1.pas' {Form1};
PHP كود :
{$R *.res}
أهم سطر هو التالي
PHP كود :
Application.CreateForm(TForm1, Form1);
PHP كود :
var
Form1: TForm1;
begin
Form1 := TForm1.Create(nil);
try
finally
Form1.Free;
end;
end;
السلام عليكم و رحمة الله و بركاته
في هذا الجزء سنستمر في التعرف على طريقة دلفي في البرمجة ظمن لفظة الـ RAD
يمكنك الإطلاع على الجزء الأول هنا
File -> New -> Windows VCL Form Application - Delphi
الذي سنقوم بفعله سنظيف زر الى الفورم Button من لوحة المكونات أضف زر و نلاحظ ماذا يفعله دلفي
ملف الوحدة pas
PHP كود :
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
ملف dfm
PHP كود :
object Form1: TForm1
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
لنعد الى ملف الوحدة pas و نرى ماذا يوجد هناك
PHP كود :
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
{ Private declarations } و { Public declarations } عبارة عن تعليقات Comments يمكنك حذفهم
private و public يحددان نطاق المتغيرات و الإجراءات لنسميها محددات الوصول لكن هناك محدد آخر لا يظهر و هو published لماذا لا يظهر دلفي يعتبره إفتراظي لذلك نقوم بكتابته للتتضح الصورة أكثر
لتصبح لدينا الوحدة كاتالي
PHP كود :
type
TForm1 = class(TForm)
published
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
published و public لمهما نفس النطاق لماذا دلفي قام بإظافة الزر تحت published و ليس public اذا كان لهما نفس النطاق السبب أن published يوفر معلومات للـ Object Inspector عكس الـ Public
الذي إعتدت على فعله في دلفي تقوم بسحب زر من لوحة المكونات و تظغط عليه مرتين في الـ Design Mode و تكتب الكود ضمن جسم الإجراء الذي سنقوم بفعله لتوضيح الفرق بين public و published هو التالي لا تقم بالظغط على الزر كما اعتدت على فعله و انما قم بكتابة الـ procedure التالي يدويا ضمن المحدد published
PHP كود :
procedure DoClick(Sender: TObject);
سيصبح لدينا التالي
PHP كود :
type
TForm1 = class(TForm)
published
Button1: TButton;
procedure DoClick(Sender: TObject);
قم بنقل الـ procedure الى public
حدد الزر في Design Mode اذهب الى Object Inspector ثم Events ثم OnClick تصفح القائمة لا يوجد شيئ
PHP كود :
type
TForm1 = class(TForm)
published
Button1: TButton;
private
{ Private declarations }
public
procedure DoClick(Sender: TObject);
end;
حدد الزر في Design Mode اذهب الى Object Inspector ثم Events ثم OnClick تصفح القائمة لا يوجد شيئ
و السلام عليكم و رحمة الله و بركاته
للامانة الفكرية تم نقل الموضوع من منتدى دلفي للعرب