| | |
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
Autor | Správa |
---|
Registrovaný: 21.12.08 Prihlásený: 14.07.16 Príspevky: 114 Témy: 21 | Napísal ha2: 01.02.2010 1:52 | |
|
Robim v D2009 pre .NET a nedari sa mi minimalizovat aplikaciu do tray. Nasiel som nato funkcny kod ktory mi v D7 ide ale v 2009 uz nie. Mate stym skusenost? Nasiel som toho teda viac ale neslo to.
Ide mi hlavne o vytvorenie ikonky, minimalizovanie a skrytie z pruhu problem nieje.
|
|
Registrovaný: 11.01.09 Prihlásený: 28.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 01.02.2010 11:39 | |
|
Používal si hotové komponenty, alebo si skúšal aj API funkcie? Skús aj tento kód (i keď vravíš, že si skúšal už viac spôsobov, skús ešte tento):
Kód: uses (* ... *), ShellAPI;
type TForm1 = class(TForm) //... procedure WndProc(var Message: TMessage); override; // toto pripíš medzi ostatné funkcie private IconNotifyData : TNotifyIconData; { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WndProc(var Message: TMessage); begin
case Message.Msg of WM_SYSCOMMAND: case Message.WParam and $FFF0 of SC_MINIMIZE: begin Hide; Exit; end; SC_RESTORE: ; end; WM_USER + 1: if (Message.LParam = WM_LBUTTONDOWN) then Show; end;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject); begin
with IconNotifyData do begin hIcon := Application.Icon.Handle; uCallbackMessage := WM_USER + 1; cbSize := sizeof(IconNotifyData); Wnd := Handle; uID := 100; uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; end;
StrPCopy(IconNotifyData.szTip, Application.Title); Shell_NotifyIcon(NIM_ADD, @IconNotifyData); Application.ShowMainForm := False; SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;
|
|
Registrovaný: 21.12.08 Prihlásený: 14.07.16 Príspevky: 114 Témy: 21 | Napísal autor témy ha2: 01.02.2010 12:15 | |
|
Kód: [DCC Error] Unit1.pas(58): E2003 Undeclared identifier: 'StrPCopy'
ShellAPI som samozrejme pripojil
|
|
Registrovaný: 11.01.09 Prihlásený: 28.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 01.02.2010 12:24 | |
|
Funkcia StrPCopy sa nachádza v unite SysUtils.
// túto funkciu aj tak môžeš vynechať, tá len skopíruje názov aplikácie to popisku tray ikony
|
|
Registrovaný: 21.12.08 Prihlásený: 14.07.16 Príspevky: 114 Témy: 21 | Napísal autor témy ha2: 01.02.2010 12:45 | |
|
Kód: //StrPCopy(IconNotifyData.szTip, Application.Title); //Shell_NotifyIcon(NIM_ADD, @IconNotifyData); musel som to takto, ale kvoli tomu druhemu komentu asi nemam ikonu dole ze A naten 2. riadok to pise toto Kód: [DCC Error] Unit1.pas(59): E2396 Unsafe code only allowed in unsafe procedure
|
|
Registrovaný: 21.12.08 Prihlásený: 14.07.16 Príspevky: 114 Témy: 21 | Napísal autor témy ha2: 01.02.2010 14:21 | |
|
|
|
Registrovaný: 11.01.09 Prihlásený: 28.03.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 01.02.2010 15:53 | |
|
ha2 píše: A na ten 2. riadok to pise toto Kód: [DCC Error] Unit1.pas(59): E2396 Unsafe code only allowed in unsafe procedure Sem sa rieši, ako kompilovať pre .NET , ale s tým ja nemám skúsenosti. ha2 píše: nasiel som toto, ale neviem sa ztoho vysomarit Kód: http://www.swissdelphicenter.ch/torry/showcode.php?id=1303
V tom príklade je toho strašne veľa nepodstatného - v mojom poste som sa snažil dať len dôležité veci (to okomentovanie posledného riadku ti nepomôže, lebo ako si napísal, nebudeš mať dolu ikonu )
|
|
Registrovaný: 21.12.08 Prihlásený: 14.07.16 Príspevky: 114 Témy: 21 | Napísal autor témy ha2: 01.02.2010 22:47 | |
|
D2009 ma komponentu TrayIcon. co viac dodat...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 8 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|