📄 00204.txt
字号:
1:限制Form的大小
使用过DELPHI的朋友都会注意到DELPHI本身最上面的窗口,当它极大时只占屏幕的一小部分,它是如何实现的呢,请看下面的说明:
1)在FORM私有声明部分加上如下一行:
procedure WMGetMinMaxInfo( var Message:TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
2)在声明部分加上如下几行:
procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
begin
with Message.MinMaxInfo^ do
begin
ptMaxSize.X := 200; {最大化时宽度}
ptMaxSize.Y := 200; {最大化时高度}
ptMaxPosition.X := 99; {最大化时左上角横坐标}
ptMaxPosition.Y := 99; {最大化时左上角纵坐标}
end;
Message.Result := 0; {告诉Windows你改变了 minmaxinfo}
inherited;
end;
2:Form生成时的事件次序
Form 产生的""个过程中, 各事件发生与执行的次序
如果是一般的 SDI Form, 各事件的发生次序如下:
OnCreate
OnShow
在屏幕上看到这个视窗
OnActivate
OnPaint
如果是 MDI 视窗, 而 MdiChild 的第一个子视窗是在程式启动时, 就出现在MdiForm中的话,
那麽,各事件的次序是
主视窗的 OnCreate
子视窗的 OnCreate
子视窗的 OnShow
子视窗的 OnActivate
主视窗的 OnShow
在屏幕上看到主视窗及第一个子视窗
主视窗的 OnPaint
在这里也捎带说一下,Form关闭时间的响应的先后顺序是:
Close query OnCloseQuery
Close OnClose
Deactivate OnDeactivate
Hide OnHide
Destroy OnDestroy
3:在窗体上设置一个热键
在窗体的FORM ONKEYDOWN事件中加入:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then ShowMessage('Ctrl-A');
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -