Главная страница
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-1506
Владимир Березин
2003-08-15 22:21
2003.09.01
Вопрос про hint


3-1275
Denis Tkachov
2003-08-11 11:59
2003.09.01
проблема с созданием тригера


3-1300
GILforever
2003-08-02 02:29
2003.09.01
Типы в InterBase


7-1678
Kirill_S
2003-06-18 12:38
2003.09.01
задержка выполнения Sleep()


14-1566
Pavel
2003-08-11 18:10
2003.09.01
может кто знает?