个对象中声明了一个方法,然后把光标放到它的上面,按下Ctrl+Shift+C就可以为他的实现建立一个基本框架,如:
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure Mine;
end;
把光标放到procedure Mine这行,按下Ctrl+Shift+C,下面这段代码将自动插入到单元中:
procedure TForm1.Mine;
begin
end;
==窗体操作篇==
在有多个窗体的
程序中,Delphi默认是将它们在程序启动时全部创建(只是都隐藏了,只显示一个主窗体),这样,那些暂时不必要启动的窗体就占用了许多内存空间。所以我们需要在菜单Project|Options...的Forms标签页下,将那些暂时不要启动的窗体从“Auto-create forms”下转移到“Available forms”中。这样,这些窗体的创建和释放就需要代码来实现了。
A.两种创建窗体方法之比较。对于这些非自动创建的窗体,我们必须在Show之前Creat(Self)或Create(Application),将其创建。如Form2.Creat(Self)和Form2.Create(Application),可是,它们两个到底有什么区别呢?其实两者区别不大,
但如果Owner是属于别的窗口或控件的话,当它的Owner被释放的时候,该Owner所拥有的也会被释放。关键的区别是由谁来管理该窗体的资源。用第一种方法创建,该窗体的资源由编程者来负责管理;用第二种方法创建,该窗体的资源由Application来管理。
B.几种窗体的释放方法。既然是为了节约内存,那么用完了的窗体就应该“搬出”内存。在这里我列举几个大同小异的方法:
(1)
procedure TForm1.Button1Click(Sender :TObject);
begin
......
if Form2 = nil then
Form2:=TForm2.Create(Application);
Form2.ShowModal;
......
end;
procedure TForm2.close(Sender: TObject; var Action: TCloseAction);
begin
ModalResult := mrNone;
Action := caFree;
Form2 := nil;
end;
(2)
procedure TForm1.Button1Click(Sender :TObject);
begin
if not Assigned(Form2) then
begin
Application.CreateForm(TForm2,Form2);
try
Form2.ShowModal;
finally
Form2.Free;
Form2 := nil;
end;
end
else
Form2.ShowModal;
end;
(3)
procedure TForm2.Button1Click(Sender :TObject);
begin
Form2.Close;
Form2.Release;
end;
==控件使用篇==
A.大名鼎鼎的RXLib控件包是由三位俄罗斯高手编写的,非常的出色!不过,内容太多了,要用好也不容易。我在此拿RxRichEdit简单地说几点。
?好多人都问RxLib怎么安装,似乎的确有点复杂,呵呵,所以我也顺便说一下:
运行rxinst.exe将RxLib先安装到\Program Files\Borland\Delphi5(或6)\RX文件夹下,然后打开Delphi,选File\Open...,将RXCTL5.DPK、RXDB5.DPK、RXBDE5.DPK分别打开后按compile,继续打开:DCLRX5.DPK、DCLRXDB5.DPK和DCLRXBD5.DPK,将这三个分别按compile后按install就可以了:-)
?AllowObjects属性。Win98下默认设置为True,右键菜单没有
问题,但设为False时快捷菜单会连续出现两次;Win2000下,设为True时会使右键菜单无法弹出,而False时却显示正常。所以,为了系统的兼容性,需要判断当前OS版本:
procedure TFormMain.FormCreate(Sender: TObject);
var
OSVI:OSVERSIONINFO;
......
begin
OSVI.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(OSVI);
case OSVI.dwPlatformId of
1:RxRichEdit1.AllowObjects:=true;
2:RxRichEdit1.AllowObjects:=false;
end;
.......
end;
但我不知这个属性为什么会有这么一个问题,还望高手指点。
?OnURLClick事件。RXRichEdit有自动将网页地址转为超链接格式,但具体的行为还是要自己写代码的,不然这些地址就成了个空壳了:
procedure TFormMain.RXRichEdit1URLClick(Sender: TObject; const U