Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Внизперекрыть метод закрытия формы Найти похожие ветки
← →
segor (2004-07-23 11:27) [0]пробовал перекрывать doclose, но он вызывается только при нажатии на крестик в углу формы. а надо чтобы при любом закрытии вызывался мой метод. шо делать???
← →
Суслик © (2004-07-23 11:34) [1]там же событие есть - ondestroy у формы.
← →
DK (2004-07-23 11:35) [2]И он On CloseQuery(CanClose:=false)
← →
DK (2004-07-23 11:36) [3]До этого не правельно написал:
И OnCloseQuery - CanClose:=false
← →
segor (2004-07-23 11:49) [4]у них нету TAction
а нужен
← →
ИдиотЪ (2004-07-23 12:09) [5]OnClose всегда работает, впиши туда свой метод
← →
Суслик © (2004-07-23 12:09) [6]а на фига TAction?
напиши, что нужно.
← →
Рамиль © (2004-07-23 12:29) [7]
> [5] ИдиотЪ (23.07.04 12:09)
DoClose это диспетчер OnClose, так что срабатывают они одинаково. Попробуй уничтожить форму, а не закрыть.
← →
segor (2004-07-23 12:32) [8]дело в том, что мой метод использует TAction чтобы по условию не позволить закрыть форму
← →
Zlod3y © (2004-07-23 12:35) [9]Почитай Руководство разработчика Тейксейры и Пачеко в каком-то томе написано как прописать свой метод за место стандартного....всё просто на самом дел, только из всего помню
OnClose:=nil;
могу вечером кинуть примерчик, когда домой приду
← →
segor (2004-07-23 12:37) [10]было бы неплохо примерчик. спасибо
← →
grom (2004-07-23 14:07) [11]public { Public declarations }
procedure Sys(var M:TMessage);message WM_SYSCOMMAND;
--------------
//wwwwwwwww C L O S E /wwwwwwwww
procedure TForm1.Sys(var M:TMessage);
begin
if M.wParam=SC_CLOSE then begin
........
........
Exit;
end;
inherited;
end;
← →
Zlod3y © (2004-07-23 14:20) [12]
> segor (23.07.04 12:37) [10]
если можно, то скажи что те там делать нада, можно в общих чертах... может наверно и без перекрытия обойтись можно
← →
segor (2004-07-23 14:42) [13]есть форма-класс, от которой наследуются потом все остальные
так вот, одна из задач этой формы - проверять правильность ввода нек. значений в контролах и если что не так - не позволять закрыть форму
← →
segor (2004-07-23 14:43) [14]есть форма-класс, от которой наследуются потом все остальные
так вот, одна из задач этой формы - проверять правильность ввода нек. значений в контролах и если что не так - не позволять закрыть форму
пробовал procedure Sys(var M:TMessage);message WM_SYSCOMMAND;
но она также как и doClose срабатывает ТОЛЬКО на крестике
а надо ВО ВСЕХ случаях! (есть кнопка ОК с ModalResult = mrOK)
← →
segor (2004-07-23 14:45) [15]точнее даже кнопки в ЭТОМ классе нету
все что есть - так это бызовые методы TForm и системные события
← →
Плохиш © (2004-07-23 14:46) [16]
> segor (23.07.04 14:43) [14]
Тебе уже 2 часа назад DK ответил
← →
grom (2004-07-23 15:09) [17]а надо ВО ВСЕХ случаях!
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
CanClose:=false
---------------
Плохиш © (23.07.04 14:46) [16]
> segor (23.07.04 14:43) [14]
Тебе уже 2 часа назад DK ответил
← →
Zlod3y © (2004-07-23 19:14) [18]Наверно уже не в тему.....тут смотрю Query полезли уже
Вопрос то кто нибудь помнит?
в привате объявляешь собственный метод, типа:MyCustomFormClose(Sender: TObject {; тут наверно нужно будет написать что-нить про TAction, но я не уверен});
Потом описываешь метод как любую другую процедуру:procedure MyCustomFormClose(Sender: TObject);
begin
//тыры-пыры
end;
а в formcreate например пишешь:Form1.OnClose:=MyCustomFormClose;
а если что, то потом всё можно вернуть на место:Form1.OnClose:=nil;
← →
segor (2004-07-23 19:52) [19]всем спасибо
как-то я ответ DK просмотрел
все работает
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c