Листинг 11.21. Изменения в модуле Server
program Server;
uses
Forms,
Unit1 in \'Unit1.pas\' {frmServer},
IniFiles, Dialogs;
{$R *.res}
var
{Переменные из INI-файла}
config: TIniFile;
strPath: string;
begin
//Грузим информацию из INI-файла
strPath :=
Copy(Application.ExeName,1,Length(Application.ExeName)–3) +
\'ini\
config := TIniFile.Create(strPath);
SERVERVISIBLE := config.ReadBool(\'Common\', \'ServerVisible\',
False);
REPORT := config.ReadBool(\'Common\',’EventReport’, False);
config.Free ;
try
//Запуск сервера
Application.Initialize;
Application.CreateForm(TfrmServer, frmServer);
Application.Run;
except
MessageDlg(\'Не удается запустить сервер сообщений. \' +
\'Возможно, он был запущен ранее.\', mtError, [mbOK], 0);
end;
end.
В приведенном листинге код создания формы помещен в блок try. Сделано это только для того, чтобы сервер не «падал» с выдачей всем прекрасно знакомого окна о критической ошибке при попытке ошибочного запуска своей копии.
Соответственно, INI-файл для запуска сервера с видимым окном и включенным протоколированием имеет следующий вид: