-
Доброго времени суток! У меня вопрос возник. Делаю нечто вроде резидентной программы. Нужно, чтобы вместо кнопки на панели задач была иконка в SystemTray. Иконку я реализовал, а вот скрыть кнопку не получается - приложение сворачивается полностью, а мне надо, чтобы главное окно постоянно держалось открытым. Что делать? Пытался гуглить, нашел такой пример: Ваш файл проекта должен выглядеть приблизительно так:
program Project1;
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' ,
Unit2 in 'Unit2.pas' ;
begin
Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
ShowWindow(Application.Handle, SW_HIDE);
Application.Run;
end.
В разделе "initialization" (в самом низу) каждого unit'а добавьте
begin
ShowWindow(Application.Handle, SW_HIDE);
end. Проблема та же - приложение запускается свернутым и без кнопки.
-
"запуздырить в трей?" Не надо так. Пожалейте. Хотя:
> а мне надо, чтобы главное окно постоянно держалось открытым
Это как? Неубиенное приложение - мечта девочки подростка?
-
Почему "неубиенное"? Приложение закрывается как обычно, кнопкой "Закрыть". Просто мне надо, чтобы в развернутом состоянии оно не имело кнопки на панели задач.Так могут делать многие плееры, например Винамп и Аимп.
-
в FormActivate: procedure TForm1.FormActivate(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end; у меня все отрабатывает как надо (D6, XP)... зы каким компонентом добавляешь иконку в трей? некоторые компоненты, скрытие/ показ осуществляют сами, копай исходники...
-
Я не компонентом пользуюсь, а работаю с TNotifyIcon.
-
[3] код попробовал? какова реакция?
-
> DJ Kondakov (25.11.09 22:08) > Пытался гуглить, нашел такой пример: > В разделе "initialization" (в самом низу) каждого unit'а добавьте > begin > ShowWindow(Application.Handle, SW_HIDE); > end.Елы-палы!!! Это что же за советчик такие советы дает? > Нужно, чтобы вместо кнопки на панели задач была иконка в > SystemTray. Иконку я реализовал, а вот скрыть кнопку не получается - > приложение сворачивается полностью, а мне надо, чтобы главное окно > постоянно держалось открытым. Что делать?Не использовать сторонние компоненты и странные (мягко говоря) советы, а вместо них реализовать нужное поведение самому. Это несложно: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=903
-
Читать тут http://pda.delphimaster.net/?id=1257749650&n=18А ответ вот:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TCWForm, CWForm);
Application.Run;
-
> в FormActivate: > procedure TForm1.FormActivate(Sender: TObject); > begin > ShowWindow(Application.Handle, SW_HIDE); > end; > у меня все отрабатывает как надо (D6, XP)...
Не работает это как надо... См. ссылку на тему выше!
-
> Не работает это как надо... См. ссылку на тему выше! это работает как надо, от твоих повторений, что оно не работает, работать не перестает.... проблема не в этом, а скорее в зеркале кстати зачем ты все повторяешь если уже "нашел" ответ в "английком" форуме http://pda.delphimaster.net/?id=1257749650&n=18?
|