delphi4arab منتديات دلفي للعرب
نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13)
+--- الموضوع : نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 (/showthread.php?tid=10272)



نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - S.FATEH - 27-06-2019

السلام عليكم و رحمة الله و بركاته
لماذا يطلق على دلفي لفظة RAD - Rapid Application Development

الذي سنفعله اننا سنقوم بإنشاء مشروع جديد و نلاحظ فقط ما يفعله دلفي

قم بانشاء مجلد سمه كما شئت 

File -> New -> Windows VCL Application - Delphi

أول ما يظهر هو فورم فارغ نقوم بحفظ المشروع داخل المجلد الذي أنشئته سابقا عن طريق

File -> Save All 

أولا سيطلب منا حفظ الوحدة إحفظها باسم Unit1.pas.
ثانيا سيطلب منا حفظ المشروع إحفظه باسم Project1.dproj في النسخ الأقدم ستكون اللاحقة dpr بدلا من dproj.

تصفحه الملفات الموجودة داخل المجلد الملفات تختلف حسب نسخة دلفي المنصبة لديك الذي يهمنا هي الملفات الرئيسية التالية و التي لا يمكن عمل Compile للمشروع بدونها
  1. Project1.dpr
  2. Unit1.pas
  3. 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 أو كما في الصورة 
[صورة: attachment.php?aid=4007]
محتويات الملف 

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 
لنبدأ بملف الـ Pas 
PHP كود :
TForm1 = class(TForm) 
دلفي كخواصه RAD قام بتعريف Class جديد تحت الإسم الإفتراضي TForm1 مورث من TForm أولا الحرف T ليست ضرورية و لكنها أسلوب متعارف عليه بين جميع مبرمجي دلفي حيث يتم تسبيق الـ Type بحرف T لتفريق بينه و بين الأغراض Objetcs 

PHP كود :
var
  Form1: TForm1; 
دلفي قام بتعريف متغير عام Global Variable تحت الإسم Form1 من النمط TForm1 كما تعلم في الدلفي الأغراظ لا يمكن إستخدامها الى في حالة حجز ذاكرة لها عن طريق إستدعاء الباني Create أين يقوم دلفي بذلك سنعلم بعد حين
PHP كود :
{$R *.dfm} 
ملاحظة هذا ليس تعليق Comments  و انما هو توجيه للـ Compiler يقول له أن يظمن ملف dfm حيث رمز الإفتتاج هنا هو {$ و ليس { اذن ربطنا ملف الـ dfm مع ملف pas

نذهب الآن لملف 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}; 
دلفي يحدد مكان تواجد الـ Unit بما انها موجود مع ملف dpr يذكر فقط اسمها في حالة كانت موجود داخل مجلد اخر يتم تحديد المسار 
PHP كود :
{$R *.res} 
توجيه للـ Compiler لتضمين ملفات الـ Resources 
أهم سطر هو التالي 
PHP كود :
  Application.CreateForm(TForm1, Form1); 
دلفي يقوم بإنشاء الغرض Form1 و حجز الذاكرة له عن طريق إستدعاء CreateForm تذكر جيدا أن دلفي قام من قبل بتعريف المتغير Form1 و قام بتعريف النمط TForm1 في دلفي الطريقة الكلاسيكية لدلفي هي تعريف النمط تعريف الغرض حجز الذاكرة للغرض ثم تحرير الغرض من الذاكرة عند الإنتهاء منه 
PHP كود :
var
  Form1: TForm1;
begin
  Form1 
:= TForm1.Create(nil);
  try

  finally
    Form1.Free;
  end;
end; 
CreateForm تقوم بحجز الذاكرة للغرض و تقوم بدور آخر هنا مهم جدا و هو تحديد الفورم الرئيسي للبرنامج في حالة كان لدينا العديد من الفورمات الفورم الرئيسي للبرنامج هو أول فورم نقوم بإنشاء عن طريق Application.CreateForm
و السلام عليكم و رحمة الله و بركاته



RE: نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form - محمد عبد العزيز - 27-06-2019


السلام عليكم
بارك الله فيك اخي فاتح،
المنتدى بحاجة لمثل هذه المواضيع.



RE: نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - S.FATEH - 27-06-2019

السلام عليكم
و فيك بارك في حالة وجود تفاعل من طرف الأعضاء سأستمر ان شاء الله


RE: نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - أبو معاذ - 27-06-2019

(27-06-2019, 02:14 PM)S.FATEH كتب : السلام عليكم
و فيك بارك في حالة وجود تفاعل من طرف الأعضاء سأستمر ان  شاء الله

وعليكم السلام ورحمة الله وبركاته ،
بل استمر أخي فاتح ،
وبعد مدة شاهد عدد الذين استفادوا من مواضيعك ،
ستحمد الله على ذلك.
بيض الله وجهك.


RE: نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - لؤي - 01-07-2019

السلام عليكم

كما أورد الأخ أبو معاذ لا تنتظر تفاعل الأعضاء بل إستمر ولو مع عضو واحد فالعبرة بما تنشره وليس بالعدد لأن ممكن سيتفاعل معك الكثير ولا أحد فيهم فهم أو أستفاد مما نشرت و ممكن أن أحد واحد فقط أستفاد و عمل به وأفاد غيره فستعود عليك بالفائدة....


RE: نظرة حول لفظ RAD في الدلفي دورة حياة الـ Form الجزء 1 - S.FATEH - 01-07-2019

و عليكم السلام بارك الله فيكم ان شاء الله كلما تذكرت شيئ مفيد احاول نشره