Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

Свернуть приложение   Найти похожие ветки 

 
Юрик   (2004-12-04 10:36) [0]

Здарова, народ!!
Вопрос, при запуске приложения нужно чтоб оно сварачивалось в трей, и чтоб форма не появлялась кратковременно на экране, далаю так
Form1.Left:=ScreenWight
не срабатывает в winXP, подскажите как сдалать?


 
grigory ©   (2004-12-04 10:39) [1]

у меня есть готовый пример, если хошь, дам..


 
Sun bittern ©   (2004-12-04 10:40) [2]

>> Вопрос, при запуске приложения нужно чтоб оно сварачивалось в трей,

Поискать сторонние компонеты, если сам написать не можешь. Таких компонент в инете целая горка.

>> чтоб форма не появлялась кратковременно на экране, далаю так

Что, так ужасно ее появление? :)


 
begin...end ©   (2004-12-04 10:42) [3]

> Юрик   (04.12.04 10:36)

Application.ShowMainForm := False (в файле проекта)?


 
Юрик   (2004-12-04 11:02) [4]

grigory

Буду весьма благодарен, если дашь


 
grigory ©   (2004-12-04 11:05) [5]

тебе скинуть куда или выложить прям здесь?
Ну вот..
unit shellUnit;

interface

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

const
WM_MYICONNOTIFY = WM_USER + 123;

type
 TForm1 = class(TForm)
   PopupMenu1: TPopupMenu;
   RestoreItem: TMenuItem;
   N1: TMenuItem;
   FileExitItem1: TMenuItem;
   HideItem: TMenuItem;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure RestoreItemClick(Sender: TObject);
   procedure HideItemClick(Sender: TObject);
   procedure FileExitItem1Click(Sender: TObject);
 private
   { Private declarations }
   ShownOnce: Boolean;
 public
   { Public declarations }
   procedure WMICON(var msg: TMessage); message WM_MYICONNOTIFY;
   procedure WMSYSCOMMAND(var msg: TMessage);message WM_SYSCOMMAND;
   procedure RestoreMainForm;
   procedure HideMainForm;
   procedure CreateTrayIcon(n:Integer);
   procedure DeleteTrayIcon(n:Integer);
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
uses ComObj,  activex, ShellApi, shlobj, registry;

procedure TForm1.WMICON(var msg: TMessage);
var P : TPoint;
begin
case msg.LParam of
WM_LBUTTONDOWN:
 begin
  GetCursorPos(p);
  SetForegroundWindow(Application.MainForm.Handle);
  PopupMenu1.Popup(P.X, P.Y);
 end;
WM_LBUTTONDBLCLK : RestoreItemClick(Self);
end;
end;

procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (Msg.wParam=SC_MINIMIZE) then HideItemClick(Self);
end;

procedure TForm1.HideMainForm;
begin
 Application.ShowMainForm := False;
 ShowWindow(Application.Handle, SW_HIDE);
 ShowWindow(Application.MainForm.Handle, SW_HIDE);
end;

procedure TForm1.RestoreMainForm;
var i,j : Integer;
begin
 Application.ShowMainForm := True;
 ShowWindow(Application.Handle, SW_RESTORE);
 ShowWindow(Application.MainForm.Handle, SW_RESTORE);
 if not ShownOnce then
 begin
   for I := 0 to Application.MainForm.ComponentCount -1 do
     if Application.MainForm.Components[I] is TWinControl then
       with Application.MainForm.Components[I] as TWinControl do
         if Visible then
         begin
           ShowWindow(Handle, SW_SHOWDEFAULT);
           for J := 0 to ComponentCount -1 do
             if Components[J] is TWinControl then
               ShowWindow((Components[J] as TWinControl).Handle, SW_SHOWDEFAULT);
         end;
   ShownOnce := True;
 end;

end;

procedure TForm1.CreateTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
 begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Self.Handle;
  uID := 1;
  uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
  uCallBackMessage := WM_MYICONNOTIFY;
  hIcon := Application.Icon.Handle;
  StrPCopy(szTip,Application.Title);
 end;
 Shell_NotifyIcon(NIM_ADD, @nidata);
end;

procedure TForm1.DeleteTrayIcon(n:Integer);
var nidata : TNotifyIconData;
begin
with nidata do
 begin
  cbSize := SizeOf(TNotifyIconData);
  Wnd := Self.Handle;
  uID := 1;
 end;
 Shell_NotifyIcon(NIM_DELETE, @nidata);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ShownOnce:= False;
CreateTrayIcon(1);
HideItem.Enabled := False;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
DeleteTrayIcon(1);
end;

procedure TForm1.RestoreItemClick(Sender: TObject);
begin
RestoreMainForm;
DeleteTrayIcon(1);
RestoreItem.Enabled := False;
HideItem.Enabled := True;
end;

procedure TForm1.HideItemClick(Sender: TObject);
begin
HideMainForm;
CreateTrayIcon(1);
HideItem.Enabled := False;
RestoreItem.Enabled := True;
end;

procedure TForm1.FileExitItem1Click(Sender: TObject);
begin
Close;
end;

end.

program shellProject;

uses
 Forms, Windows,
 shellUnit in "shellUnit.pas" {Form1};

{$R *.RES}

begin
 Application.Initialize;
 Application.ShowMainForm := False;
 ShowWindow(Application.Handle, SW_HIDE);

 Application.Title := "This is TrayIcon Example";
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


 
Юрик   (2004-12-04 11:10) [6]

grigory

Спасибо, друг :)


 
grigory ©   (2004-12-04 11:19) [7]

Пожалуйста ..обращайся!:)


 
Иксик2   (2004-12-04 11:45) [8]

Мда, раньше на вопросы про иконку в трее по другому реагировали...



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

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-1101537763
Greka
2004-11-27 09:42
2004.12.19
Русский шрифты в англ Windows.


14-1101559628
Piter
2004-11-27 15:47
2004.12.19
Где взять описание структуры IMAGE_IMPORT_DESCRIPTOR ?


8-1095532400
Sulimxar
2004-09-18 22:33
2004.12.19
Помогите понять Битрейт


11-1073121423
nsvi
2004-01-03 12:17
2004.12.19
ComboBox


1-1102005229
Unknown user
2004-12-02 19:33
2004.12.19
Соответствие классов