3. Невизуальные компоненты, повышающие удобство программирования

Например, весьма часто требуется обеспечить сохранение размеров формы приложения для последующих запусков программы. Конечно, для этого можно при закрытии формы сохранить ее размеры в файле настроек, а при последующем запуске – считать из файла и установить.

Но можно поступить иначе – поместить все эти функции в компонент, который выполнял вышеописанные действия самостоятельно без участия программиста. Эта мысль пришла в голову не мне первому, и уже в незапамятном 1995 году еще для первой версии Delphi был разработана библиотека компонентов RxLib, в которую среди прочих вошел компонент TFormStorage, позволяющий автоматически сохранять, а в последующем - загружать положение формы на экране, а также любые опубликованные свойства компонентов.

Являясь, по сути дела, хорошо оформленным инструментом для работы с инициализационными файлами и реестром, этот компонент способен оказать огромное подспорье в создании профессиональных приложений.

Например, в программе требуется запускать внешние приложения и сохранять историю запущенных приложений.

Разработаем небольшое тестовое приложение, обладающее такими возможностями. Для этого на форму поместим уже известный нам компонент TRzLauncher, TComboBox для ввода имени запускаемого файла, кнопку, нажатие на которую будет вызывать запуск программы, и, наконец, компонент TFormStorage для сохранения опубликованных свойств.

Рис. 1 Главный файл тестового приложения

Рис. 10.1. Рис. 1 Главный файл тестового приложения


Затем с помощью редактора свойства StoredProps установим, что сохранению подлежит свойство Items выпадающего списка запускаемых программ, как показано на рис. 2.

Рис. 2 Редактор свойства

Рис. 10.2. Рис. 2 Редактор свойства


Пример 10.11. Обработчик события нажатия на кнопку запуска

procedure TForm1.Button1Click(Sender: TObject);
begin
  RzLauncher1.ProgramName:=ComboBox1.Text;
  RzLauncher1.Launch;
  if ComboBox1.Items.IndexOf(ComboBox1.Text)=-1 then
  ComboBox1.Items.Add(ComboBox1.Text);
end;

Первые две строчки вам уже знакомы, а третья добавлена для автоматического добавления однажды запущенной программы в список. Все готово. Как сохранять ComboBox1.Items? Нам для этого ничего делать не нужно. Все сделает TFormStorage. Закроем программу и убедимся, что список автоматически загрузился!