Иллюстрированный самоучитель по Tirbo 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 - сошлитесь также и на него. Сделайте нужные изменения в тексте программы, не раскрывая пока сущности действий




Содержание  Назад  Вперед