كيفية استخدام دلفي لبناء مستكشف ويندوز مخصص

click fraud protection

مستكشف Windows هو ما تستخدمه في نظام تشغيل Windows لتصفح الملفات والمجلدات. يمكنك إنشاء بنية مماثلة باستخدام دلفي بحيث يتم تعبئة نفس المحتوى داخل واجهة مستخدم البرنامج.

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

تتضمن مجموعة لوحة Win 3.1 VCL العديد من المكونات التي تسمح لك بإنشاء مربع حوار "فتح ملف" أو "حفظ ملف" مخصص: TFileListBox, TDirectoryListBox, TDriveComboBoxو TFilterComboBox.

التنقل في الملفات

تسمح لنا مكونات نظام الملفات بتحديد محرك الأقراص ، والاطلاع على هيكل الدليل الهرمي للقرص ، ورؤية أسماء الملفات في دليل معين. تم تصميم جميع مكونات نظام الملفات للعمل معًا.

على سبيل المثال ، يتحقق رمزك مما فعله المستخدم ، على سبيل المثال ، DriveComboBox ثم يمرر هذه المعلومات إلى DirectoryListBox. يتم بعد ذلك تمرير التغييرات في DirectoryListBox إلى FileListBox حيث يمكن للمستخدم تحديد الملف (الملفات) المطلوبة.

تصميم نموذج الحوار

البدء من جديد تطبيق دلفي وحدد علامة التبويب وين 3.1 من لوحة المكون. ثم قم بما يلي:

instagram viewer
  • ضع أحد مكونات TFileListBox و TDirectoryListBox و TDriveComboBox و TFilterComboBox في نموذج ، مع الاحتفاظ بجميع أسمائها الافتراضية
  • أضف TEdit واحد (يسمى "FileNameEdit") وواحد TLabel (يطلق عليه "DirLabel").
  • ضمّن بعض التصنيفات مع التسميات التوضيحية ، مثل "اسم الملف" و "الدليل" و "قائمة الملفات من النوع" و "محركات الأقراص".

لإظهار المسار المحدد حاليًا كسلسلة في شرح مكونات DirLabel ، قم بتعيين اسم التصنيف إلى DirectoryListBox's خاصية DirLabel.

إذا كنت ترغب في عرض اسم الملف المحدد في EditBox (FileNameEdit) ، يجب عليك تعيين اسم الكائن Edit (FileNameEdit) إلى FileListBox's خاصية FileEdit.

المزيد من خطوط التعليمات البرمجية

عندما يكون لديك جميع مكونات نظام الملفات في النموذج ، عليك فقط تعيين DirectoryListBox. خاصية Drive و FileListBox. خاصية الدليل من أجل توصيل المكونات وإظهار ما يريد المستخدم رؤيته.

على سبيل المثال ، عندما يختار المستخدم محرك أقراص جديد ، تقوم دلفي بتنشيط DriveComboBox OnChange معالج الحدث. اجعلها تبدو كما يلي:

 الإجراء TForm1.DriveComboBox1Change (المرسل: TObject) ؛
startDirectoryListBox1.Drive: = DriveComboBox1.Drive؛
النهاية؛

يغير هذا الرمز العرض في ListListBox عن طريق تفعيل على التغيير معالج الحدث:

 الإجراء TForm1.DirectoryListBox1Change (المرسل: TObject) ؛
startFileListBox1.Directory: = DirectoryListBox1.Directory؛
النهاية؛

لمعرفة الملف الذي حدده المستخدم ، تحتاج إلى استخدام OnDblClick حدث FileListBox:

 الإجراء TForm1.FileListBox1DblClick (المرسل: TObject) ؛
startShowmessage ('Selected:' + FileListBox1.FileName) ؛
النهاية؛

تذكر أن اصطلاح Windows هو النقر المزدوج على اختيار الملف ، وليس نقرة واحدة. هذا مهم عند العمل مع FileListBox لأن استخدام مفتاح سهم للتنقل عبر FileListBox سيستدعي أي معالج OnClick كتبته.

ترشيح الشاشة

استخدم FilterComboBox للتحكم في نوع الملفات التي يتم عرضها في FileListBox. بعد تعيين خاصية FileList الخاصة بـ FilterComboBox إلى اسم FileListBox ، قم بتعيين خاصية التصفية إلى أنواع الملفات التي تريد عرضها.

هنا مرشح عينة:

 FilterComboBox1.Filter: = 'All files (*. *) | *. * | ملفات المشروع (* .dpr) | * .dpr | وحدات باسكال (* .pas) | * .pas '؛

تلميحات ونصائح

تعيين DirectoryListBox. خاصية Drive و FileListBox. يمكن أيضًا إجراء خاصية الدليل (في معالجات أحداث OnChange المكتوبة مسبقًا) في وقت التشغيل في وقت التصميم. يمكنك تحقيق هذا النوع من الاتصال في وقت التصميم عن طريق تعيين الخصائص التالية (من Object Inspector):

DriveComboBox1.DirList: = DirectoryListBox1
DirectoryListBox1.FileList: = FileListBox1

يمكن للمستخدمين تحديد ملفات متعددة في FileListBox إذا كانت الخاصية MultiSelect الخاصة به هي True. يوضح الكود التالي كيفية إنشاء قائمة من التحديدات المتعددة في FileListBox وإظهارها في SimpleListBox (بعض عناصر التحكم ListBox "العادية").

 var k: عدد صحيح ؛ ...
مع FileListBox1
إذا كان SelCount> 0 إذن
بالنسبة إلى k: = 0 إلى العناصر. العد -1 تفعل
إذا تم تحديد [ك] ثم
SimpleListBox. العناصر. إضافة (عناصر [ك]) ؛

لعرض أسماء المسار الكامل التي لم يتم اختصارها باستخدام علامة الحذف ، لا تقم بتعيين اسم كائن تسمية لخاصية DirLabel في DirectoryListBox. بدلاً من ذلك ، قم بإدراج تسمية في نموذج وقم بتعيين خاصية التسمية التوضيحية الخاصة به في حدث OnChange الخاص بـ DirectoryListBox إلى DirectoryListBox. خاصية الدليل.

instagram story viewer