סייר Windows זה מה שאתה משתמש במערכת ההפעלה Windows כדי לחפש קבצים ותיקיות. אתה יכול ליצור מבנה דומה עם דלפי כך שאותו תוכן מאוכלס בממשק המשתמש של התוכנית שלך.
בדלפי משתמשים בתיבות דו-שיח נפוצות פתח ושמור קובץ ביישום. אם אתה רוצה להשתמש במנהלי קבצים בהתאמה אישית ובדיאלוג גלישה בספריות, אתה צריך להתמודד עם רכיבי Delphi של מערכת הקבצים.
קבוצת הצבעים VIN 3.1 VCL כוללת מספר רכיבים המאפשרים לך לבנות תיבת דו-שיח "קובץ פתוח" או "שמירת קבצים" משלך: TFileListBox, TDirectoryListBox, TDriveComboBox, ו TFilterComboBox.
ניווט קבצים
רכיבי מערכת הקבצים מאפשרים לנו לבחור כונן, לראות את מבנה הספריות ההיררכי של דיסק ולראות את שמות הקבצים בספריה נתונה. כל רכיבי מערכת הקבצים נועדו לעבוד יחד.
לדוגמה, הקוד שלך בודק מה המשתמש עשה, למשל, DriveComboBox ואז מעביר את המידע הזה ל- DirectoryListBox. לאחר מכן השינויים ב- DirectoryListBox מועברים ל- FileListBox בו המשתמש יכול לבחור את הקבצים הדרושים.
עיצוב טופס הדיאלוג
התחל חדש אפליקציית דלפי ובחר בכרטיסייה Win 3.1 של לוח רכיב. ואז בצע את הפעולות הבאות:
- הציב רכיב TFileListBox, TDirectoryListBox, TDriveComboBox ו- TFilterComboBox בטופס, ושמור על כל שמות ברירת המחדל שלהם
- הוסף TEdit אחד (בשם "FileNameEdit") ואחד תווית (קראו לזה "DirLabel").
- כלול מספר תוויות עם כותרות, כמו "שם קובץ", "מדריך", "רשימת קבצים מסוג" ו"כוננים ".
כדי להציג את הנתיב שנבחר כרגע כמחרוזת בכיתוב רכיבי DirLabel, הקצה את שם התווית לשמות DirectoryListBox נכס DirLabel.
אם ברצונך להציג את שם הקובץ שנבחר ב- EditBox (FileNameEdit), עליך להקצות את שם האובייקט עריכה (FileNameEdit) ל- FileListBox מאפיין FileEdit.
שורות קוד נוספות
כשיש לך את כל רכיבי מערכת הקבצים בטופס, עליך רק להגדיר את DirectoryListBox. כונן נכס ואת FileListBox. מאפיין ספרייה על מנת שהרכיבים יתקשרו ויציגו מה המשתמש רוצה לראות.
לדוגמה, כאשר המשתמש בוחר כונן חדש, דלפי מפעילה את ה- DriveComboBox OnChange מנהל אירועים. לגרום לזה להיראות כך:
הליך TForm1.DriveComboBox1 שנה (שולח: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
סוף;
קוד זה משנה את התצוגה בתצוגה DirectoryListBox על ידי הפעלת שלה בשינוי מנהל אירועים:
הליך TForm1.DirectoryListBox1 שנה (שולח: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
סוף;
כדי לראות באיזה קובץ המשתמש בחר, עליך להשתמש בקובץ OnDblClick אירוע של FileListBox:
נוהל TForm1.FileListBox1DblClick (שולח: TObject);
beginShowmessage ('נבחר:' + FileListBox1.FileName);
סוף;
זכור כי אמנת Windows היא להקיש על לחיצה כפולה על הקובץ ולא בלחיצה אחת. זה חשוב כשאתה עובד עם FileListBox מכיוון ששימוש במקש חץ כדי לעבור דרך FileListBox יתקשר לכל מטפל OnClick שכתבת.
סינון התצוגה
השתמש ב FilterComboBox כדי לשלוט בסוג הקבצים המוצגים ב- FileListBox. לאחר הגדרת המאפיין FileList של FilterComboBox לשם FileListBox, הגדר את מאפיין הסינון לסוגי הקבצים שברצונך להציג.
להלן פילטר לדוגמא:
FilterComboBox1.Filter: = 'כל הקבצים (*. *) | *. * | קבצי פרוייקט (* .dpr) | * .dpr | יחידות פסקל (* .pas) | * .pas ';
רמזים וטיפים
הגדרת DirectoryListBox. כונן נכס ואת FileListBox. ניתן לבצע מאפייני ספרייה (במטפלי האירועים שנכתבו בעבר OnChange) בזמן ריצה בזמן העיצוב. אתה יכול ליצור חיבור מסוג זה בזמן העיצוב על ידי הגדרת המאפיינים הבאים (ממפקח האובייקטים):
DriveComboBox1.DirList: = DirectoryListBox1
DirectoryListBox1.FileList: = FileListBox1
משתמשים יכולים לבחור מספר קבצים ב- FileListBox אם המאפיין MultiSelect שלו נכון. הקוד הבא מראה כיצד ליצור רשימה של בחירות מרובות ב- FileListBox ולהראות אותה ב- SimpleListBox (איזו בקרת ListBox "רגילה").
var k: מספר שלם; ...
עם FileListBox1 לעשות
אם SelCount> 0 אז
עבור k: = 0 לפריטים. ספירה 1 לעשות
אם נבחר [k] אז
SimpleListBox. פריטים. הוסף (פריטים [k]);
להצגת שמות נתיבים מלאים שלא מתקצרים עם אליפסה, אל תקצה שם של אובייקט Label למאפיין DirLabel של DirectoryListBox. במקום זאת, הכנס תווית לטופס וקבע את נכס הכיתוב שלה באירוע OnChange של DirectoryListBox ל- DirectoryListBox. נכס מדריך.