Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2010, 13:23   #1
YarUnderoaker
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 11
По умолчанию Компонент на форме -> работа компонента до создания формы

Задача такая:
Создать компонент который кидается на основную форму,
создает в директории с exe проекта файл-конфиг.
При запуске приложения в сеции инициализации модуля этого компонента загружается файл-конфиг (сам комопнент еще не создан, это и не нужно).
После инициализации всех модулей, но перед созданием формы,
нужно выполнить некоторые действия прописаные в файле-конфиге.
Вопрос: как вызвать процедуру перед созданием формы не дописывая код вручную в програме проекта? Может можно заригистрировать пользовательское событие об окончании всей инициализации в секции инициализации модуля компонента?

Последний раз редактировалось YarUnderoaker; 26.07.2010 в 13:26.
YarUnderoaker вне форума Ответить с цитированием
Старый 26.07.2010, 14:40   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  { Вот здесь пишем код, который выполнится до инициализации форм. Но писать ручками все равно придется. Се ля ви...
  }

  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Баламут вне форума Ответить с цитированием
Старый 26.07.2010, 15:32   #3
YarUnderoaker
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 11
По умолчанию

Э нет, нашел решение, порывшись в класе TApplication

Эсли создать такой модуль
Код:
unit uMyInit;

interface

uses
  SysUtils;

implementation

var
  OldInitProc: Pointer;

procedure MyInitProc;
begin
  if Assigned(OldInitProc) then
    TProcedure(OldInitProc);
  Sleep(10);
end;

initialization
  OldInitProc := InitProc;
  InitProc := @MyInitProc;

end.
Тогда

Код:
program Project1;

uses
  Forms,
  uTest in 'uTest.pas' {Form2},
  uMyInit in 'uMyInit.pas';

{$R *.res}

begin { тут выполняется initialization все модулей и можно быть спокойным что все глобальные переменные инициализированы }
  Application.Initialize; { тут выполняется MyInitProc, а обычно ничего не выполняется ;) }
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm2, Form2);
Спасибо, тема закрыта.

Последний раз редактировалось YarUnderoaker; 26.07.2010 в 15:34.
YarUnderoaker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пример создания окна для ActiveX(OLE) компонента(по типу WebBrowser или Flash) Пепел Феникса Win Api 4 25.12.2009 09:08
перемещение компонента по форме blackstersl Общие вопросы Delphi 4 15.08.2009 22:16
Перемешение компонента по форме Vladya Помощь студентам 3 26.05.2009 00:01
Пример создания простого GUI компонента на C# SunKnight Общие вопросы .NET 4 26.04.2009 20:43
Как программно удалить компонент от формы или другого компонента (контейнера)? SkAndrew Общие вопросы Delphi 3 27.05.2008 15:20