Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 66


Вызывая далее конструктор класса диалога (в одном предложении с вызовом для этого диалога функции-члена Execute(), приводящим к появлению диалогового окна на экране)

int result= new TFileOpenDialog(this,fileData)->Execute();

мы указываем среди его параметров имя нашей структурной переменной fileData. Среди защищенных данных-членов класса диалога имеется ссылочная переменная Data типа TData, в которую при выполне­нии конструктора записывается адрес созданной в программе структуры fileData, что делает ее доступ­ной программам OWL, реализующим работу диалога. После выбора пользователем в процессе работы с диалогом требуемого файла и закрытия диалога, полная спецификация выбранного файла поступает в элемент FileName переменной fileData, откуда ее можно извлечь и использовать для открытия файла и чтения из него данных.

Целочисленное значение, возвращаемое функцией Execute(), говорит о том, каким образом был за­крыт диалог. При нажатии на кнопку ОК возвращается значение IDOK, при выборе кнопки "Отмена" -значение IDCANCEL. Анализ возвращаемого значения дает возможность завершить функцию CmOpen(), если пользователь завершил диалог, не выбрав никакого файла. Если же файл выбран и диалог завершен с кодом возврата ОК, то выполняется проверка правильности расширения имени файла. Для этого сим­вольный указатель ptr устанавливается на завершающий нуль спецификации файла в переменной fileData, а затем последние три символа спецификации сравниваются с заданным расширением DBF (вы­бранным, разумеется, для наших файлов совершенно произвольно). Если расширение правильное, то файл открывается и все его содержимое читается в массивную переменную tsbArray, состоящую из запи­сей типа TSB.

После закрытия файла вызовом функции Invalidate() инициируется сообщение WM_PAINT для глав­ного окна приложения (поскольку функция CmOpen() принадлежит классу главного окна My Window), в результате чего на экран выводится содержимое выбранного файла с базой данных.




Начало  Назад  Вперед



Книжный магазин