Задать вопрос
  • Можно писать код, чтобы сразу он запускался при запуске программы?

    Samson114
    @Samson114
    Программист-разработчик прикладного ПО и БД
    Навешивать код на событие 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.
    Ответ написан
    Комментировать
  • Как работать с таблицами Word в Delphi?

    Samson114
    @Samson114
    Программист-разработчик прикладного ПО и БД
    Если вместо вот этого
    CurTable:=ActiveDocument.Tables(1);
    написать правильно, то всё наладится ))
    CurTable:=ActiveDocument.Tables.Item(1);
    Естественно, если в документе есть хоть одна таблица :-)
    Ответ написан
    Комментировать