الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Create Forms

مغلق
بدأه Wael Dalloul في 3 أغسطس 2005 · 2 رد · 653 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما هو الفرق بين كل من الجمل التالية في عمل create للفورم

From1.create(Self)

Form1.CreateNew(Self)

Form1:= TForm1.Create(Self)

اقتباس

ولماذا عندما نستخدم الجملة الاولى و الثانية يظهر Excption ولا يعمل الكود

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#2

لان المنهج عبارة عن باني

شوف خيوه : عندما تستدعي منهجا لغرض معناها ان الغرض موجود ويحجز مكانا من الذاكرة .يعني واحد من اثنين

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

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#3

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

هذا الموضوع مغلق.

مواضيع مشابهة