Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

Убрать кнопку приложения с Task Bar   Найти похожие ветки 

 
DJ Kondakov   (2009-11-25 22:08) [0]

Доброго времени суток! У меня вопрос возник. Делаю нечто вроде резидентной программы. Нужно, чтобы вместо кнопки на панели задач была иконка в 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.

Проблема та же - приложение запускается свернутым и без кнопки.


 
korneley ©   (2009-11-26 03:21) [1]

"запуздырить в трей?" Не надо так. Пожалейте. Хотя:

> а мне надо, чтобы главное окно постоянно держалось открытым

Это как? Неубиенное приложение - мечта девочки подростка?


 
DJ Kondakov   (2009-11-26 05:18) [2]

Почему "неубиенное"? Приложение закрывается как обычно, кнопкой "Закрыть". Просто мне надо, чтобы в развернутом состоянии оно не имело кнопки на панели задач.Так могут делать многие плееры, например Винамп и Аимп.


 
brother ©   (2009-11-26 05:26) [3]

в FormActivate:
procedure TForm1.FormActivate(Sender: TObject);
begin
 ShowWindow(Application.Handle, SW_HIDE);
end;

у меня все отрабатывает как надо (D6, XP)...
зы каким компонентом добавляешь иконку в трей? некоторые компоненты, скрытие/ показ осуществляют сами, копай исходники...


 
DJ Kondakov   (2009-11-26 05:27) [4]

Я не компонентом пользуюсь, а работаю с TNotifyIcon.


 
brother ©   (2009-11-26 05:43) [5]

[3] код попробовал? какова реакция?


 
Юрий Зотов ©   (2009-11-26 05:54) [6]

> 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


 
Alex_C   (2009-11-26 08:25) [7]

Читать тут

http://delphimaster.net/view/2-1257749650/

А ответ вот:

// Чтоб не было видно на панели задач
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) [8]


> в FormActivate:
> procedure TForm1.FormActivate(Sender: TObject);
> begin
>  ShowWindow(Application.Handle, SW_HIDE);
> end;
> у меня все отрабатывает как надо (D6, XP)...


Не работает это как надо... См. ссылку на тему выше!


 
sniknik ©   (2009-11-26 09:49) [9]

> Не работает это как надо... См. ссылку на тему выше!
это работает как надо, от твоих повторений, что оно не работает, работать не перестает.... проблема не в этом, а скорее в зеркале
кстати зачем ты все повторяешь если уже "нашел" ответ в "английком" форуме
http://delphimaster.net/view/2-1257749650/
?


 
DJ Kondakov   (2009-11-26 15:48) [10]

Спокойно, ребята, спокойно... Все уже работает (спасибо brother"у). Юрий Зотов, совет я взял отсюда: http://www.mydelphi.info/code/142


 
Юрий Зотов ©   (2009-11-26 18:54) [11]

> DJ Kondakov   (26.11.09 15:48) [10]
> совет я взял отсюда: http://www.mydelphi.info/code/142

Дело Ваше, но это плохой совет.


 
DJ Kondakov   (2009-11-26 19:21) [12]

Да я уже и сам понял, что плохой, ибо он не работал так, как мне надо)


 
Юрий Зотов ©   (2009-11-26 20:13) [13]

> DJ Kondakov   (26.11.09 19:21) [12]

Я не понимаю, почему бы не использовать ссылку из [6] ? Там все просто и все работает - это проверено, наверное, уже сотнями людей.


 
DJ Kondakov   (2009-11-27 04:24) [14]

Хотя бы потому, что (повторяю) все уже работает как надо)



Страницы: 1 вся ветка

Текущий архив: 2010.01.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
15-1258483044
0x00FF00
2009-11-17 21:37
2010.01.17
Excel, массив длины N из одного элемента


2-1258705344
Мишаня
2009-11-20 11:22
2010.01.17
Как узнать курс валют?


15-1258398854
_
2009-11-16 22:14
2010.01.17
Клавиатура отказывает.


2-1258718046
Сергей
2009-11-20 14:54
2010.01.17
Как взять последнее имя папки?


15-1258409121
Германн
2009-11-17 01:05
2010.01.17
Клиент ДМ