Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1165303261
Михаил, Тюмень
2006-12-05 10:21
2007.07.08
Проблема с вложениями при отправке почты


2-1181482114
golik
2007-06-10 17:28
2007.07.08
экспорт в Excel!!!!!!!!!!!!!


15-1181043121
@!!ex_
2007-06-05 15:32
2007.07.08
Web Camera + TV


1-1178351020
nali
2007-05-05 11:43
2007.07.08
Ошибка при запуске делфи


15-1181023046
vajo
2007-06-05 09:57
2007.07.08
Excel 2003. Число прописью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский