أثناء العمل مع مختلف تطبيقات ويندوز و دلفي، لقد اعتدنا على العمل مع أحد المعايير مربعات الحوار لفتح ملف وحفظه ، والعثور على نص واستبداله أو طباعته أو اختيار الخطوط أو ضبط الألوان.
في هذه المقالة ، سنبحث بعض أهم خصائص وأساليب تلك الحوارات مع التركيز بشكل خاص على افتح و حفظ مربعات الحوار.
تم العثور على مربعات الحوار الشائعة في علامة التبويب Dialogs من لوحة المكونات. تستفيد هذه المكونات من مربعات حوار Windows القياسية (الموجودة في DLL في الدليل \ Windows \ System). لاستخدام مربع حوار شائع ، نحتاج إلى وضع المكون (المكونات) المناسب في النموذج. مكونات مربع الحوار الشائعة غير مرئي (ليس لديك واجهة وقت تصميم مرئي) وبالتالي فهي غير مرئية للمستخدم في وقت التشغيل.
TOpenDialog و TSaveDialog
تحتوي مربعات الحوار "فتح ملف" و "حفظ الملف" على العديد من الخصائص الشائعة. يستخدم ملف Open بشكل عام لاختيار الملفات وفتحها. يتم استخدام مربع الحوار "حفظ الملف" (يستخدم أيضًا كمربع حوار "حفظ باسم") عند الحصول على اسم ملف من المستخدم لحفظ ملف. بعض الخصائص الهامة في TOpenDialog و TSaveDialog هي:
- ال خيارات خصائص مهمة جدا في تحديد الشكل النهائي والمظهر من مربع. على سبيل المثال ، سطر من التعليمات البرمجية مثل:
مع OpenDialog1 فعلخيارات: = خيارات + [ofAllowMultiSelect، ofFileMustExist]؛
سيبقي الخيارات مضبوطة بالفعل ويسمح للمستخدمين بتحديد أكثر من ملف واحد في مربع الحوار مع إنشاء رسالة خطأ إذا كان المستخدم يحاول تحديد ملف غير موجود. - ال InitialDir يتم استخدام الخاصية لتحديد الدليل الذي سيتم استخدامه كدليل أولي عند عرض مربع حوار الملف. ستؤكد التعليمات البرمجية التالية أن الدليل الأولي لمربع الحوار المفتوح هو دليل بدء تشغيل التطبيقات.
SaveDialog1.InitialDir: = ExtractFilePath (التطبيق. ExeName) ؛
- ال منقي تحتوي الخاصية على قائمة بأنواع الملفات التي يمكن للمستخدم الاختيار منها. عندما يختار المستخدم نوع ملف من القائمة ، يتم عرض الملفات من النوع المحدد فقط في مربع الحوار. يمكن بسهولة ضبط الفلتر في وقت التصميم من خلال مربع الحوار Filter Editor.
- لإنشاء أقنعة ملفات في رمز البرنامج ، قم بتعيين قيمة لخاصية التصفية التي تتكون من وصف وقناع مفصولة بحرف (خط أنابيب) عمودي. مثله:
OpenDialog1.Filter: = 'ملفات نصية (* .txt) | * .txt | كل الملفات (*. *) | *. * '؛
- ال اسم الملف خاصية. بمجرد قيام المستخدم بالنقر فوق الزر "موافق" في مربع الحوار ، ستحتوي هذه الخاصية على المسار الكامل واسم الملف الذي تم اختياره.
نفذ - اعدم
في الواقع لإنشاء وعرض مربع الحوار المشترك نحتاج إلى معالجة نفذ - اعدم طريقة مربع الحوار المحدد في وقت التشغيل. باستثناء TFindDialog و TReplaceDialog ، يتم عرض جميع مربعات الحوار بشكل مشروط.
تسمح لنا جميع مربعات الحوار الشائعة بتحديد ما إذا كان المستخدم ينقر فوق الزر إلغاء (أو يضغط ESC). ونظرًا لأن الأسلوب Execute يُرجع "صواب" إذا نقر المستخدم على الزر "موافق" ، يتعين علينا فخ نقرة على زر "إلغاء" للتأكد من عدم تنفيذ التعليمات البرمجية المقدمة.
إذا OpenDialog1.Execute ثم ShowMessage (OpenDialog1.FileName) ؛
يعرض هذا الرمز مربع الحوار "فتح ملف" ويعرض اسم ملف محدد بعد استدعاء "ناجح" لتنفيذ الطريقة (عندما يقوم المستخدم بالنقر فوق "فتح").
ملاحظة: يؤدي Execute إلى إرجاع True إذا نقر المستخدم على الزر OK ، أو نقرًا مزدوجًا فوق اسم ملف (في حالة مربعات حوار الملفات) ، أو ضغط على Enter على لوحة المفاتيح. تنفيذ الإرجاع خطأ إذا نقر المستخدم على زر "إلغاء" ، وضغط على مفتاح Esc ، وأغلق مربع الحوار باستخدام زر إغلاق النظام أو باستخدام تركيبة المفاتيح Alt-F4.
من الكود
للعمل مع مربع الحوار "فتح" (أو أي شيء آخر) في وقت التشغيل دون وضع مكون OpenDialog في النموذج ، يمكننا استخدام التعليمات البرمجية التالية:
إجراء TForm1.btnFromCodeClick (Sender: TObject)؛ فار OpenDlg: TOpenDialog؛ ابدأ OpenDlg: = TOpenDialog. خلق (الذات) ؛ {حدد الخيارات هنا ...}إذا OpenDlg. نفذ - اعدم ثمابدأ {كود للقيام بشيء هنا} النهاية; OpenDlg. مجانا؛ النهاية;
ملاحظة: قبل الاتصال Execute ، يمكننا (يجب) تعيين أي من خصائص مكون OpenDialog.
MyNotepad
أخيرًا ، لقد حان الوقت للقيام ببعض الترميز الحقيقي. الفكرة الكاملة وراء هذا المقال (وعدد قليل من المقالات الأخرى القادمة) هي إنشاء تطبيق MyNotepad بسيط - Windows مستقل مثل تطبيق Notepad.
في هذه المقالة ، يتم تقديم مربعات الحوار "فتح وحفظ" ، لذلك دعونا نراها في العمل.
خطوات إنشاء واجهة مستخدم MyNotepad:
. بدء Delphi وحدد تطبيق ملف جديد.
. ضع مذكرة واحدة ، OpenDialog ، SaveDialog اثنين من الأزرار على نموذج.
. إعادة تسمية Button1 إلى btnOpen ، Button2 إلى btnSave.
الترميز
1. استخدم Object Inspector لتعيين التعليمة البرمجية التالية إلى الحدث FormCreate:
إجراء TForm1.FormCreate (المرسل: TObject) ؛ ابدأمع OpenDialog1 فعلابدأ خيارات: = خيارات + [ofPathMustExist ، ofFileMustExist] ؛ InitialDir: = ExtractFilePath (التطبيق. ExeName) ؛ تصفية: = 'ملفات نصية (* .txt) | * .txt' ؛ النهاية; مع SaveDialog1 فعلابدأ InitialDir: = ExtractFilePath (التطبيق. ExeName) ؛ تصفية: = 'ملفات نصية (* .txt) | * .txt' ؛ النهاية; Memo1.ScrollBars: = ssBoth؛ النهاية؛
يعين هذا الرمز بعض خصائص مربع الحوار فتح كما تمت مناقشته في بداية المقالة.
2. أضف هذا الرمز لحدث Onclick لأزرار btnOpen و btnSave:
إجراء TForm1.btnOpenClick (Sender: TObject)؛ ابدأإذا OpenDialog1.Execute ثمابدأ Form1.Caption: = OpenDialog1.FileName؛ خطوط Memo1.Lines. تحميل من ملف. (OpenDialog1.FileName) ؛ Memo1.SelStart: = 0؛ النهاية; النهاية;
إجراء TForm1.btnSaveClick (المرسل: TObject) ؛ ابدأ SaveDialog1.FileName: = Form1.Caption؛ إذا SaveDialog1.Execute ثمابدأ خطوط Memo1.Lines. احفظ الملف. (SaveDialog1.FileName + '.txt') ؛ Form1.Caption: = SaveDialog1.FileName؛ النهاية; النهاية;
تشغيل المشروع الخاص بك. لا يمكنك تصديق ذلك ؛ يتم فتح الملفات وحفظها تمامًا مثل المفكرة "الحقيقية".
الكلمات الأخيرة
هذا هو. لدينا الآن لدينا "الصغير" المفكرة.