@w4neex

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

Можно ли писать код который срабатывает вместе с запуском программы, не нажимая ни на какие кнопки или не выбирая что-то из списка?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 3
ZERGeich
@ZERGeich
Если приложение без форм - то в основном теле после Application.Initialize;
Если при наличии формы - то по событию onFormCreate
Ответ написан
Комментировать
HemulGM
@HemulGM Куратор тега Delphi
Delphi Developer, сис. админ
Десятки способов. Самый простой, взять событие на создание формы. Нажми на форму и слева, в событиях нажми два раза на FormCreate. Код в этом событии выполнится в момент создания окна.
Ответ написан
Комментировать
tsklab
@tsklab
Здесь отвечаю на вопросы.
А ещё можно создавать модуль данных (TDataModule) до модулей с формами. Например, расположив там что-то из потомков (TCustomConnection) с включенном соединением (TCustomConnection.Connected) и приложение будет само подключаться к базе данных, до создания форм.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
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.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы