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

Вниз

TrayIcon   Найти похожие ветки 

 
Adolf   (2003-01-19 14:10) [0]

Здравствуйте уважаемые программеры!
----------------------------------------------------------------
Прога сидит в автозапуске...допустим...
----------------------------------------------------------------
...То же, что когда запускаешь прогу, надо чтоб она сразу пряталась в Tray. Без всяких там миганий типа visible:=false или таймеров с интервалом 1...
Пробовал я SW_HIDE в form.activate, и form.create :)) но ошибка сама собой вылазит.
Как быть?


 
neodiX ©   (2003-01-19 14:21) [1]

a ты попробуй сразу форму не создавать. в начале делай свой трей, а потом, когда в трей поступит сообщение, создавай форму


 
Юрий Зотов ©   (2003-01-19 14:35) [2]

> neodiX © (19.01.03 14:21)

Sorry, а Вы не подскажете, что нужно прописать в поле Wnd, если ни одного окна еще нет? И куда будет поступать сообщение, о котором Вы говорите? И что такое "свой трей"? И какие такие сообщения в него поступают?

В общем, sorry once more, но что ни слово, то беда. Зачем такие ответы?


> Adolf

В обработчике OnCreate напишите:
Application.ShowMainForm := False
и там же сажайте в трей свою иконку. Вот и все. А здесь пример:
http://www.delphikingdom.com
(см. раздел "Hello, Woirld!", а в нем - примеры работы с WinAPI).



 
neodiX ©   (2003-01-19 14:48) [3]

2 Юрий Зотов :
program project2;
uses windows, shellapi;
{$R *.res}
var
Inst : Integer;
stray : NOTIFYICONDATA;
Msg : TMsg;
begin
Inst:=hInstance;
Stray.cbSize:=sizeof(NOTIFYICONDATA);
Stray.Wnd:=Inst;
Stray.uID:=7;
Stray.uFlags:=7;
Stray.uCallbackMessage:=$200;
Stray.hIcon:=LoadIcon(inst, "MAINICON");
Stray.szTip:="My prog";
Shell_NotifyIcon(0,@stray);
while (GetMessage(Msg, inst, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
Shell_NotifyIcon(2,@stray);
end.

только я еще не разобрался как сделать что бы иконка в трее не исчезала при наводении мыщи


 
Юрий Зотов ©   (2003-01-19 15:10) [4]

Ну, что ж, комментировать не буду. Думаю, в процессе "разбирания, как сделать что бы иконка в трее не исчезала при наводении мыши" Вы сами поймете, что написали.

Кстати, предстоит разобраться еще и с тем, а как при шелчке по иконке хоть что-нибудь сделать. Тоже поспособствует пониманию.

Могу подсказать: хэндлы - они ведь разные бывают.


 
neodiX ©   (2003-01-19 15:21) [5]


> Могу подсказать: хэндлы - они ведь разные бывают.

Понял. Ну что ж спасибо за поправки, виндо мне еще долго учиться.


 
Adolf   (2003-01-19 22:26) [6]

> Юрий Зотов
Геньяльно!Чтоб я, чайник, делал без ЭТОГО форума?


 
Avenger [NhT]   (2003-01-20 02:19) [7]

Иконка исчезает потомучто нет обработчика сообщений, а хендл форму не обязателен, я делал в своем компоненте так:

constructor TAvlTrayIcon.Create;
begin
WM_TASKBARCREATED := RegisterWindowMessage("TaskbarCreated");
FHandle := AllocateHWnd(WndProcTray);
end;


вот тебе и хендл и проц-а обработки ошибок!


 
Юрий Зотов ©   (2003-01-20 06:05) [8]

> а хендл форму не обязателен

А знаете, у САМОЙ формы ведь и хэндла-то никакого нет. Хэндл есть у ее ОКНА. А хэндл окна - обязателен. Что Вы сами и подтвердили строкой FHandle := AllocateHWnd(WndProcTray).






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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
1-17192
StarCon
2003-02-24 12:36
2003.03.06
ActivX на Delphi


3-16928
MAxiMum
2003-02-16 16:17
2003.03.06
Программное создание пользователя Interbase


3-16950
roadrunner
2003-02-17 09:56
2003.03.06
DBGrid иTitle


3-16880
Кило
2003-02-18 11:28
2003.03.06
Как указать процедуре что она відает множество?


1-17084
ALEXEY SLATE
2003-02-25 16:29
2003.03.06
Поиск в EXCEL