Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Вниз

Инициализация модулей   Найти похожие ветки 

 
Анатолий   (2004-08-10 16:04) [0]

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

Или по-другому, можно ли исполнить свой код гарантированно перед инициализацией некоторых модулей?

Например:

инициализация модуля module1
исполняется некоторый мой код
инициализация модуля module2
..
инициализация модуля moduleN


 
TUser ©   (2004-08-10 16:07) [1]

А не поможет ли изменение порядка перечисления модулей в исходниках проекта? Если да - то код инициализации первого модуля пропиши свой код.


 
Sandman25 ©   (2004-08-10 16:08) [2]

Можно. Но это плохая идея. Можно поподробней?


 
Sun bittern ©   (2004-08-10 16:16) [3]

Initialization
Finalization
???


 
Анатолий   (2004-08-10 16:30) [4]

Я задавал этот вопрос недавно в другом аспекте на API конференции. Вкратце: мне нужно сменить текущий десктоп на интерактивный для приложения, запущенного с неинтерактивным логоном. Я использую SetThreadDesktop. Но функция отрабатывает, только если в в старом десктопе программа не создала ни одного объекта - окна или хука. Я использую некоторые стандартные модули VCL (править их не могу да и некрасиво). При инициализации, некоторые из них создают в десктопе окна. Например, в модуле Dialogs в секции initialization используется RegisterWindowMessage и т.п.

Если бы можно было сделать такую последовательность инициализации (я имею в виду не последовательность в разделе uses, а реальную последовательность процедур):

инициализация  SysUtils,
инициализация  Windows, //окна не создаются
инициализация  "мой код подключается к новому десктопу"
инициализация  Dialogs //могут создаваться окна и хуки
инициализация  Forms
...

Как бы так сделать?


 
icWasya ©   (2004-08-10 17:04) [5]

ну дык и пиши


project  MyProject;
uses
 UnitSetThreadDesktop in "UnitSetThreadDesktop.pas",
 forms,
 unit1 in "unit1.pas" {Form1},
 unit2 in "unit2.pas" {Form2};
begin
  ...
end;

а в секции инициализации UnitSetThreadDesktop делай то, что тебе нужно. Или что?


 
Анатолий   (2004-08-10 17:16) [6]

Спасибо, добрый человек. Я как-раз доходил уж до этого. Но ты меня опередил :).

Спасибо всем, этой проблемы больше нет.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
3-1091022448
r00t
2004-07-28 17:47
2004.08.22
Как отобразить формулы и т.д. в бд?


3-1091434818
46_55_41_44
2004-08-02 12:20
2004.08.22
А теперь - Вопрос как создать БД программно...


1-1091655066
yozh_programmer
2004-08-05 01:31
2004.08.22
Компонент для отчета с диаграммой и сохр. в WORDформате


8-1086114069
Adventure
2004-06-01 22:21
2004.08.22
Теория и практика идентификации изображений ...


14-1091693691
kingdom
2004-08-05 12:14
2004.08.22
Ищу ресурс по C/C++ такой же классый как Мастера Delphi ))





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский