ďťż

Ładny brzuch

W jakimś ekspercie był podany kod ale u mnie on nie działa :D Więc tak: chce aby np. po kliknięciu MINIMALIZACJA program się chował do tray'a. Potem z tamtą by można wybrać np. odpowiednie opcje :) Mam nadzięję, że wiecie o co chodzi :D



http://forum.4progra...hp?id=59844&p=0

private procedure ShellNotify(var msg:tmessage); message WM_SHELLNOTIFY; procedure DoTraya(var msg : TMessage); message WM_SYSCOMMAND; end; var Form1: TForm1; m:integer; n:notifyicondata; const IDI_TRAY=0; IDM_RESTORE=1000; IDM_HIDE=1005; IDM_EXIT=1010; implementation {$R *.dfm} procedure TForm1.DoTraya(var msg: TMessage); begin if msg.Msg=WM_SYSCOMMAND then begin case msg.WParam of SC_MINIMIZE:Hide; SC_CLOSE:Close; IDM_HIDE:Hide; IDM_RESTORE:Show; end; end; end; procedure TForm1.ShellNotify; var p:tpoint; begin if msg.WParam=IDI_TRAY then if msg.LParam=WM_RBUTTONDOWN then begin GetCursorPos(p); TrackPopupMenu(m,TPM_RIGHTALIGN,p.X,p.Y,0,handle,nil); end else if msg.LParam=WM_LBUTTONDBLCLK then Show; end; procedure TForm1.FormCreate(Sender: TObject); begin sp.Opened:=true; m:=CreatePopupMenu; AppendMenu(m,MF_STRING,IDM_HIDE,'Schowaj'); AppendMenu(m,MF_STRING,IDM_RESTORE,'Przywróć'); AppendMenu(m,MF_STRING,IDM_EXIT,'Zamknij'); n.cbSize:=sizeof(notifyicondata); n.Wnd:=handle; n.uID:=IDI_TRAY; n.uFlags:=NIF_ICON+NIF_MESSAGE+NIF_TIP; n.uCallbackMessage:=WM_SHELLNOTIFY; n.hIcon:=LoadIcon(0,IDI_INFORMATION); Shell_NotifyIcon(NIM_ADD,@n); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin sp.Opened:=false; Shell_NotifyIcon(NIM_DELETE,@n); end;
Użytkownik Cyrkiel edytował ten post 21 kwiecień 2005, 19:00
@Cyrkiel To jest cały kod chowania do tray'a ? :)


@Cyrkiel To jest cały kod chowania do tray'a ? :)
Strasznie zamotasny ten mój kod (jak zwykle), lepiej poradź się 4p ;)



To chyba jest kod na dodanie ikonki, ale jak jestes leniwy to se sciagnij i zainstaluj ktorys z komponentow http://www.torry.net/pages.php?id=245

Nie lepiej użyć komponentu CoolTray i w opcjach MinimizeToTray przełączyć na True i problem zgłowy :)


Nie lepiej użyć komponentu CoolTray i w opcjach MinimizeToTray przełączyć na True i problem zgłowy :)

Component -> Install Component

function MinimizeToTray(Handle: HWND): Boolean; var    hwndTray: HWND;  rcWindow: TRect;  rcTray: TRect; begin    if IsWindow(Handle) then  begin        hwndTray := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil);        if (hwndTray = 0) then            Result := False    else    begin            GetWindowRect(Handle, rcWindow);      GetWindowRect(hwndTray, rcTray);            DrawAnimatedRects(Handle, IDANI_CAPTION, rcWindow, rcTray);          ShowWindow(Handle, SW_HIDE);    end;  end  else        Result := False; end; procedure TForm1.Button1Click(Sender: TObject); begin  MinimizeToTray(Handle); end;

O to chodzi :o

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •