Где-то так:
| Код | program Project1;
uses Forms, SysUtils, Unit1 in 'Unit1.pas' {Form1}, Windows;
{$R *.res}
const // Массив имен файлов необходимых библиотек REQ_LIB_ARR : array [0..2] of string = ( 'C:\Windows\explorer.exe', 'Project1.exe', 'missing_lib.dll' );
function CheckLibrary(const AFileName: string): Boolean; begin try if FileExists(AFileName) then Result:= True else begin MessageBox(0, PChar(Format('Необходимый для работы программы файл "%s" не найден.', [AFileName])), 'Проверка необходимых файлов', MB_OK + MB_ICONSTOP + MB_TOPMOST); Result:=False end; except MessageBox(0, PChar(Format('Ошибка при проверке файла %s!', [AFileName])), 'Проверка необходимых файлов', MB_OK + MB_ICONSTOP + MB_TOPMOST); Result:= False; end; end;
function CheckLibraries():Boolean; var I: Integer; begin Result:= True; for I:= Low(REQ_LIB_ARR) to High(REQ_LIB_ARR) do begin result:= Result and CheckLibrary(REQ_LIB_ARR[I]); if not Result then Break; end; end;
begin Application.Initialize; if CheckLibraries then begin Application.CreateForm(TForm1, Form1); // Здесь создаем еще формы Application.Run; end else Application.Terminate;
end.
|
В массиве REQ_LIB_ARR перечисляешь все файлы, которые необходимы для работы программы. |