Форум: "WinAPI";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c