Създаване на бележник на Delphi: Отваряне и запазване

Докато работите с различни приложения за Windows и Delphi, свикнахме да работим с един от стандартите диалогови прозорци за отваряне и запазване на файл, намиране и подмяна на текст, печат, избор на шрифтове или задаване на цветове.

В тази статия ще разгледаме някои от най-важните свойства и методи на тези диалози със специален акцент върху отворено и Запази диалогови прозорци.

Общите диалогови прозорци се намират в раздела Диалози на палитрата Компоненти. Тези компоненти се възползват от стандартните диалогови прозорци на Windows (разположени в DLL във вашата \ Windows \ системна директория). За да използваме общ диалогов прозорец, трябва да поставим съответния компонент (компоненти) във формата. Общите компоненти на диалоговия прозорец са невизуални (нямат визуален интерфейс за време на проектиране) и следователно са невидими за потребителя по време на изпълнение.

TOpenDialog и TSaveDialog

Диалоговите прозорци File Open и File Save имат няколко общи свойства. File Open се използва обикновено за избор и отваряне на файлове. Диалоговият прозорец „Запазване на файл“ (използва се и като диалогов прозорец „Запиши като“) се използва при получаване на име на файл от потребителя с цел запазване на файл. Някои от важните свойства на TOpenDialog и TSaveDialog са:

instagram viewer

  • Най- Настроики свойствата са много важни при определяне на крайния вид и усещане на кутията. Например ред от код като:
    с OpenDialog1 правяОпции: = Опции + [ofAllowMultiSelect, ofFileMustExist];
    ще запази вече зададените опции и ще позволи на потребителите да избират повече от един файл в диалоговия прозорец, заедно с генериране на съобщение за грешка, ако потребителят се опита да избере несъществуващ файл.
  • Най- InitialDir свойството се използва за указване на директорията, която ще се използва като начална директория, когато се покаже диалоговият прозорец на файла. Следващият код ще гарантира, че първоначалната директория на диалоговия прозорец "Отваряне" е директория за стартиране на приложения.
    SaveDialog1.InitialDir: = ExtractFilePath (Приложение. ExeName);
  • Най- филтър свойството съдържа списък на типовете файлове, от които потребителят може да избере. Когато потребителят избере тип файл от списъка, в диалоговия прозорец се показват само файлове от избрания тип. Филтърът може лесно да бъде зададен по време на проектиране чрез диалоговия прозорец Редактор на филтри.
  • За да създадете файлови маски в програмния код, присвойте стойност на свойството Filter, която се състои от описание и маска, разделена от вертикална лента (тръба). Като този:
    OpenDialog1.Filter: = 'Текстови файлове (* .txt) | * .txt | Всички файлове (*. *) | *. * ';
  • Най- Име на файл Имот. След като потребителят натисне бутона OK в диалогов прозорец, това свойство ще съдържа пълния път и име на избрания файл.

Изпълни

За да създадем и покажем общ диалогов прозорец, трябва да обработим Изпълни метод на конкретния диалогов прозорец по време на изпълнение. С изключение на TFindDialog и TReplaceDialog, всички диалогови прозорци се показват модално.

Всички общи диалогови прозорци ни позволяват да определим дали потребителят натиска бутона Отказ (или натиска ESC). Тъй като методът на Execute връща True, ако потребителят е натиснал бутона OK, трябва да хванем щракване върху бутона Cancel, за да сме сигурни, че даденият код не е изпълнен.

ако OpenDialog1.Execute тогава
ShowMessage (OpenDialog1.FileName);

Този код показва диалоговия прозорец File Open (Отваряне на файл) и показва избрано име на файл след "успешен" разговор за изпълнение на метод (когато потребителят натисне Open).

Забележка: Изпълнете връщането True, ако потребителят е натиснал бутона OK, щракна двукратно върху име на файл (в случай на диалоговите файлове на файла) или натиска Enter на клавиатурата. Изпълнение връща Неправилно, ако потребителят натисне бутона Отказ, натисна клавиша Esc, затвори диалоговия прозорец с бутона за затваряне на системата или с комбинацията от клавиши Alt-F4.

От код

За да работим с диалогов прозорец Open (или който и да е друг) по време на изпълнение, без да поставяме компонент OpenDialog във формата, можем да използваме следния код:

процедура TForm1.btnFromCodeClick (Подател: TObject); Var OpenDlg: TOpenDialog; започвам OpenDlg: = TOpenDialog. Създаване (Self); {задайте опции тук ...}ако OpenDlg. Изпълни тогавазапочвам
{код, за да направя нещо тук}
край; OpenDlg. Безплатно; край;

Забележка: Преди да извикаме Execute, можем (трябва) да зададем някое от свойствата на компонента OpenDialog.

MyNotepad

И накрая, време е да направим истинско кодиране. Цялата идея зад тази статия (и няколко други, които предстоят) е да се създаде просто приложение MyNotepad - самостоятелно Windows като приложение за Notepad.
В тази статия сме представени с диалогови прозорци Отваряне и запазване, така че нека ги видим в действие.

Стъпки за създаване на потребителския интерфейс на MyNotepad:
. Стартирайте Delphi и изберете File-New Application.
. Поставете един Memo, OpenDialog, SaveDialog два бутона на формуляр.
. Преименувайте бутон1 на btnОтваряне, бутон2 на btnSave.

кодиране на стоките

1. Използвайте Object Inspector, за да зададете следния код на събитието FormCreate:

процедура TForm1.FormCreate (подател: TObject); започвамс OpenDialog1 правязапочвам
Опции: = Опции + [наPathMustExist, ofFileMustExist]; InitialDir: = ExtractFilePath (Приложение. ExeName); Filter: = 'Текстови файлове (* .txt) | * .txt'; край; с SaveDialog1 правязапочвам
InitialDir: = ExtractFilePath (Приложение. ExeName); Filter: = 'Текстови файлове (* .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. SaveToFile. (SaveDialog1.FileName + '.txt'); Form1.Caption: = SaveDialog1.FileName; край; край;

Стартирайте проекта си. Не можете да повярвате; файловете се отварят и запазват точно както при "истинския" Notepad.

Заключителни думи

Това е. Вече имаме свой "малък" тефтер.

instagram story viewer