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

Вниз

RxLib TrayIcon: как убрать из Taskbar   Найти похожие ветки 

 
Oleg Fomicheff   (2002-01-18 13:18) [0]

Поможите плиз!
В RxLib есть компонент TrayIcon: иконку-то он в systray кладет, но из Taskbar кнопку почему-то не убирает :(((.
Как убрать или может я чего не так настроил?
---
Олег.


 
IronHawk   (2002-01-18 13:22) [1]

Он её убирает коды ты сворачиваешь прогу свою !


 
Fellomena   (2002-01-18 13:51) [2]

Все помешались на компонентах, которые иконку в Tray-е рассполагают 8(
Делайте сами - тогда всё можно будет изменить в любом месте:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellApi;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure NotifyIcon(var Msg : TMessage);message WM_USER + 100;
procedure OnMinimizeEvt(Sender : TObject);
procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;

var
Form1: TForm1;
MyMenu1: HMENU;
TrayIcon : TNotifyIconData;

implementation

{$R *.dfm}

procedure TForm1.OnMinimizeEvt(Sender : TObject);
begin
ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.NotifyIcon(var Msg : TMessage);
begin
case Msg.LParam of
WM_LBUTTONDBLCLK :
begin
ShowWindow(Application.Handle,SW_SHOW);
Application.Restore;
end;
WM_RBUTTONDOWN:
begin
Button2.Click;
TrackPopupMenu(MyMenu1, TPM_RIGHTBUTTON, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, Form1.Handle, 0);
end;
end;{case}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TrayIcon.cbSize := SizeOf(TrayIcon);
TrayIcon.Wnd := Form1.Handle;
TrayIcon.uID := 100;
TrayIcon.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
TrayIcon.uCallbackMessage := WM_USER + 100;
TrayIcon.hIcon := Application.Icon.Handle;
TrayIcon.szTip:="Fucking turget to destroy";
Shell_NotifyIcon(NIM_ADD,@TrayIcon);
Application.OnMinimize:= OnMinimizeEvt;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
MyMENUITEMINFO: tagMENUITEMINFO;
begin
with MyMENUITEMINFO do
begin
cbSize:=SizeOf(MENUITEMINFO);
fMask:=MIIM_ID+MIIM_TYPE;
fType:=MFT_STRING;
fState:=MFS_ENABLED;
wID:=1;
hSubMenu:=0;
hbmpChecked:=0;
hbmpUnchecked:=0;
dwItemData:=0;
dwTypeData:="Exit";
end;

MyMenu1:=CreatePopupMenu();
InsertMenuItem(MyMenu1, 0, false, MyMENUITEMINFO);
with MyMENUITEMINFO do
begin
cbSize:=SizeOf(MENUITEMINFO);
fMask:=MIIM_ID+MIIM_TYPE;
fType:=MFT_STRING;
fState:=MFS_ENABLED;
wID:=2;
hSubMenu:=0;
hbmpChecked:=0;
hbmpUnchecked:=0;
dwItemData:=0;
dwTypeData:="ShowMessage";
end;
InsertMenuItem(MyMenu1, 0, false, MyMENUITEMINFO);

end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
TrackPopupMenu(MyMenu1, TPM_RIGHTBUTTON, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, Form1.Handle, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin

if (Msg.message = WM_COMMAND) and (LOWORD(Msg.wParam) = LOWORD(2)) then
begin
ShowMessage("Message recieved");
Handled := True;
end;
if (Msg.message = WM_COMMAND) and (LOWORD(Msg.wParam) = LOWORD(1)) then
begin
Shell_NotifyIcon(NIM_DELETE,@TrayIcon);
Close;
Handled := True;
end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon(NIM_DELETE,@TrayIcon); // ТУТ ТЫ ЕЁ УДАЛЯЕШЬ
end;

end.

Пример самопальный, но работает нормально вроде 8)


 
Oleg Fomicheff   (2002-01-18 13:51) [3]

у меня чего-то не убирает :(((


 
Oleg Fomicheff   (2002-01-18 14:17) [4]

TO Fellomena
>> Все помешались на компонентах, которые иконку в Tray-е
>> рассполагают 8(

ну для постоянно работающих прог - нормально
>> Делайте сами - тогда всё можно будет изменить в любом месте:
я еще не волшебник :((,
я еще только учусь
---
Олег.



 
Logo   (2002-01-18 14:20) [5]

Попробуй на Minimize поставь
ShowWindow(Application.Handle,sw_hide)
у меня так работает


 
Oleg Fomicheff   (2002-01-18 14:33) [6]

я дико извиняюсь, а как это "поставить на minimize"?
это свйоство чего?
у form я такого свойства не нашел :(((


 
IronHawk   (2002-01-18 14:45) [7]

>>> if Application.minimized then ShowWindow(Application.Handle,sw_hide);

ПОНЯЛ !


 
Logo   (2002-01-18 15:24) [8]

У меня так работает!
procedure TForm1.FormCreate(Sender: TObject);
begin
....
Application.OnMinimize:=myPMinimize;
....
end;

procedure TForm1.myPMinimize(Sender: TObject);
begin
....
ShowWindow(Application.Handle,sw_hide);
....
end;



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

Форум: "Основная";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
1-8925
Dmitriy_R
2002-01-15 10:49
2002.02.04
Создание файла?


14-8980
MJH
2001-12-11 15:27
2002.02.04
http://mjh.nm.ru


14-8989
fliz
2001-11-30 11:42
2002.02.04
после установки Дельфи5 вместо иконок компонентов какой-то мусор.Лечится?


3-8748
TAIS
2002-01-02 09:47
2002.02.04
триггер


1-8877
Ольга
2002-01-16 14:37
2002.02.04
ListBox-ы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский