Súgó - Keresés - Tagok - Naptár
Teljes változat: Tálcaikon (TrayIcon)
PC WORLD Segélyvonal > SZOFTVER > Programozás > Delphi
marcee5
Szeretnék a programomhoz Tálcaikont készíteni és rákantintáskor jöjjön elő egy pop-up menü. Próbálkoztam sokszor, de nem találok se parancsot, se ilyen segédkomponenst. Középhaladó vagyok a Delphiben. előre is köszi.
google
Ez elég gáz, mert állítólag Windows-apikat kell meghívni hozzá. Szóval nem egyszerű feladat. Egy komponenssel nem lehet megoldani.
marcee5
És más nyelvben? Basic, C++, C#?
google
Azt megmondom őszintén, nem tudom, de gyanítom, hogy igen.
arpsoft
Itt van egy free vcl hozzá.
Van itt egyébként még egyéb sokminden más is:
http://www.delphi32.com/vcl/630/
Menyus
IDÉZET(google @ 2005. Jun 05., Sun 11:00)
Ez elég gáz, mert állítólag Windows-apikat kell meghívni hozzá. Szóval nem egyszerű feladat. Egy komponenssel nem lehet megoldani.

Sziasztok,

A probléma megoldása pofonegyszerű, mind a Torry -n lehet találni 600 ilyen komponenst, mind van ilyen az általam kedvelt RxLib-ben, és van a Jedi komponenscsomagban is.

Menyus
nobilis
IDÉZET(marcee5 @ 2005. június 4. 22:49) *
Szeretnék a programomhoz Tálcaikont készíteni és rákantintáskor jöjjön elő egy pop-up menü. Próbálkoztam sokszor, de nem találok se parancsot, se ilyen segédkomponenst. Középhaladó vagyok a Delphiben. előre is köszi.



NA IDE IS BEKERÜL A SZORSZ... laughing.gif laughing.gif

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, Menus;

type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
item11: TMenuItem;
item21: TMenuItem;
item31: TMenuItem;
item41: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
TrayIcon: TNotifyIconData;
procedure WndProc(var Msg: TMessage); override;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WndProc(var Msg: TMessage);

var p : TPoint;

begin
case Msg.Msg of WM_USER + 1 : //az üzenet azonosítója
case Msg.LParam of
WM_RBUTTONDOWN : //kattintás az egér jobb gombjával
begin
GetCursorPos(p); //a kurzor pozíciója a kattintáskor
PopupMenu1.Popup(p.x,p.y); //a menü kinyitása
end;
WM_LBUTTONDBLCLK : //bal dupla-kattintás
begin
Form1.Show;
end;
WM_LBUTTONDOWN : //kattintás az egér bal gombjával;
end;
end;
inherited; //a le nem kezelt üzenetek elintéztetése
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
with TrayIcon do
begin
cbSize := SizeOf(TrayIcon);
Wnd := Handle; {A FőForm Handle-je }
uId := 100;
uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
uCallBackMessage := WM_USER + 1;{A Formnak küldött üzenet azonosítója}
hIcon := Application.Icon.Handle; {A megjelenítendő ikon Handle-je}
szTip := 'Az ikonhoz tartozó tipp...'; {Az ikonhoz tartozó tipp}
end;
Shell_NotifyIcon(NIM_ADD, @TrayIcon); {A függvény meghívása}

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE, @TrayIcon);
end;

end.
Ez a tartalom egy lebutítottváltozata. A teljes változat képekkel kiegészült megtekintéséhez kérünk, kattints ide.