unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, JvComponent, JvTrayIcon, StdCtrls; (*для rxlib переделать JvComponent, JvTrayIcon*)

type
  TForm1 = class(TForm)
    Button1: TButton;
    JvTrayIcon1: TJvTrayIcon;(*для rxlib нужно написать кажется JvTrayIcon1:rxTrayIcon *)
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure JvTrayIcon1Click(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R Resourse\MYRES.RES} //Подключаем файл с ресурсами

procedure LoadICO;
var ResHandle: THandle; MemHandle: THandle;MemStream: TMemoryStream;ResPtr: PByte;ResSize: Longint;
begin
with form1 do
begin
ResHandle := FindResource(hInstance,'MYICO' , 'MYFOLDER');
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
FreeResource(MemHandle);
MemStream.Seek(0, 0);
(*!!!!!*) JvTrayIcon1.icon.LoadFromStream(MemStream);
MemStream.Free;
end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
JvTrayIcon1.Active:=True;
JvTrayIcon1.HideApplication;
{Для RXLIB тут нужно писать по другому (эти процедурки прячут иконку в трэй и делают невидимой программу в диспетчере программ) }
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
LoadICO;
end;

procedure TForm1.JvTrayIcon1Click(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
JvTrayIcon1.Active:=False;
JvTrayIcon1.ShowApplication;
{Для RXLIB тут тоже нужно сделать по другому }
end;

end.
 