ما هو الفرق بين كل من الجمل التالية في عمل create للفورم
From1.create(Self)
Form1.CreateNew(Self)
Form1:= TForm1.Create(Self)
اقتباسولماذا عندما نستخدم الجملة الاولى و الثانية يظهر Excption ولا يعمل الكود
ما هو الفرق بين كل من الجمل التالية في عمل create للفورم
From1.create(Self)
Form1.CreateNew(Self)
Form1:= TForm1.Create(Self)
اقتباسولماذا عندما نستخدم الجملة الاولى و الثانية يظهر Excption ولا يعمل الكود
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
لان المنهج عبارة عن باني
شوف خيوه : عندما تستدعي منهجا لغرض معناها ان الغرض موجود ويحجز مكانا من الذاكرة .يعني واحد من اثنين
1.الغرض غير مخلوق بعد
وبما ان الغرض غير موجود (بدليل انك استدعيت الغرض create لبناءه ) فمن الطبيعي
ظهور الExcption لانك استدعيت منهج لغرض غير موجود وهو ما ينطبق على حالتك
2.الغرض مخلوق
بما ان الغرض موجود اساسا فلماذا نبنيه من جديد وبالتالي يحدث الخطا . كقاعدة عند استدعاء الباني نستدعيه باسم الصنف وليس
الغرض وهذا هو السبب لحدوث Excption
var Form1: TForm1; Form2:TForm1; Form2:=TForm1.CreateNew(self); او Form2:=TForm1.CreateNew(Application); او Form2:=TForm1.CreateNew(Form1);
اما عن الفرق CreateNew تستخدم عندما تريد ربط الفورم بملفات DFM الذي تريده وليس الملف الاقتراضي
في الحقيقة ان الباني Create يستدعي CraeteNew داخله ليربطه بالملف الافتراضي
اما ملفات DFM فهي الملفات التي تستخدم لحفظ البيانات الخاصة بالفورم
بالمناسبة لا يستحبذ إستخدام CreateNew
ادخل الى الهلب وابحث عن CreateNew من بين الاختيارت اختار TCustomForm
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
createnew تستعمل عادة عند تطوير مكونات Form انطلاقا من الإشتقاق عن طريق TCustomForm لانها غير ملحقة ب Delphi Form(DFM) الدي هو عبارة عن خصائص الفورم عند csDesinged
و لا يجب استعمال CreateNew مع TFORM أو احد مشتقاتها لأانهه لابد من انشاء الملف DFM
مثلا يجب أن :
;(WriteComponentResFile('File.dfm { or Xfm}' ,form1
Form2:=Tform.CreateNew(Application)
;(ReadComponentResFile('File.dfm { or Xfm}' ,form2
ادا كانت الفورم تحتوي على مكونات اخرى كأبناء يجب اضافة الإجراء
initInheritedComponent
هذا الموضوع مغلق.