Навешивать код на событие FormCreate не всегда корректно.
Если уж что-то выдумывать по данной теме, то проще всего добавить
активный таймер (Enabled := true) и на его сработку написать всё, что угодно.
Но, обычно, для таких задач пишется консольное приложение, где код помещается в модуль программы *.dpr
К примеру так:
program Vpm_Load;
{$APPTYPE CONSOLE}
uses
Winapi.UrlMon,
System.Variants,
ComObj,
System.SysUtils;
type
TArguments = record
Name : string;
Val : integer
end;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result:=UrlDownloadToFile(nil,PChar(SourceFile),PChar(DestFile),0,nil)=0;
except
Result := False;
end;
end;
Const
N_max : integer = 12; // N_max - максимальное количество входных параметров
N : integer = 3; // N - количество обязательных параметров
var
f,s : string;
I : integer;
Arg : array of TArguments;
Wrd : OleVariant;
aWdDoc : Variant;
begin
f := 'C:\Temp\Vpm.doc';
if DownloadFile('
https://storage/mediabank/Vpm_2023.doc', f) then
begin
Wrd:=CreateOleObject('Word.Application'); // создаём приложение Word
aWdDoc := Wrd.Documents.Open(f); // открываем файл
s := aWdDoc.Range.Text;
Wrd.Visible:=True; // делаем приложение видимым
end
else
begin
Writeln('Файл не удалось скачать');
end;
...
//работа с файлом, входными параметрами
...
Read(I);//Вставляем, чтобы можно было увидеть консоль, иначе она просто закроется
end.