当点击菜单show出子窗体的时候,如何利用LockWindowUpdate()这个函数锁定窗体。
以下是点击菜单时的代码:
procedure TMainForm.N1Click(Sender: TObject);
begin
if not Assigned(fmMaintenace) then
begin
fmMaintenace := TfmMaintenace.Create(nil);
fmMaintenace.Show;
end
else
fmMaintenace.BringToFront;
end;
以下是点击菜单时的代码:
procedure TMainForm.N1Click(Sender: TObject);
begin
if not Assigned(fmMaintenace) then
begin
fmMaintenace := TfmMaintenace.Create(nil);
fmMaintenace.Show;
end
else
fmMaintenace.BringToFront;
end;
--------------------------------------------------------------------------------
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls;type
TForm1 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WM_SIZE(var Msg: TMessage); message WM_SIZE;
procedure WMSysCommand(var Msg: TMessage); Message WM_SYSCOMMAND;
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
if Msg.WParam = SC_MAXIMIZE then
begin
LockWindowUpdate(Handle);
Panel1.Align := alNone;
Memo1.Align := alNone;
end;
inherited;
end;procedure TForm1.WM_SIZE(var Msg: TMessage);
begin
if Msg.WParam = SIZE_MAXIMIZED then
begin
Panel1.Align := alClient;
Memo1.Align := alClient;
LockWindowUpdate(0);
end;
inherited;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.Align := alClient;
Panel1.Color := clGray; //这样做是为了能看清楚一些,这还仅仅是一个小例子,如果Form上控件
//众多,则闪烁十分明显
Memo1.Align := alClient;
end;end.