-
Юрий_К (22.11.07 15:18) [0]Пример скачал с 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; -
Юрий_К (22.11.07 15:44) [1]Что нужно сделать, чтобы в панели задач внизу убрать "формочку" от приложения при сворачивании. Чтобы только иконка оставалась в трее? Может ли кто подсказать?
Пока такой код есть: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; -
Юрий_К (22.11.07 15:50) [2]И ещё один вопрос. Тот TrayIcon, что в VCL проектах использовал, содержал свойство "PopupMenu", в KOLTrayIcon этого нет. Как PopupMenu привязывать к KOLTrayIcon?
-
Dimaxx © (22.11.07 15:54) [3]Ловить в OnMessage нажатие правой кнопки и выводить меню ручками.
-
Юрий_К (22.11.07 16:27) [4]"Dimaxx © (22.11.07 15:54) [3]
Ловить в OnMessage нажатие правой кнопки и выводить меню ручками."
Спасибо за ответ. Вот такое и должно было бы быть в примере про KOLTrayIcon. А то там всего лишь на форму помещена компонента KOLTrayIcon и всего лишь. Ради чего такой пример выставлять, не понятно. -
Юрий_К (22.11.07 16:45) [5]Похоже я не то событие вызвал:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Нужно было с компоненты KOLForm:
TForm1.MainFormClose(Sender: PObj; var Accept: Boolean)
Правильно ли я мыслю? Чтобы на панели задач не было формы, нужно главное окно невидимым делать, а работать со второй формой, все нужные компоненты там распологать. -
Дмитрий К © (22.11.07 16:57) [6]
> Правильно ли я мыслю? Чтобы на панели задач не было формы,
> нужно главное окно невидимым делать, а работать со второй
> формой, все нужные компоненты там распологать.
Если нету KOLApplet, добавь. Его и прячь. Applet отвечает за кнопку на панели задач. -
Юрий_К (22.11.07 18:06) [7]ОК. К чему пришли: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; -
Golem (25.11.07 16:21) [8]Еще вопрос:
при нажатии на кнопку "Х" сворачивается в трей нормально, а вот при нажатии "_" сворачивается в трей и на панель задач выскакивает кнопка проги (первоначально ее не было applet скрыт в onMinimize стоит applet.hide; form.hide;). после разворачивания проги из трея и повторного сворачивания с помощью "_", кнопка с панели задач исчезает и больше не появляется.
Как заставить не появляться кнопку на панели задач после первого сворачивания с помощью "_" ??? -
Dimaxx © (25.11.07 16:25) [9]Restore?
-
Golem (26.11.07 22:00) [10]эээ, не понял...