لأن دلفي تتبنى نهجًا موجهًا للكائنات بالكامل، وأسرع مترجم في العالم اليوم، وتكنولوجيا قواعد البيانات الرائدة، وخاصة توافقها الكامل مع Windows API، وإمكانات التوليد التلقائي للتعليمات البرمجية الممتازة... لقد رأى الناس ذلك في وقت قصير فقط في السنوات القليلة الماضية، برزت دلفي بين العديد من أدوات التطوير! إن الصفات الممتازة العديدة لدلفي هي التي تمكن المبرمجين من تطوير برامج تطبيقية على المستوى الاحترافي في فترة زمنية قصيرة، بينما يقومون بعمل قليل جدًا!
كما يقول المثل، دعونا نجعل الأفضل! كيف يمكننا الاستفادة الكاملة من مزايا دلفي لتصميم البرامج بسرعة أكبر؟
1. الاستفادة الكاملة من مشاركة التعليمات البرمجية الكاملة (Jubang):
الغرض من ذلك ليس فقط أن تكون "كسولًا"، بل هو أيضًا وسيلة لتحسين كود البرنامج. بالطبع، أول شيء يجب مراعاته هو ما إذا كان من الممكن مشاركته (هذا بسيط جدًا، لمعرفة ما إذا كان مدرجًا في المجموعة المنسدلة للحدث)، والشيء الثاني الذي يجب الانتباه إليه هو ما إذا كان سيكون هناك " مشكلة" بعد المشاركة، لأن الصحة هي الخطوة الأولى. من الضروري متابعة التحسين فقط عندما يتم ضمان صحته!
على سبيل المثال: نعطي رسالة تأكيد قبل أن يقوم المستخدم بحذف البيانات:
PROcedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
يبدأ
// تأكيد سجل الحذف
إذا كان messageBox(handle,'هل أنت متأكد من أنك تريد حذف السجل الحالي؟','Confirm',MB_IconQuestion+MB_YesNo)=IDNO إذن
إحباط؛
نهاية؛
بعد ذلك، طالما أنك ترغب في السماح للمستخدم بالتأكيد قبل حذف سجل البيانات، يمكنك مشاركة هذا الرمز بالكامل في حدث TDataSet.BeforeDelete (BeforeDelete of Table2، BeforeDelete of Table3...). الحظ الجيد لا يحدث كل يوم، في بعض الأحيان لا يكون الأمر مباشرًا وبسيطًا.
كلمة "As" ليست مفيدة للغاية في اللغة الإنجليزية فحسب، بل أيضًا في لغة دلفي! يتم تفعيل ذلك عندما نرغب في مشاركة التعليمات البرمجية لعدة مكونات "متشابهة": نحتاج فقط إلى كتابة التعليمات البرمجية لواحد منها.
على سبيل المثال: إذا أردنا أن يتغير لون الخلفية لمجموعة من مربعات تحرير النص إلى اللون البني عندما تتلقى تركيز الإدخال، واستعادة لون النظام عندما تفقد التركيز، فيمكننا مشاركة الكود مثل هذا (دع أحداث كل منها مربع تحرير النص شارك الكود التالي):
الإجراء TForm1.Edit1Enter(Sender: TObject);
يبدأ
(المرسل كـ TEdit).color:=ClTeal; // احصل على تركيز الإدخال
نهاية؛
الإجراء TForm1.Edit1Exit(Sender: TObject);
يبدأ
(المرسل كـ TEdit).color:=ClWindow; // تركيز الإدخال المفقود
نهاية؛
يبدو المثال أعلاه محددًا بعض الشيء. ماذا لو كنت أولي اهتمامًا خاصًا لبعض المكونات فقط؟ مع الاستمرار في المثال أعلاه، على سبيل المثال، يوجد مربعان لإدخال النص يحتاجان إلى إدخال أرقام لجذب انتباه المستخدم، يتغير اللون إلى اللون الأزرق عند التركيز، لكنني ما زلت لا أرغب في كتابة التعليمات البرمجية. لكل مكون على حدة.
لحل هذه المشكلة، يمكنك استخدام سمة العلامة الخاصة بالمكون أولاً، قم بتعيين علامات غير صفرية وغير متساوية للمكونات المراد معالجتها خصيصًا (تجدر الإشارة إلى أن دلفي لن تتحقق مما إذا كانت قيم العلامات متساوية أم لا. ويجب عليك التحكم فيه بنفسك أثناء التصميم)؛ ثم قم بكتابة الكود كما يلي، ولا يزال بإمكانك المشاركة:
الإجراء TForm1.Edit1Enter(Sender: TObject);
يبدأ
الحالة (المرسل كـ TEdit).علامة
10,20:(Sender as TEdit).اللون:=clBlue //مربع نص لإدخال الأرقام
آخر
(المرسل كـ TEdit).Color:=clTeal; // مربعات نصية أخرى
نهاية؛
نهاية؛
(من المفترض أن تكون الملاحظات التالية ضمن شروط دلفي الافتراضية)
1. استخدم الكلمة الأساسية "الذات":
ربما يعتقد شخص ما أنني مخطئ! في الواقع، ما أريد أن أقدمه لكم هنا هو "خدعة" أخرى من "معاودة" المؤلف (بسبب ضعف ذاكرته). في بعض الأحيان، قد لا نتمكن من تذكر الاسم الدقيق للمكون في هذا الوقت، إذا عدت إلى النموذج لتأكيده مرة أخرى (يجب أن يكون معظم أصدقائي هكذا)، فسيكون ذلك أمرًا مؤسفًا بعض الشيء. إنه يوفر الوقت بشكل خاص إذا كنت تستخدم Self، لأن Self في دلفي تشير بوضوح إلى النموذج الذي يوجد به المكون. لذلك، يمكننا إدخال Self متبوعة بفاصلة لتنشيط كود دلفي عند الانتهاء، سيظهر لك النظام على الفور قائمة منسدلة تحتوي على جميع مكونات النموذج وخصائص النموذج نفسه، والتي يمكنك من خلالها تحديد المكونات المطلوبة. وبهذه الطريقة، يتم تجنب عبء العمل الناتج عن التبديل بين النماذج والجداول.
2. استخدم إكمال الكود (إكمال الكود):
لم يعد علينا أن نتذكر الكثير من تفاصيل المعلمات بسبب وظيفة ملء كود دلفي. قبل أن أشرح ذلك بالتفصيل، أريد أن أكون كثير الكلام. سوف تتعارض مفاتيح الاختصار الافتراضية الخاصة بإكمال كود دلفي مع بعض مفاتيح الاختصار التي استخدمناها (على سبيل المثال، Ctrl+Space تتعارض مع مفاتيح الاختصار للفتح والإغلاق). طريقة إدخال الأحرف الصينية). لذا يرجى حل هذه المشكلة أولاً.
بالطبع، عادةً ما يتم تنشيط إكمال التعليمات البرمجية تلقائيًا، لكن لا أعتقد أن كل شيء سيكون على ما يرام، وأعتقد أن دلفي يجب أن تتعلم من VB لهذه التقنية. على سبيل المثال: عند إدخال StrToint(edit1.، لن تعرض دلفي تلقائيًا خصائص التحرير1. في هذا الوقت، ستستخدم Ctrl+Space لتنشيط إكمال التعليمات البرمجية. خاصة عندما يكون التداخل عميقًا، تبدو دلفي مشوشة. .
3. استخدم معلمات الكود:
مفتاح اختصار التنشيط هو Ctrl+Shift+Space. يتم أيضًا تنفيذ هذه الوظيفة تلقائيًا بواسطة دلفي، كما ذكرنا أعلاه، عندما ننتقل للخلف وللأمام أو نحرك المؤشر، ستختفي هذه الوظيفة عندما نحتاج إلى تأكيد المعلمات المحددة للوظيفة، يمكننا فتحها باستخدام مفتاح الاختصار هذا. .
4. استخدم قوالب التعليمات البرمجية:
تعكس هذه التكنولوجيا مرة أخرى التكنولوجيا الرائعة لمهندسي فريق تطوير Inprise's Delphi وشخصيتهم الأخلاقية النبيلة المتمثلة في التفكير دائمًا في المستخدمين! (لا أريد أن أسمع عن تعرض شخص آخر للاحتيال بواسطة Microsoft)
مفتاح اختصار التنشيط هو Ctrl+J. آلية تنفيذ هذه الوظيفة مشابهة لآلية ملء التعليمات البرمجية، باستثناء أنها ليست تلقائية. بالطبع، الجانب الأكثر إثارة هو أنه يمكن للمستخدمين تحديد القوالب الخاصة بهم. على سبيل المثال، القالب المحدد من قبل المؤلف: الاختصار -> "msg" code -> "MessageboxMessageBox(
Handle,'|',',MB_Icon...+MB_...);"، بمجرد إدخال msg ثم الضغط على Ctrl+J، "يبرز" الرمز بأكمله ويحرك المؤشر إلى المكان الذي أضعه فيه. يجب إضافة المدخلات إنه رائع جدًا!
ملاحظة: إذا قمت بتعريف الكثير من القوالب الرائعة لنفسك ولا ترغب في التخلص منها، فيمكنك أيضًا عمل نسخة احتياطية من ملف Delphi32.dci في دليل Delphi4Bin والكتابة فوقه بهذا الملف بعد إعادة تثبيت دلفي.
لا ينبغي كتابة هذا الموضوع هنا، لكن لا يسعني إلا أن...
1. إذا كان بإمكانك استخدام مراقب الكائن لتعيينه مباشرة دون التأثير على التشغيل العادي للبرنامج، فلا داعي لكتابة التعليمات البرمجية:
بما أن هذا الموضوع واسع للغاية، إليك مثال واحد فقط: على سبيل المثال، تريد تنفيذ المطالبات التلقائية على شريط الحالة في دلفي 4 دون أن تكون "قاسية" للغاية.
شرط "تلميح"، لم نعد بحاجة إلى تحديد عملية (ShowMyHint(...)) كما كان من قبل، ومن ثم تهيئتها حيث البرنامج
قم بتعيين قيمتها لحدث OnHin الخاص بـ Tapplication. لأنه فقط قم بتعيين خاصية AutoHint لشريط الحالة على True! بالطبع، يبدو أنها تستطيع ذلك فقط
يتم عرضه على اللوحة الأولى (هذا عندما لا تكون هناك ظروف "قاسية" للغاية). بالطبع، ألومني لكوني كثير الكلام، فبعض الأصدقاء لا يعرفون تلميح دلفي
تتكون السمات من جزأين. وهذا ليس المكان المناسب للحديث. إذا كنت مهتمًا، فيرجى الانتقال إلى الصفحة الرئيسية الشخصية للمؤلف www.zg169.net/~delphiok (تم فتحها للتو).
تشانغ، ليس هناك أشياء كثيرة حتى الآن).
2. حفظ الكود:
إذا كان بإمكانك كتابة تعليمات برمجية أقل، فلن تكون هناك حاجة لكتابة المزيد من التعليمات البرمجية، وإذا كان بإمكانك تحسينها، فلن تكون هناك حاجة إلى أن تكون زائدة عن الحاجة:
على سبيل المثال، تنفذ الجزأتان التاليتان من التعليمات البرمجية نفس الوظيفة تمامًا. ما القطعة التي تفضل استخدامها؟
مقتطف الكود الأول:
إذا ToolButton1.Down = صحيح ثم
يبدأ
Dbgrid1.show;
DelBtn.Enabled:=true;
نهاية
آخر
يبدأ
Dbgrid1.Hide;
DelBtn.Enabled:=false;
نهاية؛
مقتطف الكود الثاني:
Dbgrid1.Visible:=ToolButton1.Down;
DelBtn.Enabled:=ToolButton1.Down;
لذلك، بعد الانتهاء من كتابة البرنامج، لا ينبغي لنا فقط متابعة تعديل البرنامج، ولكن أيضًا قلي كود البرنامج.
3. حفظ المتغيرات:
يقوم بعض المبرمجين بتعريف المتغيرات عندما لا تكون هناك حاجة إليها، ويحددون المتغيرات الزائدة عندما تكون هناك حاجة إلى متغيرات، وأنا شخصياً أعتقد أن هذا ليس جيدًا.
إن العادات، وخاصة عادة تحديد المتغيرات العالمية عند كل منعطف، هي أكثر إثارة للشكوك. قد يعتقد بعض القراء أنني بخيل في سرعات المعالج اليوم
ما هو العصر... لكنني سأعرض عليك ببساطة جزءًا من التعليمات البرمجية وسوف تفهم:
الإجراء TForm1.Button1Click(Sender: TObject);
فار s1,s2:سلسلة;
يبدأ
s1:=Inputbox('data','الرجاء إدخال اسم المستخدم',');
إذا كان s1<>' إذن
يبدأ
Btn_Name.Enabled:=True;
s2:=Inputbox('data','الرجاء إدخال عنوان المستخدم',');
إذا كان s2<>' إذن
Btn_Adress.Enabled:=True;
نهاية؛
نهاية؛