Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Вниз

Хочу прогамму в Tray положить   Найти похожие ветки 

 
Eraser   (2002-02-07 08:57) [0]

Люди добрые не откажите в помощи. Есть код:
const
WM_NOTIFYTRAYICON = WM_USER + 1;

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure WMTRAYICONNOTIFY(var Msg: TMessage);
message WM_NOTIFYTRAYICON;

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

uses ShellAPI;

procedure TForm1.WMTRAYICONNOTIFY(var Msg: TMessage);
var
s: String;
begin
case Msg.LParam of
WM_MOUSEMOVE: s := "Мышь сдвинута";
WM_LBUTTONDOWN: s := "Левая кнопка нажата";
WM_LBUTTONUP: s := "Левая кнопка отпущена";
WM_LBUTTONDBLCLK: s := "Два раза нажата левая кнопка";
WM_RBUTTONDOWN: s := "Правая кнопка нажата";
WM_RBUTTONUP: s := "Правая кнопка отпущена";
WM_RBUTTONDBLCLK: s := "Два раза нажата правая кнопка";
else s := IntToStr(Msg.LParam);
end;
ListBox1.Items.Add(s);
ListBox1.ItemIndex := ListBox1.Items.Count - 1;
end;



procedure TForm1.Button1Click(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile("factory.ico");
with tray do begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_NOTIFYTRAYICON;
hIcon := Ic.Handle;
szTip := ("Это другая иконка");

end;
Shell_NotifyIcon(NIM_MODIFY, Addr(tray));
Ic.Destroy;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
tray: TNotifyIconData;
Ic: TIcon;
begin
Ic := TIcon.Create;
Ic.LoadFromFile("chip.ico");
with tray do begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage := WM_NOTIFYTRAYICON;
hIcon := Ic.Handle;
szTip := ("Это наша иконка");
end;
Shell_NotifyIcon(NIM_ADD, Addr(tray));
Ic.Destroy;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
tray: TNotifyIconData;
begin
with tray do begin
cbSize := SizeOf(TNotifyIconData);
Wnd := Form1.Handle;
uID := 1;
end;
Shell_NotifyIcon(NIM_DELETE, Addr(tray));
end;

хороший код, не спорю. Вопрос в следующем как мне поступить чтобы упрать форму с панели задач при сворачивании , чтобы она была только в tray"е?? И могу ли к иконке приделать что то типа PopupMenu??
И вообще в C++Builder есть компонет TTrayIcon который это все делает может и у Delphi что-то типа такого есть?
Если неохота отвечать то хотя бы дайте ссылку где про это можно почитать!!!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
1-46417
Eugene1501
2002-04-01 14:13
2002.04.15
Работа с редактором


3-46290
mik
2002-03-26 15:05
2002.04.15
Хочу узнать, нет ли в стандарте SQL


6-46470
viol-2
2002-02-04 11:14
2002.04.15
TWebBrowser


3-46277
Vip_Guest
2002-03-20 16:15
2002.04.15
Смена запроса SQL


3-46251
harismatik
2002-03-25 16:57
2002.04.15
Настройка клиента базы данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский