Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
ВнизСобытие сворачивания и закрытия окна Найти похожие ветки
← →
allucard (2007-06-08 12:41) [0]Доброго дня.
Подскажите пожалуйста:
1. Какое событие возникает при сворачивании окна?
2. Как при посылке основной форме команды закрытия, форму не закрыть а только свернуть.
Спасибо.
← →
clickmaker © (2007-06-08 12:48) [1]API или VCL?
для второго - OnClose - Action := caMinimize
← →
Сергей М. © (2007-06-08 12:49) [2]
> 1. Какое событие возникает при сворачивании окна?
>
TApplication.OnMessage
> 2. Как при посылке основной форме команды закрытия, форму
> не закрыть а только свернуть
В обработчике OnCloseQuery основной формы написать
Action := caHide;
← →
Сергей М. © (2007-06-08 12:50) [3]Поправка:
В обработчике OnClose основной формы написать
Action := caMinimize;
← →
novill © (2007-06-08 12:58) [4]> Action := caMinimize;
На D6 это не сработало. Приложение закрылось.
(проверял на новом проекта с одной пустой формой)
← →
clickmaker © (2007-06-08 13:07) [5]в исходниках vcl можно много чего интересного найти
procedure TCustomForm.Close;
if CloseAction <> caNone then
if Application.MainForm = Self then Application.Terminate
else if CloseAction = caHide then Hide
else if CloseAction = caMinimize then WindowState := wsMinimized
else Release;
← →
allucard (2007-06-08 13:10) [6]
> Сергей М. © (08.06.07 12:50) [3]
> В обработчике OnClose основной формы написать
> Action := caMinimize;
В BDS2006 Закрывает приложение.
Как выловить событие сворачивания окна?
← →
allucard (2007-06-08 13:17) [7]
> clickmaker © (08.06.07 13:07) [5]
опа, и как быть?
← →
webpauk (2007-06-08 13:53) [8]private
procedure WMSYS(var Msg: Tmessage); Message WM_SYSCOMMAND;
procedure Tform1.WMSYS(var Msg: Tmessage);
begin
if Msg.Wparam=sc_close then Sendmessage(Handle, WM_SYSCOMMAND, sc_minimize, 0)
else inherited;
end;
← →
allucard (2007-06-08 14:25) [9]Форму всё ещё можно закрыть выбрав закрыть в контекстном меню на панели задач пункт закрыть
← →
allucard (2007-06-08 14:28) [10]как выловить сообщение окну wm_close?
там другая константа не WM_SYSCOMMAND;
← →
clickmaker © (2007-06-08 14:55) [11]эх, зря я что-ли сюда кусок вцл запостил, 3 минуты рабочего времени потерял? :)
оттуда же видно, что при caNone VCL ничего делать не будет. Потому пишем так:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
end;
← →
novill © (2007-06-08 15:02) [12]Отвечая на
> 2. Как при посылке основной форме команды закрытия, форму
> не закрыть а только свернуть.procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=false;
Application.Minimize;
end;
← →
allucard (2007-06-09 12:09) [13]Всем спасибо.
Работает.
> clickmaker © (08.06.07 14:55) [11]
Тебе отдельное:)
← →
allucard (2007-06-14 16:19) [14]Извините что так безпардонно - но хочется продолжить:
Все ваши методы безусловно работают, но окно всё ещё можно закрыть в контекстном меню на панели задач.
Как выловить что-ли глобальное сообщение сообщение закрытия???
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c