![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте!
Все время писал программы используя стандартные компоненты Delphi и естественно что процедуры создавались на автомате. Но у таких процедур есть один недочет они "отталкиваются" от моей формы ![]() Вот возникла потребность написать собственную процедуру, основываясь на этой коде: Код:
procedure TMainForm.TrayMessage(var Msg: TMessage); begin case Msg.lParam of WM_LBUTTONDOWN: begin ShowMessage('Left button clicked - let''s SHOW the Form!'); MainForm.Show; end; WM_RBUTTONDOWN: begin ShowMessage('Right button clicked - let''s HIDE the Form!'); MainForm.Hide; end; end; end; ![]() Надеюсь на вашу помощь! |
#2
|
|||
|
|||
![]() Я думаю все это осуществимо если найти хендл чужого окна с помощью findwindow
|
#3
|
|||
|
|||
![]() Ну, так у тебя все и есть, что нужно.
По кнопке (там, где ShowMessage стоит) тебе надо проделать операцию, обратную к отправлению в трей с соответсвующим приложением. Ты, когда в трей приклад отправляешь, сохрани его хэндл. И потом по этому хэндлу поднимай из трея... |
#4
|
||||
|
||||
![]() Цитата:
Код:
... HTD:= FindWindow(nil, 'Записки' ); ... procedure TrayMessage(var Msg: TMessage); begin case Msg.lParam of WM_LBUTTONDOWN: begin ShowMessage('Left button clicked - let''s SHOW the Form!'); ShowWindow(HTD, SW_SHOW); end; WM_RBUTTONDOWN: begin ShowMessage('Right button clicked - let''s HIDE the Form!'); ShowWindow(HTD, SW_HIDE); end; end; end; ... ![]() |
#5
|
||||
|
||||
![]() Конечно, не найдёт...
Сохраняй хендл окна в момент его скрытия. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |