Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно отследить минимизацию окна программы


AlexR ©   (2004-07-22 02:35:00) 

Можно ли как-то отследить минимизацию окна программы?


superedward   (2004-07-23 07:06:00) [1]

что и использую при минимизации именно окна, а не приложения:
ловишь сообщение wm_syscommand:
procedure WMGetSysCommand(var Msg : TMessage); message WM_SYSCOMMAND;

код:
procedure TForm1.WMGetSysCommand(var Msg :TMessage);
begin
case Msg.wParam of
 SC_MINIMIZE: ProcedureOnMinimize;
 SC_MAXIMIZE: ProcedureOnMaximize;
 SC_RESTORE : ProcedureOnRestore;
 SC_CLOSE   : ProcedureOnClose;
 else inherited;
end;
end;

это если хочешь полностью заменить обработчики
работает как при нажатии кнопок на Caption, так и в меню окна


Palladin   (2004-07-22 19:19:00) [2]


> RDen   (22.07.04 06:43)

А ты [2] читал прежде чем вынести на обозрение свой супер оригинальный и неповторимый (а, кстати, может быть и гениальный с твоей точки зрения) вариант решения проблемы...


RDen   (2004-07-22 06:43:00) [3]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Memo1: TMemo;

   procedure FormCreate(Sender: TObject);
   procedure AppMinimize(Sender: TObject);

 private
   { Private declarations }
 public

   { Public declarations }
   
 end;

var
 Form1: TForm1;
 var i:integer;
implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.AppMinimize(Sender: TObject);
begin
i:=i+1;
 Application.Minimize;
 form1.caption:='Приложение было свёрнуто '+inttostr(i) +' раз';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i:=0;
  Application.OnMinimize := AppMinimize;
end;


AlexR   (2004-07-22 03:13:00) [4]


> akvilon ©   (22.07.04 02:56) [3]
> перехватывай WM_MINIMAZE

Да, я сам думал что должно быть что-то вроде этого но такого нет.
Есть wm_size, но он как-то криво срабатывает. Для minimized не срабатывает совсем.


akvilon   (2004-07-22 03:13:00) [5]

да, это я чё-то .... такого и нету совсем :)


Palladin   (2004-07-22 03:01:00) [6]

чаво чаво пирехватывай?


akvilon   (2004-07-22 02:56:00) [7]

перехватывай WM_MINIMAZE


Palladin   (2004-07-22 02:48:00) [8]

Хотя, это для всего приложения... Если нужно для отдельного окна то WM_SIZE+F1


Palladin   (2004-07-22 02:39:00) [9]

Палитра компонентов\Additional\ApplicationEvents

OnMinimize


Наверх

Титульная страница Поиск, карта сайта Написать письмо