Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: LinuxMove 
Author Message
Ciber SLasH



PostPosted: Sun Nov 27, 2005 20:28    Post subject: Reply with quote

Вот решение:
1) добавляешь в форму в раздел private:
Code:
type
  TForm1 = class(TForm)
  ...
  private
    { Private declarations }
    // Обработчик сообщения минимизации
    procedure MinimizeInTray(var Msg: TMessage); message WM_SYSCOMMAND;
  end;


2) добавляешь функцию:
Code:
procedure TForm1.MinimizeInTray(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = SC_MINIMIZE then  // если нажат кнопарь "Свернуть"
  begin
    TrayIcon(1, Application.Icon.Handle);    // твоя функция добавления иконки в трэй
    ShowWindow(Application.Handle, SW_HIDE)  // прячем форму
  end
end;


3) в onCreate формы вписываем:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.Minimize
end;


4) изменяем исходник проекта так (показываю свой пример):
Code:
program MinTray;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1},
  About in 'About\About.pas' {AboutBox};

{$R *.res}

const
  WM_SYSCOMMAND = $0112;
begin
  Application.Initialize;
  Application.Title := 'Minimize in Tray';
  Application.CreateForm(TForm1, Form1);

  Unit1.Form1.Perform(WM_SYSCOMMAND, SC_MINIMIZE, 0); // программное нажатие на кнопку "Свернуть"

  Application.Run;
end.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group