منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية إرسال قيم متغيرات بين الـForms في دلفي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله

في بعض الأحيان نحتاج إلى إرسال قيم بعض المتغيرات إلى فورم آخر، ثم العمل عليها هناك.

الأمر هذا ينطبق على كل من دلفي ولازاروس.


لنفرض أن الفورم الذي نريد إرسال المتغيرات إليه اسمه FCalculate، ووحدته اسمها FCalculateUnit.

نذهب إلى الفورم، لو كان معروضاً أمامنا نضغط الزر F12 ليظهر لنا الكود، والعكس الصحيح.

ننتقل إلى قسم التعريفات بالأعلى، وتحت Public نقوم بتعريف بعض المتغيرات:

كود :
 public
   Patient_ID:Integer;
   Test_ID:Integer;
   CBC_Counter:Integer;
   Test_Date:TDateTime;

نعود للفورم السابق، الذي نريد إرسال قيم البيانات منه، ونقوم باستخدام الوحدة الخاصة بالفورم FCalculate وهي FCalculateUnit بالطريقة التالية:

كود :
implementation
uses FCalculateUnit;

وفي المكان المناسب، نرسل قيم المتغيرات إلى الفورم FCalculate ثم نظهره:

كود :
           FCalculate.Patient_ID:=Patient_ID;
           FCalculate.Test_ID:=Test_ID;
           FCalculate.Test_Date:=CDate.Date;
           FCalculate.TTest_Name.Caption:=Test_Name;
           FCalculate.TTest_Result.Clear;
           FCalculate.TRemarks.Clear;
           FCalculate.CBC_Counter:=FMain.CBC_Counter;
           FCalculate.Insertion_Query.DataBase:= FMain.Conn;
           FCalculate.Trans.DataBase:= FMain.Conn;
           FCalculate.ShowModal;
إضافة بسيطة يمكن استخدام العبارة With لترتيب واختصار الكود
سمعت ان امبركاديرو كانت عازمة على الغاءها ولكن لازالت موجودة حتى أخر اصدارة

كود :
with FCalculate
          .Patient_ID:=Patient_ID;
          .Test_ID:=Test_ID;
          .Test_Date:=CDate.Date;
          .TTest_Name.Caption:=Test_Name;
          .TTest_Result.Clear;
          .TRemarks.Clear;
          .CBC_Counter:=FMain.CBC_Counter;
          .Insertion_Query.DataBase:= FMain.Conn;
          .Trans.DataBase:= FMain.Conn;
          .ShowModal;
end;