1

源程序下载
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关闭时间的响应的先后顺序是：
CloseQuery 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;
源程序下载