Мы рассмотрели операции, выполняющиеся при отсутствии файла конфигурации. Если же файл имеется, то организуется чтение информации из него. Для этого, прежде всего, создается связанный с ним объект Ini. Затем из раздела файла "[Параметры]" читаются ключи "Меню", "Панели", "Файл" и в соответствии с прочитанными значениями устанавливаются индикаторы окна настройки параметров (см. рис. 8.9). Затем в цикле организуется чтение информации, определяющей конфигурацию меню. После чтения ключей, определяющих надпись, видимость и горячие клавиши очередного головного раздела меню, свойство Items этого раздела в цикле очищается методом Delete. Таким образом уничтожаются все ссылки на дочерние разделы меню, содержащиеся в нем по умолчанию. Затем из файла читается ключ "Count" - число дочерних разделов. В цикле информация о дочерних разделах читается из файла, соответствующие объекты разделов берутся из массива Components формы, им присваиваются прочитанные свойства Caption и Shortcut, после чего они заносятся методом Add в свойство Items головного раздела меню. Для разделов, не являющихся разделителями, корректируются свойства Caption и Shortcut дублей объектов меню, содержащихся в списке LBComand (см. разд. 8.2.3).

После того как вся информация о меню прочитана и меню сформировано, читается информация о запомненных именах файлов. Если имя прочитанного файла не пусто (т.е. какой-то файл запомнен), то создается соответствующий объект меню Tmpltem введенного в приложении класса TFileOld (см. в листинге 8.1 файл UMenu.pas, а пояснения см. в разд. 5.2.4) и этот раздел включается в меню Файл.

После чтения всех файлов проверяется состояние индикатора CBFile (индикатор файл на рис. 8.9). Если индикатор включен и создан хотя бы один раздел запомненных файлов, то имитируется выбор этого раздела с помощью метода Click. Обработчик раздела срабатывает и соответствующий ему файл загружается в окно редактирования RichEditl.

Затем из файла читается информация о шрифте, заносится в соответствующие окна формы FOptions (рис. 8.9), а также в свойства окна редактирования Rich-Editl. Далее в цикле просматриваются инструментальные панели. Соответствующие индикаторы в списке CheckListBoxl окна настройки панелей (рис. 8.5 в разд. 8.3.1) приводятся в соответствие со значениями ключей "Visible*. Все кнопки с каждой панели переносятся на панель TBHide (см. разд. 8.3.1), т.е. панель полностью очищается. А затем на нее заносятся кнопки в соответствии со списком, читаемым из файла. Видимость каждой панели приводится в соответствие с информацией, записанной в ключах "Visible*.

Теперь перейдем к рассмотрению кода модуля UOptions.pas. Этот модуль соответствует форме настройки параметров, приведенной на рис. 8.9. В этом модуле, который приведен в листинге полностью, всего несколько процедур. Процедура ComboBoxlChange срабатывает, когда пользователь выбирает в выпадающем списке ComboBoxl новый шрифт. Этот шрифт заносится как шрифт по умолчанию в окно RichEditl главной формы и в расположенный на той же главной форме выпадающий список ComboBoxl. В дальнейшем, как было видно выше в описании функции Tolni, этот шрифт сохраняется в файле настройки. Процедура SpinEditl-Change является обработчиком изменения пользователем размера шрифта в компоненте SpinEditl. Этот размер также заносится как размер по умолчанию в окно RichEditl главной формы, а функцией Tolni этот размер сохраняется в файле настройки.

Процедура ButtonlClick является обработчиком щелчка на кнопке Умолчание в окне рис. 8.9. Этот обработчик удаляет функцией DeleteFile файл настройки, затем показывает пользователю окно, приведенное ранее на рис. 8.10, и прекращает методом Application.Terminate выполнение приложения. Поскольку файл настройки уничтожен, то, как было видно из приведенного выше описания процедур файла UMSetuppas, при очередном выполнении приложение оно откроется со значениями всех параметров по умолчанию, и эти же параметры занесутся во вновь созданный файл настройки.

Процедура Button2Click - обработчик щелчка на кнопке ОК, закрывающей форму настройки параметров.

Осталось рассмотреть две простые процедуры файла главной формы UMe-nupas. Процедура AOptionsExecute - обработчик действия, открывающего рассмотренную выше форму настройки параметров. Процедура FormClose - обработчик события OnClose формы. В этой процедуре производится вызов описанной ранее процедуры Tolni с аргументом, равным false. Процедура перезаписывает в файле настройки те разделы, которые требуется переписать в соответствии с состояниями индикаторов на форме настройки параметров. После окончания записи объект Ini уничтожается методом Free.

Глава 9

Работа с удаленными модулями данных

В данной главе рассматривается работа с удаленными модулями данных, основанными на классе TRemoteDat a Module. К сожалению, этот класс в Delphi 2005 и 2006 имеется только в библиотеке VCL Win32. В билиотеке VCL .NET класс описан в справке, но реально его нет. Думаю, что он будет добавлен в очередном обновлении или в новой версии Delphi. Но пока материал данной главы относится только к приложениям VCL Win32 в Delphi 2005 и 2006, в также ко всем версиям, предшествующим Delphi 2005.

8.5.2 Пример: общее описание || Оглавление || 9.1 Построение сервера с удаленным модулем данных


⇐ Предыдущая страница|

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Сентябрь
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс