Delphi面向对象的编程方法(七)
发布时间:2006-03-15 16:18:06 来源:友佳学院(整理) 网友评论 0 条2.2.5 访问对象的域和方法
当您想要改变一个窗体对象的一个域的某个属性,或是调用它的一个方法时,您必须在这个属性名称或调用方法之前加上这个对象的名称。例如,如果您的窗体上有一个编辑框部件,而您需要在运行中改变它的Text
Edit1.Text := 'Welcome to Delphi';
同样,清除编辑框部件中选中的文本,可以调用TEdit
Edit1.ClearSelection;
如果您想改变一个窗体对象中一个对象域的多个属性或调用多个方法时,使用with
procedure TForm1.Button1Click(Sender:TObject);
begin
ListBox1.Clear;
ListBox1.MultiSelect :=True;
ListBox1.Item.Add('One');
ListBox1.Item.Add('Two');
ListBox1.Item.Add('Three');
ListBox1.Sorted :=Ture;
ListBox1.FontStyle :=[fsBold];
ListBox1.Font.Color :=clPurple;
ListBox1.Font.Name :='Times New Roman';
ListBox1.ScaleBy(125,100);
end;
如果使用了With语句,则程序如下:
procedure TForm1.Button1Click(Sender:TObject);
begin
with (ListBox1) do
begin
Clear;
MultiSelect :=True;
Item.Add('One');
Item.Add('Two');
Item.Add('Three');
Sorted :=Ture;
FontStyle :=[fsBold];
Font.Color :=clPurple;
Font.Name :='Times New Roman';
ScaleBy(125,100);
end;
end;
使用with
2.2.6 对象变量的赋值
如果两个变量类型相同或兼容,您可以把其中一个对象变量赋给另一个对象变量。例如,对象TForm1
Form2 :=Form1;
只要赋值的对象变量是被赋值的对象变量的祖先类型,您就可以将一个对象变量赋给另一个对象变量。例如,下面是一个TDataForm
type
TDataForm = class(TForm)
Button1:TButton;
Edit1:TEdit;
DataGrid1:TDataGrid;
Database1:TDatabase;
TableSet1:TTableSet;
VisibleSession1:TVisibleSession;
private
{私有域说明}
public
{公有域说明}
end;
var
AForm:TForm;
DataForm:TDataForm;
因为TDataForm
AForm :=DataForm;
这一点在Delphi中是极为重要的。让我们来看一下应用程序调用事件处理过程的过程,下面是一个按钮部件的OnClick
procedure TForm1.Button1Click(Sender:TObject);
begin
end;
您可以看到TObject
您可以使用保留字is来测试Sender以便找到调用这个事件处理过程的部件或控制部件的类型。Delphi
procrdure TForm1.Memo1DragOver(SenderSource:TObject;X,Y:integer;
State:TDragState;var Accept:Boolean);
begin
Accept :=Source is TLabel;
end;
Source参数也是TObject
下面的drag-and-drop展示的Memo1DragDrop事件处理过程中也使用了Source
procedure TForm1.Memo1DragDrop(SenderSource:TObject;
X,Y:Integer);
begin
Memo1.Font := (Source as TLabel).Font;
end;
当您在这个事件处理过程中编写赋值语句时,开发人员并不知道用户会放入哪一个标签,只有通过参考这个标签的名称(Sourceas TLabel)用户才能知道,并把标签类型赋给Memo1.TFont
2.2.7 建立非可视化对象
您在Delphi中使用的大部分对象都是您在设计和运行期间可以看见的部件,例如编辑框、按钮等;一些部件,如通用对话框(Commondialog box)等,在设计时看不见,而在运行时可以看见;另外有些部件,例如计时器(Timer)
2.2.7.1说明一个非可视化对象
下面,通过一个简单的例子讲述如何建立自己的非可视化对象:
您可以用如下的方法,建立一个自己的TEmployee
type
Temployee = class(TObject);
Name := String[25];
Title := String[25];
HourlyPayRate : Double;
function CalculatePayAmount:Double;
end;
在这种情况下,TEmployee
var
Employee : TEmployee;
2.2.7.2用Create方法建立对象实例
TEmployee只是一个对象类型。除非通过一个构造函数的调用从而被实例取代或创建,否则一个对象并不存储在内存中。构造函数是一个方法,它为新对象配置内存并且指向这个新的对象。这个新的对象也被称为这个对象类型的一个实例。
建立一个对象的实例,需要调用Create
Employee := TEmployee.Create;
Create方法并没有在TEmployee
2.2.7.3 撤销对象
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。
Delphi的注销方法有两个:Destroy
您可以用下列的语句释放用完的Employee
Employee.Free;
和Create
- 推荐阅讯
- 用Win32 API枚举应用程序窗口和进程
- 用Delphi实现24位真彩色图标
- Delphi面向对象的编程方法(一)
- 程序界面设计模式慨述
- NoahWeb应用——模组资源
- VFP9.0中设计与使用表单和报表
- 论《金瓶梅》与项目管理中人际关系协调
- COM 组件设计与应用之简单调用组件
- Ajax在.NET中与Server控件的交互
- Oracle数据库密码文件的使用与维护
- 阅读排行
- 1.全面剖析Delphi 2006新增特性
- 2.用Delphi开发视频聊天软件
- 3.用Win32 API枚举应用程序窗口和进程
- 4.软件的架构与设计模式之什么是架构
- 5.软件的架构与设计模式之模式的种类
- 6.Delphi中为TreeView添加单选和复选框
- 7.用Delphi实现24位真彩色图标
- 8.VS.NET2005 Beta2初体验之感受2005
- 9.程序界面设计模式慨述
- 10.没落的奇迹 谁会买下Delphi?
- 专题教程
- Windows Server-Windows Server文档-Windows Server新闻-Windows Ser PostgreSQL-PostgreSQL文档-PostgreSQL新闻-PostgreSQL专家
- WebLogic-WebLogic文档-WebLogic新闻-WebLogic专家 FreeBSD-FreeBSD文档-FreeBSD新闻-FreeBSD专家
- Linux-内核 GUI KDE Gnome DNS FTP 安全 安装-Linux专区 Windows-AD IIS ServerCore 虚拟化 安全 HPC-Windows专区
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
