Miten saan laitettua tekemäni ohjelman windowsin
työkalupalkkiin , missä on esim. (kello ja äänet
jne...) silleen, niiku kaikki real playerit jne..
(Minkähänlaista koodia siihe tarvittas, vai
onkohan tuo edes mahdollista) ?
työkalupalkkiin , missä on esim. (kello ja äänet
jne...) silleen, niiku kaikki real playerit jne..
(Minkähänlaista koodia siihe tarvittas, vai
onkohan tuo edes mahdollista) ?
Vastaukset 1
Vanhimmat
jos ei muuten, niin onnistuu Windows:n API
kutsuilla..Alla oleva esimerkkiohjelma toimii
näin...kun ohjelma ajetaan niin sen ikoni löytyy
tehtäväpalkin ilmoitusosassa(TaskbarNotification
area).
Ja kun klikkaat ikonia hiiren oikealla..ikkuna
menee pieneksi, ja kun hiiren vasemmalla.. ikkuna
palaa takaisin oikeaan kokoonsa.
Kannataa tutkia Win32.hlp:tä tarkemmin noita API
kutsuja (löytyy ainakin Delphi3:sta)
Sitten ei muuta kun koodaamaan.
// Lisää USES osaan.. ShellApi
// PUBLIC osaan laitat sitten näin..
procedure IconMessage( var Msg : TMessage );
message WM_USER
100;
// Kun Formi luodaan ja suljetaan,niihin
proseduureihin kirjoitetaan näin
//***********************************************
procedure TForm1.FormCreate(Sender: TObject);
var
nid : TNotifyIconData;
begin
with nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or
NIF_TIP;
uCallbackMessage := WM_USER 100;
hIcon := Application.Icon.Handle;
szTip := 'Klikkaa hiirellä';
end;
Shell_NotifyIcon( NIM_ADD, @nid );
end;
//************************************************
*
procedure TForm1.FormClose(Sender: TObject; var
Action: TCloseAction);
var
nid : TNotifyIconData;
begin
with nid do
begin
cbSize := SizeOf( TNotifyIconData );
Wnd := Form1.Handle;
uID := 1;
end;
Shell_NotifyIcon( NIM_DELETE, @nid );
end;
//************************************************
// Lisäksi luetaan viestejä.. eli näin
//************************************************
*
procedure TForm1.IconMessage( var Msg :
TMessage );
begin
if Msg.lParam = WM_RBUTTONUP then begin
ShowWindow(handle,SW_MINIMIZE)
end else if Msg.lParam = WM_LBUTTONUP then
begin
ShowWindow(handle,SW_RESTORE);
end;
end;
//**********************************************