1

源程序下载
1：生成非矩形窗口
利用win32 API函数setwindowrgn可以将窗口定义为任何形状，以下是将窗口定义为园角矩形的例子：
procedure TForm1.FormCreate(Sender: TObject);
var
hr :thandle;
begin
hr:=createroundrectrgn(0,0,width,height,20,20);//定义园角矩形(win API函数)
setwindowrgn(handle,hr,true); //设置园角窗口
end;
为了使该窗口更好，应在onResize事件处理程序放相同的代码。
2：Delphi中TApplication类的巧用
在Delphi中TApplication是一个有着十分重要作用的类。TApplication类是用于描述Delphi编制的应用程序的一个类。通过对这个类的灵活应用可以编制许多有特点的程序。。
1) 检测当前Windows程序是否被激活：
TApplication类有一个属性——Active，这个属性就可以描述当前运行的程序是否被激活，成为Windows的焦点。检测的代码如下：
If Application.Active=False then ShowMessage（’当前窗口没有被激活’）；
2) 取得当前程序的名称：
TApplication类的EXEName属性可以返回这个可执行程序的完整文件名（包含路径）。实现的代码如下所示： ShowMessage(Application.ExeName);
3) 改变程序极小化时的标题
Tapplication类的Title属性。这个属性决定了程序最小化时的标题，而窗口中标题栏的标题是由Form的Caption属性来决定的。其代码如下：
Form1.Caption:=’ 窗口的标题’;
Application.Title:=’程序的标题’;
4) 指明程序的主窗口
Windows系统中的界面都是窗口，但一般来讲有一个主窗口。Tapplication的MainForm属性就可以返回程序的主窗口。
5) 显示消息框
Delphi可以生成一个含有中文显示的按钮，Tapplication的MessageBox函数了。这个函数的原形如下： function MessageBox(Text, Caption: Char; Flags: Longint): Integer
例如：Application.MessageBox('需要存盘吗？','提示信息',MB_OKCANCEL)；
这个函数返回的是一个整型的数值，而这个数值被系统指定了具体的含义，比如：按下“确定”按钮时返回的值是“1”，按钮的意义及系统中对其定义的值：
IDOK 1
IDCANCEL 2
IDABORT 3
IDRETRY 4
IDIGNORE 5
IDYES 6
IDNO 7
6) 控制窗口的尺寸
一般可以用窗口手柄来调整窗口的尺寸，但是也可以用Application的事件来调整。实现的方法是用以下两个过程：
Application.Minimized;
Application.Restore;
前一个过程用来将程序的主窗口最小化，而后一个过程用来将最小化的窗口恢复到原来的尺寸。
7) 链接联机帮助文件
Application的CurrentHelpFile属性能够指定当前程序所用的联机帮助文件的文件名。这个属性经常与另一个方法联合在一起使用。举例如下：
Application.HelpFile := '联机帮助文件名';
Application.HelpJump('联机帮助文件的主题’)
通过这一命令组合，我们就能使系统弹出一个显示某主题的联机帮助文件。
8) 在程序运行时动态地创建窗口
窗口是在设计时加入到工程项目中的，但是有时也需要我们在程序运行时动态地加入窗口，这就要用到Application 的CreateForm过程，举例如下：
Form3:Tform3; //声明窗口类
Application.CreateForm(TForm3, Form3); //创建窗口
9) 结束程序
虽然我们可以用关闭主窗口的方法来关闭一个程序，但是更好的办法是用Application的Terminate过程。它能够起到更彻底地关闭程序的效果。
10) Destroy 属性.
虽然Delphi提供了这一属性,但是并不提倡使用它,如果要终结程序就要调用Terminate过程，而Destroy过程一般是用来在程序发生悬挂时来退出程序时才调用，有些类似Windows中的结束任务功能。它不仅能关闭程序实例本身，而且还能释放程序所占用的资源，能够达到将程序彻底清除出系统的目的。
3：在程序中使用自定义的鼠标

第一步：
用 Image Editor 编辑一个鼠游标（Fild | New | Resource File）新建一个 CURSOR1 的 CURSOR, 设定好它的 Hot Spot （Cursor | Set Hot Spot），存档时注意要和建立的 Project 存在同一个目录，在本例我们先假定为 MyCursor.res
二. 程序部分
定义一个常数 crMyCursor, 这个常数您必须设成大於零的任何整数，以 LoadCursor() 函数将
自订的鼠标资源load 进来，以下为源代码：
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;
const
crMyCursor = 1; // 宣告一个常数
type TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
{$R mycursor.res} //这行 $R 不可少, 否则自订的鼠游标就出不来了
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
//下面 将鼠标资源 load 进来
Screen.Cursors[crMyCursor] := LoadCursor (hInstance,'CURSOR1');
Cursor := crMyCursor; //指定 form1 的 cursor 为自订鼠标
end;
end.
源程序下载