![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Конечно, не найдёт...
Сохраняй хендл окна в момент его скрытия. |