![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать кнопку приложения с Task Bar
DJ Kondakov © (2009-11-25 22:08:00)Доброго времени суток! У меня вопрос возник. Делаю нечто вроде резидентной программы. Нужно, чтобы вместо кнопки на панели задач была иконка в SystemTray. Иконку я реализовал, а вот скрыть кнопку не получается - приложение сворачивается полностью, а мне надо, чтобы главное окно постоянно держалось открытым. Что делать? Пытался гуглить, нашел такой пример:
Ваш файл проекта должен выглядеть приблизительно так:
program Project1;
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
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.
Проблема та же - приложение запускается свернутым и без кнопки.
DJ Kondakov (2009-11-27 04:24:00) [1]Хотя бы потому, что (повторяю) все уже работает как надо)
Юрий Зотов (2009-11-26 20:13:00) [2]> DJ Kondakov (26.11.09 19:21) [12]
Я не понимаю, почему бы не использовать ссылку из [6] ? Там все просто и все работает - это проверено, наверное, уже сотнями людей.
DJ Kondakov (2009-11-26 19:21:00) [3]Да я уже и сам понял, что плохой, ибо он не работал так, как мне надо)
Юрий Зотов (2009-11-26 18:54:00) [4]> DJ Kondakov (26.11.09 15:48) [10]
> совет я взял отсюда: http://www.mydelphi.info/code/142
Дело Ваше, но это плохой совет.
DJ Kondakov (2009-11-26 15:48:00) [5]Спокойно, ребята, спокойно... Все уже работает (спасибо brother'у). Юрий Зотов, совет я взял отсюда: http://www.mydelphi.info/code/142
sniknik (2009-11-26 09:49:00) [6]> Не работает это как надо... См. ссылку на тему выше!
это работает как надо, от твоих повторений, что оно не работает, работать не перестает.... проблема не в этом, а скорее в зеркале
кстати зачем ты все повторяешь если уже "нашел" ответ в "английком" форуме
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1257749650&n=18
?
Alex_C (2009-11-26 08:25:00) [7]Читать тут
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1257749650&n=18
А ответ вот:
// Чтоб не было видно на панели задач
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
Application.Initialize;
// Чтобы скрыть главную форму при загрузке
Application.ShowMainForm := False;
Application.CreateForm(TCWForm, CWForm);
Application.Run;
Alex_C (2009-11-26 08:25:00) [8]
> в FormActivate:
> procedure TForm1.FormActivate(Sender: TObject);
> begin
> ShowWindow(Application.Handle, SW_HIDE);
> end;
> у меня все отрабатывает как надо (D6, XP)...
Не работает это как надо... См. ссылку на тему выше!
Юрий Зотов (2009-11-26 05:54:00) [9]> 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
brother (2009-11-26 05:43:00) [10][3] код попробовал? какова реакция?
DJ Kondakov (2009-11-26 05:27:00) [11]Я не компонентом пользуюсь, а работаю с TNotifyIcon.
brother (2009-11-26 05:26:00) [12]в FormActivate:
procedure TForm1.FormActivate(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;
у меня все отрабатывает как надо (D6, XP)...
зы каким компонентом добавляешь иконку в трей? некоторые компоненты, скрытие/ показ осуществляют сами, копай исходники...
DJ Kondakov (2009-11-26 05:18:00) [13]Почему "неубиенное"? Приложение закрывается как обычно, кнопкой "Закрыть". Просто мне надо, чтобы в развернутом состоянии оно не имело кнопки на панели задач.Так могут делать многие плееры, например Винамп и Аимп.
korneley (2009-11-26 03:21:00) [14]"запуздырить в трей?" Не надо так. Пожалейте. Хотя:
> а мне надо, чтобы главное окно постоянно держалось открытым
Это как? Неубиенное приложение - мечта девочки подростка?