Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];
Внизиконки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c