![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про TrayIcon [Delphi, Windows]
Юрий_К © (2007-11-22 15:18:00)Пример скачал с TrayIcon, но там реально ничего нет. Хотел сделать, что если нажимаем на 'X' форме, то чтобы форма становилась невидимой. Обратно видимой должна будет становиться при клике на иконку в трее. Но почему то в FormCloseQuery не попадаем пр отработке кода.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
ShowWindow(Applet.Handle, SW_HIDE);
//if Form.Active then Form.Hide;
end;
procedure TForm1.btnButton1Click(Sender: PObj);
begin
ShowWindow(Applet.Handle, SW_HIDE);
end;
В btnButton1Click попадаем, а в FormCloseQuery нет. Что нужно сделать?
Что раньше в VCL проекте делалось: если TrayIcon1.Active то прячем окно при нажатии на 'x' на форме.
if not TrayIcon1.Active then begin
...
end else begin
CanClose := False;
ShowWindow(Application.Handle, SW_HIDE);
if Active then Hide;
end;
Golem (2007-11-26 22:00:00) [1]эээ, не понял...
Dimaxx (2007-11-25 16:25:00) [2]Restore?
Golem (2007-11-25 16:21:00) [3]Еще вопрос:
при нажатии на кнопку "Х" сворачивается в трей нормально, а вот при нажатии "_" сворачивается в трей и на панель задач выскакивает кнопка проги (первоначально ее не было applet скрыт в onMinimize стоит applet.hide; form.hide;). после разворачивания проги из трея и повторного сворачивания с помощью "_", кнопка с панели задач исчезает и больше не появляется.
Как заставить не появляться кнопку на панели задач после первого сворачивания с помощью "_" ???
Юрий_К (2007-11-22 18:06:00) [4]ОК. К чему пришли:
procedure TForm1.MainFormClose(Sender: PObj; var Accept: Boolean);
begin
if (Applet.Visible) then
begin
Accept := False;
Form.Hide;
Applet.Hide;
end;
end;
procedure TForm1.TrayIconMouse(Sender: PObj; Message: Word);
begin
if not Applet.Visible then
if (Message = WM_LBUTTONDBLCLK) then
begin
Applet.Show;
Form.Show;
end;
end;
Дмитрий К (2007-11-22 16:57:00) [5]
> Правильно ли я мыслю? Чтобы на панели задач не было формы,
> нужно главное окно невидимым делать, а работать со второй
> формой, все нужные компоненты там распологать.
Если нету KOLApplet, добавь. Его и прячь. Applet отвечает за кнопку на панели задач.
Юрий_К (2007-11-22 16:45:00) [6]Похоже я не то событие вызвал:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Нужно было с компоненты KOLForm:
TForm1.MainFormClose(Sender: PObj; var Accept: Boolean)
Правильно ли я мыслю? Чтобы на панели задач не было формы, нужно главное окно невидимым делать, а работать со второй формой, все нужные компоненты там распологать.
Юрий_К (2007-11-22 16:27:00) [7]"Dimaxx © (22.11.07 15:54) [3]
Ловить в OnMessage нажатие правой кнопки и выводить меню ручками."
Спасибо за ответ. Вот такое и должно было бы быть в примере про KOLTrayIcon. А то там всего лишь на форму помещена компонента KOLTrayIcon и всего лишь. Ради чего такой пример выставлять, не понятно.
Dimaxx (2007-11-22 15:54:00) [8]Ловить в OnMessage нажатие правой кнопки и выводить меню ручками.
Юрий_К (2007-11-22 15:50:00) [9]И ещё один вопрос. Тот TrayIcon, что в VCL проектах использовал, содержал свойство "PopupMenu", в KOLTrayIcon этого нет. Как PopupMenu привязывать к KOLTrayIcon?
Юрий_К (2007-11-22 15:44:00) [10]Что нужно сделать, чтобы в панели задач внизу убрать "формочку" от приложения при сворачивании. Чтобы только иконка оставалась в трее? Может ли кто подсказать?
Пока такой код есть:
procedure TForm1.btnButton1Click(Sender: PObj);
begin
if Form.Visible then Form.Hide;
end;
procedure TForm1.TrayIcon1Mouse(Sender: PObj; Message: Word);
begin
if not Form.Visible then
if (Message = WM_LBUTTONDBLCLK) then
Form.Show;
end;