Иллюстрированный самоучитель по Turbo Pascal

Программирование диалоговых запросов

В обработчике событий TNotebook.HandleEvent мы предусмотрели вызовы нескольких процедур, с помощью которых реализуются конкретные действия программы. Настала пора запрограммировать эти действия.

Начнем с процедуры FileOpen. Ее задача – выбрать один из возможных файлов с данными и подготовить его к работе. Конечно, программу можно было бы сделать менее гибкой, раз и навсегда "привязав" ее к какому-то одному файлу, скажем, с именем notebook.dat. Но даже и в этом случае следует решить проблему с местоположением файла данных, а также определить, что должна делать программа, если нужный файл не найден. Наша программа будет весьма гибкой в этом отношении: она позволит указать интересующий нас файл мышью или клавишами курсора, либо ввести имя файла с помощью клавиатуры или взять его из буфера ранее введенных имен. Иными словами, поведение нашей программы будет в точности повторять поведение среды Турбо Паскаль в момент нажатия на клавишу F3.

Если Вы когда-либо программировали подобные действия в Турбо Паскале, Вы по достоинству оцените простоту их реализации в Turbo Vision:

Procedure FileOpen; {Открывает файл данных}
var
PF: PFileDialog; {Диалоговое окно выбора файла}
Control: Word;
s: PathStr;
begin
{Создаем экземпляр динамического объекта:}
New(PF, Init('*.dat','Выберите нужный файл:','Имя файла',fdOpenButton,0));
{С помощью следующего оператора окно выводится на экран и результат
работы пользователя с ним помещается в переменную Control:}
Control: = DeskTop.ExecView(PF);
{Анализируем результат запроса:}
case Control of
StdDlg .cmFileOpen, cmOk:
begin {Пользователь указал имя файла:}
PF.QetFileName(s); {s содержит имя файла}
{-----------} {Открыть файл}
end;
end; {case Control}
Dispose (PF, Done) {Уничтожаем экземпляр}
end; {FileOpen}

Для реализации этого фрагмента необходимо указать имя модуля StdDlg в предложении Uses – в этом модуле описан тип PFileDialog и предусмотрены все необходимые методы для работы с ним. Кроме того, в программе используется переменная S типа PathStr. Этот тип описан в модуле DOS – сошлитесь также и на него. Сделайте нужные изменения в тексте программы, не раскрывая пока сущности действий:

{Открыть файл}

Запустите программу на счет и нажмите клавишу F3 – экран приобретет вид, показанный на рис.15.3.

Тип PFileDialog – это указатель на объект TFileDialog, создающий и обслуживающий стандартное диалоговое окно выбора файлов. Все действия по созданию и использованию диалогового окна, показанного на рис.15.3, реализуются двумя операторами:

NewfPF, Init('*.dat','Выберите нужный файл:',
'Имя файла',fdOpenButton, 0));
Control: = DeskTopA.ExecView(PF);

Иллюстрированный самоучитель по Turbo Pascal › Введение в Turbo Vision › Программирование диалоговых запросов
Рис. 15.3. Диалоговое окно выбора файлов

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.