יצירת פנקס רשימות של דלפי: פתח ושמור

תוך כדי עבודה עם יישומי Windows שונים ו- דלפי, התרגלנו לפעול עם אחד מהתקנים תיבת דיאלוג לפתיחה ושמירה של קובץ, חיפוש והחלפה של טקסט, הדפסה, בחירת גופנים או הגדרת צבעים.

במאמר זה נבחן כמה מהמאפיינים והשיטות החשובים ביותר של אותם דיאלוגים עם דגש מיוחד פתוח ו להציל תיבת דיאלוג.

תיבות הדו-שיח הנפוצות נמצאות בכרטיסיית הדיאלוגים בלוח הרכיבים. רכיבים אלה מנצלים את תיבות הדו-שיח הרגילות של Windows (הממוקמות ב- DLL בספריית \ Windows \ System שלך). כדי להשתמש בתיבת דו-שיח משותפת, עלינו למקם את הרכיב המתאים (רכיבים) בטופס. רכיבי תיבת הדו-שיח הנפוצה הם לא חזותיים (אין להם ממשק זמן חזותי לעיצוב) ולכן אינם נראים למשתמש בזמן ההפעלה.

TOpenDialog ו- TSaveDialog

לתיבות הדו-שיח פתיחת קבצים ושמירת קבצים יש כמה מאפיינים משותפים. קובץ פתוח משמש בדרך כלל לבחירה ופתיחה של קבצים. תיבת הדו-שיח שמירת קבצים (המשמשת גם כתיבת הדו-שיח שמירה בשם) משמשת בקבלת שם קובץ מהמשתמש על מנת לשמור קובץ. כמה מהמאפיינים החשובים של TOpenDialog ו- TSaveDialog הם:

  • ה אפשרויות המאפיינים חשובים מאוד בקביעת המראה והתחושה הסופית של הקופסה. לדוגמה, שורת קוד כמו:
    instagram viewer
    עם OpenDialog1 לעשותאפשרויות: = אפשרויות + [שלAllowMultiSelect, ofFileMustExist];
    ישמור על אפשרויות שכבר הוגדרו ויאפשרו למשתמשים לבחור יותר מקובץ אחד בתיבת הדו-שיח יחד עם יצירת הודעת שגיאה אם ​​המשתמש מנסה לבחור קובץ שאינו קיים.
  • ה ראשוני המאפיין משמש לציון הספרייה שתשמש כספרייה הראשונית בעת הצגת תיבת הדו-שיח של הקובץ. הקוד הבא יבטיח כי הספרייה הראשונית של תיבת הדו-שיח הפתוחה היא ספריית ההפעלה של יישומים.
    SaveDialog1.InitialDir: = ExtractFilePath (יישום. ExeName);
  • ה סנן המאפיין מכיל רשימה של סוגי הקבצים מהם יכול המשתמש לבחור. כאשר המשתמש בוחר סוג קובץ מהרשימה, רק קבצים מהסוג שנבחר מוצגים בתיבת הדו-שיח. ניתן להגדיר את המסנן בקלות בזמן העיצוב דרך תיבת הדו-שיח של עורך הסינון.
  • ליצירת מסכות קבצים בקוד התוכנית, הקצה ערך למאפיין הסינון המורכב מתיאור ומסכה המופרדת על ידי תו סרגל אנכי (צינור). ככה:
    OpenDialog1.Filter: = קבצי טקסט (* .txt) | * .txt | כל הקבצים (*. *) | *. * ';
  • ה שם קובץ תכונה. ברגע שהמשתמש לוחץ על כפתור OK בתיבת דו-שיח, מאפיין זה יכיל את הנתיב ושם הקובץ המלא של הקובץ שנבחר.

לבצע

כדי ליצור ולהציג בפועל תיבת דו-שיח נפוצה עלינו לעבד את ה- לבצע שיטת תיבת הדו-שיח הספציפית בזמן ריצה. למעט TFindDialog ו- TReplaceDialog, כל תיבות הדו-שיח מוצגות באופן מודאלי.

כל תיבות הדו-שיח הנפוצות מאפשרות לנו לקבוע אם המשתמש לוחץ על כפתור הביטול (או לוחץ על ESC). מכיוון ששיטת ההפעלה מחזירה נכון אם המשתמש לחץ על כפתור OK, עלינו ללכוד לחיצה על כפתור ביטול כדי לוודא שהקוד הנתון לא מבוצע.

אם OpenDialog1.Execute לאחר מכן
ShowMessage (OpenDialog1.FileName);

קוד זה מציג את תיבת הדו-שיח File Open ומציג שם קובץ שנבחר לאחר קריאה "מוצלחת" לביצוע שיטה (כאשר המשתמש לוחץ על Open).

הערה: ביצוע מוחזר נכון אם המשתמש לחץ על לחצן אישור, לחץ פעמיים על שם קובץ (במקרה של דיאלוגי הקבצים) או לחץ על Enter במקלדת. ביצוע מחזיר שווא אם המשתמש לחץ על לחצן ביטול, לחץ על מקש Esc, סגר את תיבת הדו-שיח עם לחצן סגירת המערכת או עם שילוב המקשים Alt-F4.

מקוד

על מנת לעבוד עם דיאלוג פתוח (או כל סוג אחר) בזמן ריצה מבלי להציב רכיב OpenDialog בטופס, נוכל להשתמש בקוד הבא:

תהליך TForm1.btnFromCodeClick (שולח: TObject); var OpenDlg: TOpenDialog; התחל OpenDlg: = TOpenDialog. צור (עצמי); {קבע אפשרויות כאן ...}אם OpenDlg. לבצע לאחר מכןהתחל
{קוד לעשות משהו כאן}
סוף; OpenDlg. חינם; סוף;

הערה: לפני השיחה לביצוע, אנו יכולים (צריך) להגדיר את אחד מהמאפיינים של רכיב OpenDialog.

MyNotepad

לבסוף, הגיע הזמן לעשות קידוד אמיתי. כל הרעיון שעומד מאחורי מאמר זה (ומעטים אחרים שעומדים לבוא) הוא ליצור יישום פשוט MyNotepad - חלונות עצמאיים כמו יישום פנקס רשימות.
במאמר זה מוצגות בפנינו תיבות דו-שיח פתיחה ושמירה, אז בואו נראה אותן בפעולה.

שלבים ליצירת ממשק המשתמש של MyNotepad:
. הפעל את דלפי ובחר יישום חדש לקובץ.
. הניחו תזכיר אחד, OpenDialog, SaveDialog שני לחצנים על טופס.
. שנה שם של כפתור 1 ל btn פתח, כפתור 2 ל btnSave.

קידוד

1. השתמש במפקח האובייקטים כדי להקצות את הקוד הבא לאירוע FormCreate:

תהליך TForm1.FormCreate (שולח: TObject); התחלעם OpenDialog1 לעשותהתחל
אפשרויות: = אפשרויות + [שלPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (יישום. ExeName); פילטר: = 'קבצי טקסט (* .txt) | * .txt'; סוף; עם SaveDialog1 לעשותהתחל
InitialDir: = ExtractFilePath (יישום. ExeName); פילטר: = 'קבצי טקסט (* .txt) | * .txt'; סוף; Memo1.ScrollBars: = ssBoth; סוף;

קוד זה קובע כמה ממאפייני הדו-שיח הפתוח כפי שנדונו בתחילת המאמר.

2. הוסף קוד זה לאירוע Onclick של כפתורי btnOpen ו- btnSave:

תהליך TForm1.btnOpenClick (שולח: TObject); התחלאם OpenDialog1.Execute לאחר מכןהתחל
Form1.Caption: = OpenDialog1.FileName; Memo1.Lines. LoadFromFile. (OpenDialog1.FileName); Memo1.SelStart: = 0; סוף; סוף;
תהליך TForm1.btnSaveClick (שולח: TObject); התחל
SaveDialog1.FileName: = Form1.Caption; אם SaveDialog1.Execute לאחר מכןהתחל
Memo1.Lines. שמור לקובץ. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; סוף; סוף;

הרץ את הפרויקט שלך. אינך יכול להאמין בזה; קבצים נפתחים ושומרים ממש כמו בפנקס הרשימות "האמיתי".

מילים אחרונות

זהו זה. יש לנו עכשיו פנקס רשימות "קטן" משלנו.

instagram story viewer