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

Вниз

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

 
hahol   (2007-06-12 20:17) [0]

у меня вот какая проблема - когда мое приложение сворачивается в tray  то иконка не прорисовывается
вернее прорисовывается но какаято пустая ,просто в трее появляется кусок пустого места с которым можно производить действия но иконки как токовой нет.
помогите плз.


 
Rouse_ ©   (2007-06-13 09:57) [1]

И как тебе помочь? Код покажи? Хотя ошибка у тебя явно в том что описатель иконки передаешь неверный в структуру или вообще не передаешь :)


 
hahol   (2007-06-13 12:59) [2]

...
var
 myclose:boolean=false;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var st:string;
   instance:thandle;
   cdsize:integer;
begin
if myclose=false then
begin
canclose:=false;{не закрываем}
myclose:=true;{а при следующем закроем}
fhandle:=allocateHwnd(WndProc);{получем дискриптор окна}
Hicon1:=(application.icon.hendle);{получем дискриптор иконки}
with noiconData do
begin
cdsize:=sizeof(tnotifyicondata);{размер структуры}
wnd:=fhandle;{размер структуры}
uid:=0;{т.к. единственная иконка}
uflags:=nif_message or nif_tip;{взводим все флаги}
sztip:="slide_show";{подсказка}
hicon:=hicon1;{дискриптор иконки}
ucallbackmessage:=ico_message;{определяемое пользователем сообщение}
end;
shell_notifyicon(nim_add,@noicondata);{создали иконку}
form1.Hide;
end else {если окно закрыть , т.е. если myclose=true}
begin
DeallocateHWnd(fhandle); {убераем из памяти дискриптор окна}
shell_Notifyicon(nim_delete,@noicondata);{удаляем иконку}
canclose:=true;{можно закрыть}
end;
end;

procedure TForm1.wndproc(var message: tmessage);
begin
if message.Msg = ico_message then
begin
if message.LParam=wm_lbuttonup then
begin
myclose:=false;
form1.Show;
application.BringToFront;
deallocatehwnd(fhandle);
shell_notifyicon(nim_delete,@noicondata);
application.ProcessMessages;
end;
if message.LParam=wm_rbuttonup then
form1.PopupMenu1.Popup(screen.Width-50,screen.Height-5);
end;
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
setforegroundWindow(form1.Handle);
end;

procedure TForm1.N11Click(Sender: TObject);
begin
myclose:=false;
form1.Show;
application.BringToFront;
deallocateHwnd(Fhandle);
shell_notifyicon(nim_Delete,@noicondata);
application.ProcessMessages;
end;


 
Rouse_ ©   (2007-06-13 23:20) [3]


> hicon:=hicon1;{дискриптор иконки}

Hicon1:=(application.icon.hendle); - это что за зверь?


 
hahol   (2007-06-14 11:17) [4]

ну апечатался немного
application.icon.handle  {дискриптор иконки}



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
3-1176281444
Pavel Kuznecov
2007-04-11 12:50
2007.07.08
Ibase-Column unknown когда есть Parameter


15-1181192055
@!!ex_
2007-06-07 08:54
2007.07.08
Валидность указателя.


6-1165749827
DriveR_F
2006-12-10 14:23
2007.07.08
Indy и JavaScript


2-1181866938
delphino
2007-06-15 04:22
2007.07.08
Подскажите как можно сделать


15-1181228346
oldman
2007-06-07 18:59
2007.07.08
Стоит ли менять работу?