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

Вниз

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

 
AlexR   (2004-07-22 02:35) [0]

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


 
Palladin ©   (2004-07-22 02:39) [1]

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

OnMinimize


 
Palladin ©   (2004-07-22 02:48) [2]

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


 
akvilon ©   (2004-07-22 02:56) [3]

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


 
Palladin ©   (2004-07-22 03:01) [4]

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


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


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

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


 
akvilon ©   (2004-07-22 03:13) [6]

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


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

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;


 
Palladin ©   (2004-07-22 19:19) [8]


> RDen   (22.07.04 06:43)

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


 
superedward ©   (2004-07-23 07:06) [9]

что и использую при минимизации именно окна, а не приложения:
ловишь сообщение 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, так и в меню окна



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

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

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1089705380
Newuser
2004-07-13 11:56
2004.08.08
Вопрос по SQL


3-1089699015
Fishka
2004-07-13 10:10
2004.08.08
ADOQuery1.SaveToFile - как этим пользоваться?


14-1090610372
1stGame
2004-07-23 23:19
2004.08.08
Программа администратирования комп. клуба


1-1090733749
oleg_SYS
2004-07-25 09:35
2004.08.08
IHTMLDocument2


1-1090514193
saimon
2004-07-22 20:36
2004.08.08
TLabel вместо всплывающей подсказки (Hint)