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

من VB الى ++VC وأخيرا الى Delphi !

مغلق
بدأه الاحتراف في 15 نوفمبر 2004 · 4 رد · 4,629 مشاهدة · في أرشيف منتدى الدلفي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

في الفترة الأخيرة وبعد مضي ما يقارب الـ 8 سنوات من استخدامي للغة VB6 قررت ان انتقل للغة أكثر تطورا وقوة .. فقررت الانتقال والبدء بتعلم لغة VC++ 6 وقطعت فيها شوطاً لا بأس به ، ولكني وجدتها معقدة كثيرا كثيرا في امور ارى انها يجب ان تكون ابسط بكثير .. مثال على ذلك .. برنامج لرسم خطوط واشكال على الفورم أو التعامل مع الفورم والادوات .. ، مثل هذه البرنامج لا يستغرق تصميمها من خلال الفيجوال بيسك أكثر من 10 دقائق بينما وحسب المثال الموجود في كتاب Learn VC 6 in 21 Days احتاج الى وقت أطول .. اعتقادي ان هذه الامور يجب ان تكون ابسط من ذلك ، أما بخصوص التعامل مع الذاكرة والمؤشرات وغيرها فهذه الامور لا بأس من التعقيد فيها :) ...

لذا قررت الانتقال الى Delphi فهي قوية ( حسب ما اسمع ) كما أنها لا تحتاج الى ملفات تشغيلية إذ يكفي ملف exe ليعمل البرنامج .

اسئلتي هي :

1. في حالة استخدامي لأداة خارجية في برنامجي ، هل سيتم ادراج هذه الاداة في الملف التنفيذي أم أنني بحاجة لارفاق ملف OCX مع الملف التنفيذي ؟؟

2. هل تدعم الدلفي MultiThreading ؟؟

3. من خلال خبرتكم وتجربتكم ما هو أفضل كتاب أبدء به واتعرف به على اللغة مع العلم ان أساسيات اللغة ليست غريبة عليّ لأنني كنت ابرمج باستخدام Turbo Pascal ؟؟

شكرا

#2
اقتباس
. في حالة استخدامي لأداة خارجية في برنامجي ، هل سيتم ادراج هذه الاداة في الملف التنفيذي أم أنني بحاجة لارفاق ملف OCX مع الملف التنفيذي

لا .. لن تحتاج لنقل أي شيء مع الملف التنفيذي . كما أنك لن تحتاج ملفات Run_Time .

إستفاضة أكثر :

تدعم دلفي عدة أنواع من الأدوات

1- أدوات مكتبة VCL (Visual Component Librarry) وهي الأدوات القياسية , تستخدم في كل من Delphi و C++ Builder .

2- مكتبة VCL.NET , نفسها لكن مخصصة للتعامل مع منصة دوت نيت من خلال نسخ دلفي دوت نيت (8 و 2005)

3- مكتبة أدوات .NET القياسية ,

4- مكتبة أدوات CLX لدعم المنصات المتعددة (Cross_Platforms) (دعم نظام تشغيل لينكس بإستخدام Kylix )

5- أدوات Active X . (ملفات ocx )

والحالة الأخيرة هي دعم للتوافق مع أدوات MS_Visual Stydio . وإذا إستخدمت ActiveX يجب أن تقوم بنقلة مع برنامجك (كأنك تتعامل مع لغات MS_V studio تماما . وربما تظهر أمامك بعض المتاعب في نقل بعض الأدوات لإن مايكروسوفت قد لاتتيح تسجيل أدواتها من أجل شركات ثانية , بورلاند مثلا . ) لذلك أنصحك بالإقتصاد في إستخدام هذا النوع .. صدقني نوذج مكونات دلفي القياسي أفضل بكثير منه , رغم أنف مايكروسوفت . والعيب الوحيد الذي قد تخسرة . أنه يوجد كمية كبيرة من الأدوات OCX الموجودة في مكتبه أدواتك منذ تعاملك مع Visual Studio , لكنك ستجد بدائل لها كلها بإذن الله على الإنترنت .

ومن أجلك سأضع هذة المعلومات عن الأدوات كنت قد أعدتها منذ فترة طويلة .:

البند الثالث :

المحمولية على صعيد نظام تشغيل واحد_أجهزة مختلفة :

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

1- مكتبات زمن تشغيل (Run Time) :

وهذا هو حال لغة Visual Basic ......

تحتاج بعض لغات البرمجة إرفاق مكتبات خاصة تعتمد عليها التطبيقات المبنية بواستطها , ولاتعمل هذة التطبيقات بدون توفر نسخة من هذة المكتبات على الجهاز .

وبالتالي سنضطر لتوفير نسخة من هذة المكتبات مع برنامجنا , لإننا لا نضمن أن المستخدم يملك نسخة من هذة المكتبات , وبالتالي زيادة بالحجم من جهة

ومن جهة أخرى , تنسخ هذة الملفات إلى مجلدات خاصة بالنظام , ولن نضمن ان يعرف المستخدم تنصيب البرنامج وأن يستطيع نسخ هذة الملفات إلى أماكنها الخاصة , وبالتالي لابد من توفير برامج التحزيم (برامج التنصيب Install Managers) لكي نقوم بإعداد نسخة Setup من برنامجنا . مما يعني القليل من الحجم الزائد أيضا .

كذلك الأمر دعنا نفرض أن المستخدم قام بإعادة تنصيب نظام التشغيل مرة أخرى , هذا يعني أن مكتبات زمن التشغيل المخزنة فية كلها محيت ويجب إعادة تنصيبها في النظام , ولن تعمل برامجنا من دونها حتى لوكانت منسوخة إلى سواقة أقراص مختلفة عن سواقة نظام التشغيل ؟؟؟؟

ببساطة عليك إعادة تنصيب البرنامج كلما حدثت مشكلة بالنظام أو كلما قمت بإعادة التنصيب

2- الأدوات التي إستخدمناها في برنامجنا .

في كثير من الأحيان نستخدم أدوات غير الأدوات القياسية المرفقة مع اللغة , مثلا ننزلها من الإنترنت أو نبنيها نحن لتسهيل البرمجة او من أحد الأصدقاء ,,

بعض اللغات مثلا VB التي تستخدم مكونات Active X (ملفات ذات إمتداد OCX ) , عندما نقوم بإستخدام أحد هذة المكونات في تطبيقنا , فإننا مجبرين على إرفاق ملف المكون (.ocx ) مع برنامجنا ونسخة أيضا إلى مكتبات نظام التشغيل ... ؟؟؟؟

وبالتالي كل العيوب التي تحدثنا عنها بالبند السابق من الحاجة لإعادة التنصيب .

ليت الأمر ينتهي هنا .. ستحتاج إلى تسجيل هذة الأدوات في النظام (الرجستري ) , والرجستري هو قاعدة بيانات تحوي كل توصيفات وإعدادات الجهاز , وكلما زاد حجم هذا البيانات كلما زاد بطء النظام الذي سيضطر للبحث في كمية اكبر من البيانات .

كما أنها أصبحت متاحة لجميع التطبيقات وفي حال نجح أحد ما بتسجيلها وإستخدامها , مبروك عندها يستطيع إستخدام هذة الأداة بحرية (يوجد متخصصين كسر حماية لهذة الملفات) دون إذن منك .

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

ربما يبدو كل ذلك عاديا , حتى أن VC++ تملك نفس المشاكل .

ولكن إذا قارنا ذلك بالغات التي تؤمن دعم ملفات Stand Alone Exe's , لوجدنا فارق كبير .

لاننسى أن المحمولية معيار مهم في تقييس لغات البرمجة .

لغة الدلفي الرائدة في مجال المحمولية تسمح لك ببناء تطبيقات Stand_Alone . دون الحاجة لإرفاق مكتبات زمن تشغيل , كما أتفقنا تطبيق دلفي يعتمد على نفسة قدر المستطاع .

على سبيل المثال إذا بنينا تطبيق بسيط في دلفي , لايحتاج لملفات موارد (صور أو ما شابة) عندها يكفي نسخ الملف التنفيذي(EXE) وحدة ولصقة في أي مكان على جهاز الزبون . تخيل الدرجة العالية من المحمولية ,

كما أن نموذج مكونات دلفي (خذ VCL مثلا ) يسمح بدمج الأدوات التي إستخدمناها وتضمينها مع النسخة التنفيذية دون الحاجة لنقلها مع برنامجنا وتنصيبها كما في الحاة الأولى .

إذا كنت تعد برنامج كبير يحوي العديد من ملفات الموارد , تستطيع نسخ ملفاتك كلها وتشغيلها من عند الزبون . ونادرا ماتحتاج لإعادة تنصيب برنامجك عند إعادة تنصيب نظام التشغيل ,

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

تم تعديل هذه المشاركة بواسطة ORWA في 16 نوفمبر 2004 في 02:19

#3
اقتباس
2. هل تدعم الدلفي MultiThreading ؟؟

نعم . تدعم دلفي MultiThreading بشكل كامل

راجع كتاب Delphi_Threads الذي يتحدث عن ذلك من مكتبة الكتب

أو أي من الكتب المشهورة التي عادة ماتفرد جزء للحديث عن هذة التقنية .

وللإخوة الذين لايعرفون ماهو MultiThreading , هذا شرح بسيط عنة :

دعم المجاري المتعددة Multi Threading :

نقصد بذلك إمكانية إنشاء مجرى معالجة جديد منفصل عن مجرى جسم البرنامج الأساسي , مما ينتج سرعة إضافية نتيجة العمل المتزامن لإكثر من بلوك برمجي . والأهم من ذلك يتم تنفيذ المجرى الجديد بغض النظر عن توقفات المجرى القديم , فإذا كان تطبيقنا يعمل على مجرى واحد وحدثت حالة عدم إستجابة بسبب إنتظار رد من طرفية ما فإن برنامجنا كلة سيتوقف عن الإستجابة , حتى الواجهة الرسومية ستتأثر بذلك وسنحصل على حالة تجمد (Freez) في البرنامج . تقنية المجاري المتعددة تعالج ذلك , فإذا قمنا بفصل إجراء قراءة الطرفية بمجرى مستقل فإن توقف إستجابه هذا المجرى لن يؤثر على مجرى البرنامج الرئيسي بنفس الأثر , وسيصبح الأمر مشابها لحالة برنامج آخر على سطح المكتب قد توقف عن الإستجابة ولكني لازلت أستطيع الوصول إلى بقية البرامج ولو حدث بعض البطىء الإضافي الناجم عن إسـتـنـزاف طاقة المعالج .

تعتبر هذة الميزة من مزايا اللغات القوية , وتدعمها الكثير من اللغات مثل C و Delphi و C# و Java

(يمكنها تحديد أولوية المجاري برمجيا ).

اقتباس
من خلال خبرتكم وتجربتكم ما هو أفضل كتاب أبدء به واتعرف به على اللغة مع العلم ان أساسيات اللغة ليست غريبة عليّ لأنني كنت ابرمج باستخدام Turbo Pascal ؟؟

اللغة دلفي بشكل عام لغة ممتعة جدا ... (ليست سهلة مثل VB لكنها ممتعة أكثر منها ) .

أنصحك أن تكثر من البحث في الهلب Help الخاص باللغة . وأي تعليمة أو مكون لم تعرف ماهو عملة أو تريد التوسع فيه . حددة أولا ثم إضفط الزر F1 , وسيفتح شرك المكون أو الإجراء من الهلب .

يوجد العديد من الكتب الجيدة في مكتبة المنتدى (راجع المشاركة المثبتة ) وأنصح منها بكتب مثل Delphi Developers Guide . و Mastring Delphi . هذة الكتب ليست تعليمية بمعنى أنها ليست ذات أسلوب سهل . كلا , ولكنها غنية بالمعلومات التي تحضر إجابات لمعظم أسئلتك .

أما في البداية بإمكانك التعامل مع بعض الكتب العربية البسيطة التي تسهل لك الطريق (مع أنها لاتحوي الكثير من المعلومات ومعظمها مترجم عن كتب أجنبية )

#4

شكرا لك أخي على اجابتك المفيدة ..

صراحة أنا قمت بتحميل Delphi 7 وقمت بتنصيبه على جهازي ووجدت ان المبادئ الرئيسية من ناحية التعامل مع الفورم والادوات والخصائص مشابهة كثيراً .. وهي ممتعة ايضاً وتستثمر الوقت ..

لم أجد أي كتاب عربي يتحدث عن لغة الدلفي ؟؟ هل يوجد ؟

قمت بتحميل كتاب Delphi Language Guide كبداية وان شاء الله سنتقدم رويدا رويداً ..

الامر الصعب قليلاً هو انه بعد ان كنت متقناً للغة وتستطيع عمل برامج بسرعة كبيرة .. تنتقل الى لغة لتبدأ فيها من جديد .. ولكن ان شاء الله سأتجاوز هذه العقبة ..

شكراً لك أخي مرة أخرى

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

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