Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
1-89270
ИМХО
2003-10-13 11:40
2003.10.27
PowerPoint


14-89547
Nik8.
2003-10-10 08:31
2003.10.27
Глюки с прорисовкой в listview


1-89231
Lam
2003-10-15 11:08
2003.10.27
Путь


3-89164
rosl
2003-10-07 03:34
2003.10.27
sql


3-89112
Василий
2003-10-08 12:07
2003.10.27
Конвертация PL/SQL в Transact-SQL




   Наверх