Вниз
Скачать: CL | DM;

Выполнение кода после появления формы   Найти похожие ветки 

← →
shoo   (2003-04-02 16:40) [0]

Мастера, подскажите, пожалуйста, какой event формы срабатывает, когда форма уже полностью показана на экране. Т.е., мне нужно, чтобы юзер уже увидел форму и после этого выполнить какой-то код. Create, show и activate не подходят или же я неправильно их использую. Спасибо.


← →
Mike Kouzmine   (2003-04-02 16:54) [1]

Установи таймер, на Show Enable := true, срабатывание - Enable := false + показывай мультик


← →
Zz_   (2003-04-02 16:58) [2]

>>Mike Kouzmine

Тогда уж лучше PostMessage(Handle, WM_USER+100


← →
Anatoly Podgoretsky ©   (2003-04-02 17:02) [3]

Более системный подход, но по сути таймер так и работает, только лишний компонент.
Только не в OnShow, а в OnCreate


← →
shoo   (2003-04-02 17:19) [4]

2 Mike Kouzmine: Немного не понял, а срабатывание где отследить? В onshow?


← →
Smashich ©   (2003-04-02 17:26) [5]

Create возникает после конструктора формы

show при показе окна на экране
activate возникает при получении фокуса окном

чего не хватает то?



← →
panov ©   (2003-04-02 17:34) [6]

>shoo
Нет такого события.

Таймер настраивается опытным путем...


← →
Smashich ©   (2003-04-02 17:37) [7]

2 panov © (02.04.03 17:34)

>shoo
Нет такого события.

а куда дели?:)


← →
Mike Kouzmine   (2003-04-02 17:43) [8]

Да. На форму кладешь таймер Enable=False, на OnShow делаешь Enable=True, на OnTimer Enable=False и твой код


← →
Smashich ©   (2003-04-02 18:19) [9]

может на onActivate ?

а если нужно вызывать код один раз - то последней строкой
self.OnActivate:=nil....?


← →
ZmeiGorin ©   (2003-04-02 18:33) [10]

Я вешаю на application.onactivate


← →
shoo   (2003-04-03 09:27) [11]

2 Mike Kouzmine:
Спасибо. Теперь все работает как надо.
2 ZmeiGorin:
А на application.onactivate как повесить? Кусочек кода, если можно.


← →
Shirson ©   (2003-04-03 09:56) [12]

Я такое на application.onidle делал. И ничего экспериментально подбирать не нужно было.


← →
ZmeiGorin ©   (2003-04-03 10:42) [13]

procedure TMySupaDupaCoolForm.AppActivate(sender:TObject);
begin
application.onactivate:=nil;
твой код...
end;

...в create: application.onactivate:=Appactivate;
Или воспользоваться компонентом AppEvents(кажется, так)



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
3-44016
SiJack
2003-03-24 15:21
2003.04.14
InplaceEditor


1-44088
sucer
2003-03-30 08:06
2003.04.14
Нужна форма не заберающая фокус


1-44194
Puzzle
2003-04-01 13:25
2003.04.14
Как удалить все файлы из какого-либо каталога?


3-43994
eugie
2003-03-21 08:55
2003.04.14
Прокрутка в DBGrid


14-44387
azra3L
2003-03-26 22:15
2003.04.14
процессы и потоки




   Наверх