Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Как различить DesignTime и RunTime   Найти похожие ветки 

 
don-do   (2003-08-19 09:03) [0]

При инициализации меняю PopupList, если это в пакете то дельфи падает. Помогите плиз, есть ли директивы для различения режимов.


 
Palladin ©   (2003-08-19 09:13) [1]

когда рисуешь - design time
когда нажимаешь зеленый треугольничек это run-time и длится он до нажатия тобой крестика в твоей программе...


 
don-do   (2003-08-19 09:17) [2]

Palladin шутник
У комонента есть свойство State, а мне бы хотелость различать (програмно - для Palladinа) в IDE работает код или нет.


 
Camus ©   (2003-08-19 09:18) [3]

Для любого компонента:
if csDesigning in ComponentState then ... // Это design-time


 
jel ©   (2003-08-19 09:19) [4]

TComponent.ComponentState


 
don-do   (2003-08-19 09:21) [5]

Спасибо за советы, но это ни коим боком не касается компонентов.
Есть ли другой способ?


 
don-do   (2003-08-19 09:26) [6]

пока я использую:
{$IFNDEF DESIGNIBXFORMS} //Defined in .DPK
If Assigned(PopupList)
then PopupList.Free;
PopupList := TMyPopupList.Create;
{$ENDIF}
,но это меня не устраивает, т.к. придется пакеты отравлять с прогой, а для этого их надо пересобирать.


 
Camus ©   (2003-08-19 09:34) [7]

> don-do (19.08.03 09:21) [5]

1. Если есть ссылка на любой компонет, то можно проверить по нему (причем формы и модули данных - тоже компоненты). Это самое надежное.

2. В design-time Application - это Delphi. Можно проверить имя класса главной формы, но это менее надежно (когда-нибудь может измениться):
if CompareText(Application.MainForm.ClassName, "TAppBuilder")...


 
Zhenka ©   (2003-08-19 09:58) [8]

может это не то, но что то типа етого
{$RUNONLY ON}
ПРИ ВКЛ ДИРЕКТИВЕ ПАКЕТ КОМПИЛИТСЯ КАК ПАКЕТ РАНТАЙМ
используется только в дпк файлах.


 
don-do   (2003-08-19 10:05) [9]

Camus спасибо, наверное это лучшее решение.


 
don-do   (2003-08-19 10:21) [10]

initialization
if not Assigned(Application.MainForm)
then begin
If Assigned(PopupList)
then PopupList.Free;
PopupList := TMyPopupList.Create;
end;
спасибо всем, я поступил так, т.е. во время инициализации модулей главная форма еще не установлена.Ну а с RunTime пакетами вариант Camus подходит больше.



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

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1455
TolikM
2003-08-18 17:38
2003.09.01
SaveDialog для создания каталогов


7-1689
Mor
2003-06-17 00:46
2003.09.01
Работа с COM-портом


3-1299
yaric
2003-08-09 13:24
2003.09.01
Как можно упаковать таблицу Paradox


9-1271
Zombik666
2003-02-28 10:19
2003.09.01
2 exeшника


1-1379
Lex
2003-08-16 07:22
2003.09.01
Проблемы с dll