У меня есть простая программа с двумя формами, основной формой и формой настроек. Очевидно, что форма настроек позволяет пользователю изменять настройки. У меня есть блок настроек, раздел инициализации которого считывает настройки из файла.
Когда программа впервые установлена и запущена в первый раз, настройки будут пустыми, и если это так, я хочу показать форму настроек. Вопрос в том, куда ставить чек и код вызова.
Мой Application.lpr содержит
begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TSettingsForm, SettingsForm);
Application.Run;
end.
Мой блок настроек примерно такой
uses
Classes, SysUtils, INIFiles;
type
TSettings = class
public
procedure LoadFromFile();
procedure SaveToFile();
...
end;
var
Settings: TSettings;
implementation
{ TSettings }
...
initialization
Settings := TSettings.Create;
Settings.LoadFromFile();
finalization
Settings.SaveToFile();
FreeAndNil(Settings);
end.
Если я сделаю эту проверку на наличие пустых настроек в MainForm.FormCreate, я не смогу показать форму настроек, потому что она еще не создана.
Я не понимаю, как это сделать в Application.lpr, поскольку там нет явной переменной для ссылки на экземпляр SettingsForm. В любом случае, ставить его здесь неправильно.
Могу ли я выполнить эту проверку в SettingsForm.FormCreate, предполагая, что это вызывается только после того, как SettingsForm полностью инициализирован и готов к отображению? Вы можете позвонить
Show()
вFormCreate()
?Я не уверен, когда именно создается экземпляр моего типа настроек.
Есть ли какие-либо идеи, рекомендации, шаблоны дизайна или другой материал, который я мог бы использовать, чтобы определить, куда поместить мой чек для пустых настроек?