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

Вниз

Close из Activate   Найти похожие ветки 

 
DimDim ©   (2007-04-01 19:57) [0]

Уважаемые Мастера, не сочтите за труд!
Открываю модальное окно, передаю в него (в Edit-ы) определенные значения, программно нажимаю на кнопку "Найти". Если поиск прошел нормально, то это окно должно быть закрыто. Если нет - остаться открытым для изменения Edit-ов.
Так вот: все это выполняется в процедуре Activate модального окна и команда Close там работать не хочет (пока Activate не отработало до конца). Как это обойти? А то что-то я перегрелся...
Заранее спасибо!


 
Palladin ©   (2007-04-01 20:35) [1]

ну и делай exit после close


 
DimDim ©   (2007-04-01 23:22) [2]

Извините, не понял с exit...
У меня:

procedure TFormPoisk.FormActivate(Sender: TObject);
begin
...
if Poisk=True then Close;
end;


По Close должно закрыться окно, а оно не закрывается. Как я понимаю потому, что до конца не отработала функция Activate. При чем exit?


 
Palladin ©   (2007-04-01 23:26) [3]

справку почитаешь и узнаешь...
за одно поитересуйся операторными скобками begin end


 
sniknik ©   (2007-04-01 23:47) [4]

> procedure TFormPoisk.FormActivate(Sender: TObject);
> begin
> ...
> if Poisk=True then Close;
> end;

const
 WM_DOCLOSE = WM_USER + 101;

type
 TFormPoisk= class(TForm)
   procedure FormActivate(Sender: TObject);
 private
   procedure WMDoClose(var Message: TMessage); message WM_DOCLOSE;
 public
 end;

var
 FormPoisk: TFormPoisk;

implementation

procedure TFormPoisk.WMDoClose(var Message: TMessage);
begin
 Close;
end;

procedure TFormPoisk.FormActivate(Sender: TObject);
begin
 if Poisk then PostMessage(Handle, WM_DOCLOSE, 0, 0);
end;

(свое событие для наглядности можно стандартное типа WM_CLOSE послать)

хотя, это плохое решение, формой мигать..., лучше не допускать открытия/активации до, вместо того чтобы бороться с последствиями после.


 
SergGG ©   (2007-04-02 09:20) [5]

У тебя не выполняется условие
>if Poisk=True then


 
_Аноним   (2007-04-02 09:59) [6]

Действительно не закрывается при таком раскладе, можете проверить.
Правильный ответ - sniknik


 
Reindeer Moss Eater ©   (2007-04-02 11:10) [7]

Так вот: все это выполняется в процедуре Activate модального окна

А что, нет более подходящего места для этого кода?



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

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

Наверх




Память: 0.48 MB
Время: 0.056 c
2-1175183362
mahab
2007-03-29 19:49
2007.04.22
TImage


2-1175324426
Roman_S
2007-03-31 11:00
2007.04.22
Как найти на рабочем столе ярлык (НЕ по названию)?


2-1175108515
Углук
2007-03-28 23:01
2007.04.22
Что быстрее? Чарт или директиИксовский канвас?


2-1175501859
pound
2007-04-02 12:17
2007.04.22
как в TValueListEditor определить место положения курсора


15-1174786694
Марк
2007-03-25 05:38
2007.04.22
У кого-нибудь есть флеш-видак?