Главная страница
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.021 c
2-1181835730
SerMaxx
2007-06-14 19:42
2007.07.08
Работа с Exel из Delphi


15-1181286784
Andy BitOff
2007-06-08 11:13
2007.07.08
Две недели в Анапе.


2-1181651975
Kolan
2007-06-12 16:39
2007.07.08
FormResize срабатывает при закрытии приложения, как избежать?


15-1180993198
Kostafey
2007-06-05 01:39
2007.07.08
К вопросу практических расчетов надежности Hardware/Software


15-1181277895
boriskb
2007-06-08 08:44
2007.07.08
Чуство справедливости