delphi中如何响应窗口右上角的三个按钮的事件,也是最大化,最小化,关闭这三个按钮(100分)

  • 主题发起人 主题发起人 dlpfei
  • 开始时间 开始时间
D

dlpfei

Unregistered / Unconfirmed
GUEST, unregistred user!
想在程序中按了关闭按钮程序也不关闭,而是最小化这样的功能,但不知道如何响应
 
关闭它的功能就可以了!
属性里有这项:borderIcons里的项,全false就可以了!
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=canone;
Application.Minimize;
end;
 
不是楼上说的意思,我是说如何响应窗口右上角三个按钮的事件,比如在按了最大化,最少化按钮后在程序中加入自己的执行代码
 
用消息!给分吧!
procedure WMSize(var Message: TWMSize); message WM_SIZE;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMSize(var Message: TWMSize);
begin
case Message.SizeType of
SIZENORMAL: showmessage('1');//Normal时你的代码
SIZEICONIC: showmessage('2');//Minimized时你的代码
SIZEFULLSCREEN: showmessage('3');//Maximized时你的代码
end;
end;
 
这是完美的代码,不论是主窗体,还是子窗体,都适用。

unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }


{ TForm1 }

procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
{ 如果想在按下最小化按钮后,只做你想做的事情,而不想让窗口最小化 }
if Msg.CmdType = SC_MINIMIZE then
ShowMessage('wo shi xiaobenben');
else
inherited;

{ 如果想在按下最小化按钮后,先做你想做的事情,再让窗口最小化 }
if Msg.CmdType = SC_MINIMIZE then
ShowMessage('wo shi xiaobenben');
inherited;

{ 如果想在按下最小化按钮后,先让窗口最小化,再做你想做的事情 }
inherited;
if Msg.CmdType = SC_MINIMIZE then
ShowMessage('wo shi xiaobenben');
end;

end.
 
多人接受答案了。
 
我想问一下cuit421,这句action:=canone;的意思是什么
 
caNone The form is not allowed to close, so nothing happens.
caHide The form is not closed, but just hidden. Your application can still access a hidden form.
caFree The form is closed and all allocated memory for the form is freed.
caMinimize The form is minimized, rather than closed.
 
后退
顶部