type TForm1 = class(TForm) ApplicationEvents1: TApplicationEvents; procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); private { Private declarations } public procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; end;
var Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.WMSysCommand(var Message: TWMSysCommand); begin case Message.CmdType of SC_MINIMIZE: begin ShowMessage('FORM Minimize'); end; SC_RESTORE: begin ShowMessage('FORM Restore'); end; SC_MAXIMIZE: begin ShowMessage ('FORM Maximize'); end; end; inherited; end;
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if not Msg.message = WM_SYSCOMMAND then exit;
case Msg.wParam of SC_MINIMIZE: begin ShowMessage('APP Minimize'); end; SC_RESTORE: begin ShowMessage('APP Restore'); end; SC_MAXIMIZE: begin ShowMessage ('APP Maximize'); end; end; end;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public procedure ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean); procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; end;
var Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.WMSysCommand(var Message: TWMSysCommand); begin case Message.CmdType of SC_MINIMIZE: begin ShowMessage('FORM Minimize'); end; SC_RESTORE: begin ShowMessage('FORM Restore'); end; SC_MAXIMIZE: begin ShowMessage ('FORM Maximize'); end; end; inherited; end;
procedure TForm1.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean); begin if not Msg.message = WM_SYSCOMMAND then exit;
case Msg.wParam of SC_MINIMIZE: begin ShowMessage('APP Minimize'); end; SC_RESTORE: begin ShowMessage('APP Restore'); end; SC_MAXIMIZE: begin ShowMessage ('APP Maximize'); end; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := ApplicationEventsMessage; end;
hmm - den skriver: [Fatal Error] Unit1.pas(7): File not found: 'AppEvnts.dcu' når jeg tilføjer AppEvnts i uses, det skal jeg måske ikke?? (skal nok oprette et nyt spørgsmål hvis du synes)
ikke er tilføjet i form.create, virker det når man trykker på de tre ikoner oppe til højre (max-min-restore), men ikke når den restores fra process-linien. når linien bliver tilføjet virker den også fra process-linien ?? fatter det ikke nå - jeg skal nok holde kæft i det her spørgsmål nu :-)
Er det så svært at forstå .. Det ene pille du i forment message kø. Den anden piller du i din applikations message kø.
Hvis du ikke mapper Application.OnMessage op til noget tja så bliver dit kode ALDRIG kaldt ....
Kode der ikke bliver kaldt kan du heler ikke forvente gør noget :-)
Jens B
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.