اود الترحيب بابناء المنتدى
احببت اليوم ان نناقش فوائد اضافة الادوات والمكونات برمجيا
ا- سيعمل على تصغير حجم البريمج
من المعروف ان الدلفى يكتب عنك الاكواد البرمجية والخصائص للاداة عند اضافتها للفورم
يكتب كل شئ الذى هو default الى ان تقم انت بتغيير القيم
يمكن يكون للعنصر الواحد عشرين خاصية فيكتبها .... ولكن انت بواسطة اكواد البرمجة تكتب سبع خواص مثلا ... لان هذه التى ستغير قيمها فقط
بذلك تستغنى عن 13 خاصية تضاف اتوماتك عند ظهور المكون على الفورم وقت التشغيل ولكن بدون حفظها فى البريمج
فيصغر حجم البريمج جدا
2- سيعمل على سرعة تنفيذ اكواد البريمج
3- وهذا الاهم هناك ادوات active X cnrols بتكون غير مجانية ولا تستطيع انت ان تستخدمها لانها اولا بتعمل error عند اضافتها للفورم وهو ole error تستطيع اضافتها برمجيا وتستفيد منها بدون اى مشاكل التسجيل وخلافه
تحياتى
اهلا بك
طبعا هذا الكلام ينطبق على مشروع به ادوات كثير ة جدا
فتستطيع ان تعمل procedure مشترك بين الادوات وتمرر له باراميرات من توب وليفت الخ
الخواص المشتركة بين الادوات وان تمرر له بسطر
تخيل حجم المشروع قبل هذه البرمجة وبعدها
اهم شئ عجبى ف الدلفى انه بيعمل وحدة لل Active X Controls
تستطيع ان تعدل فيه كما تشاء
تصور vsflexgrid7l مكون غير مجاني كانه مفتوح امامي مصادره استطيع اعدل فيه براحتى
وبالطبع لولا الاضافة للمكون برمجيا كنت لا استطيع الاستفادة من هذه التعديلات
تحياتي
vb_manager كتب :اود الترحيب بابناء المنتدى
احببت اليوم ان نناقش فوائد اضافة الادوات والمكونات برمجيا
و عليكم السلام .. شكرا على طرحك للموضوع

لدي مداخلات على السريع
إقتباس :ا- سيعمل على تصغير حجم البريمج
[COLOR="red"]ليس بالضرورة لأن دلفي يقوم بعمل كومبايلر للكلاس كله الخاص بالأداة ودمجه مع المشروع

[/COLOR]
إقتباس :بذلك تستغنى عن 13 خاصية تضاف اتوماتك عند ظهور المكون على الفورم وقت التشغيل ولكن بدون حفظها فى البريمج
فيصغر حجم البريمج جدا
2- سيعمل على سرعة تنفيذ اكواد البريمج
لنفرض أني أضفت Button جديد للفورم بدون تغيير أي قيمة .
هذا الكود الذي يقوم دلفي بتوليده
PHP كود :
object Button1: TButton
Left = 192
Top = 112
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
end
لاحظ ان هذه أغلب الخصائص سنستخدمها عند اضافة الكونترول برمجيا + الخاصية Parent .
ماعدا بعض الخصائص التي يمكن الاستغناء عنها , مثل الخاصية TabOrder أو الخاصية Style ..
لكن في الحقيقة فقد تم اسناد هذه الخصائص الى القيم الافتراضية في ال constructor ِcreate الخاص بالأداة
PHP كود :
constructor TCustomButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := [csSetCaption, csDoubleClicks];
Width := 75;
Height := 25;
BlaBla...
FStyle := bsPushButton;
FStylusHotImageIndex := -1;
end;
[COLOR="Red"]لذلك عامل السرعة لا يتعلق باضافة الأدوات برمجيا.
[/COLOR]
إقتباس :3- وهذا الاهم هناك ادوات active X cnrols بتكون غير مجانية ولا تستطيع انت ان تستخدمها لانها اولا بتعمل error عند اضافتها للفورم وهو ole error تستطيع اضافتها برمجيا وتستفيد منها بدون اى مشاكل التسجيل وخلافه
تحياتى
كلام صحيح , أغلب أدوات active X ستعمل أحسن ان تم اضافتها برمجيا .
ماعدا ادوات ال vcl فستعمل بنفس الطريقة , لقد قمت بتصدير أداة ColorGrid الى ActiveX ثم استخدام هذه الأخيرة مع الدوت نت وكانت النتيجة مقبولة
[COLOR="Red"]أهم نقطة عند اضافة الأدوات برمجيا هي أنه لا يتم اضافة الأداة الى الرسورس .. بمعنى لا يمكن تغيير الادوات بالاستعانة ببرامج الرسورس
أغلب المبرمجين يستخدون الطريقة في نوافذ التسجيل الخاصة بالبرنامج تفاديا لأي تلاعب من قبل الكراك كحذف زر التسجيل أو تغيير Unregistered Label الى Registered وغيرها من الامور المتعلقة بالحماية ...
[/COLOR]
تحياتي ..

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