Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c