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

Вниз

Как развернуть форму???   Найти похожие ветки 

 
RoLeX   (2003-10-15 20:52) [0]

У меня программа сидит в трее. Надо, чтобы при клике на значок в трее программа разворачивалась. Какой командой развернуть прогу??? Может там как-нить Application.Maximaze;
или как там пишется???


 
DVM ©   (2003-10-15 20:53) [1]

WM_SYSCOMMAND + SC_RESTORE
ShowWindow + SW_SHOW
Короче, смотря как прятали.


 
RoLeX   (2003-10-15 20:55) [2]

А код как именно написать???


 
DVM ©   (2003-10-15 21:02) [3]

SendMessage(Application.Handle, WM_SYSCOMMAND, SC_RESTORE, 0);

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


 
RoLeX   (2003-10-15 21:14) [4]

Спасибо, работает!
У меня воросик остался: Как из Панели задач убрать (скрыть) программу???


 
DVM ©   (2003-10-15 21:19) [5]

Можно с помощью SetWindowLong + GWL_EXTSTYLE (подробнее в справке)
Убрать у окна например стиль WS_EX_APPWINDOW если он есть.


 
RoLeX   (2003-10-15 21:37) [6]

У меня справка на английском. Такчто если можно, напиши полный код!!!


 
RoLeX   (2003-10-16 12:32) [7]

АУ!


 
DVM ©   (2003-10-16 12:37) [8]


> У меня справка на английском.

У меня как ни странно тоже. И в школе я немецкий изучал. Но тем не менее справку я прочитать могу. Учиться и еще раз учиться.

Так можно:

SetWindowLong(Application.Handle,GWL_EXSTYLE,GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);

Можно и по-другому.


 
RoLeX   (2003-10-16 12:53) [9]

SetWindowLong(Application.Handle,GWL_EXSTYLE,GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
Всё круто, но когда форму сворачиваешь, над пуском прямоугольник програмы появляется.


 
DVM ©   (2003-10-16 12:58) [10]

Поэкспериментируй со стилями. Таскбар реагирует еще на WS_EX_APPWINDOW. Попробуй его вычесть (or not(WS_EX_APPWINDOW)).
Есть и другие варианты. Можно плюс к тому что ты сделал при сворачивании форму прятать например. Подумай.


 
RoLeX   (2003-10-16 13:15) [11]

С (or not(WS_EX_APPWINDOW)). тоже самое, тока крестик закрытия проги (на этом прямоугольнике) появляется не справа, а слева; и этот прямоугольник ещё и неактивный.
Как его убрать, этот прямоугольник??


 
DVM ©   (2003-10-16 13:19) [12]

Создай для формы обработчик сообщения WM_SYSCOMMAND. Если приходит SC_MINIMIZE то форму пряч. Как создать обработчик сообщения - не спрашивай, есть в любом FAQ.


 
RoLeX   (2003-10-16 15:57) [13]

procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited; if (Msg.wParam = SC_MINIMIZE) then
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
end;


Вот! Он самый код!
Ещё один вопрос: Как сделать, чтобы форма была поверх всех окон?


 
RoLeX   (2003-10-16 15:58) [14]

procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited; if (Msg.wParam = SC_MINIMIZE) then
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
end;


Вот! Он самый код!
Ещё один вопрос: Как сделать, чтобы форма была поверх всех окон?


 
RoLeX   (2003-10-16 16:03) [15]

DVM ну гдеже ты! Ответь: Как сделать, чтобы форма была поверх всех окон?



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

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

Наверх




Память: 0.49 MB
Время: 0.027 c
9-89091
diaz
2002-11-25 22:55
2003.10.27
OpenGL : QUTERNIONS


1-89292
debugger
2003-10-13 13:05
2003.10.27
Компиляция с библиотеками


6-89434
h@1f-e1f
2003-08-26 19:10
2003.10.27
Проблема с функцией InternetQueryDataAvailable


14-89536
Антон
2003-10-09 13:16
2003.10.27
Компонет


14-89480
Rad
2003-10-06 18:24
2003.10.27
Кто-нибудь помнит, кто это пел?