Delphi 类的学习
一、类与对象
1、 类(Class)是用户定义的数据类型
2、 对象(Object)是类(Class)的一个实例,或由类定义数据类型的一个变量;
3、 类有一种状态(内部数据),操作(行为或方法),属性;
4、 对象是一个实体,程序运行时会为其内部表现分配一些内存;
5、 类与对象之间的关系和变量与类型之间一样的;
6、创建一个类 类型名(class name) =class
成员
方法
属性
7、对象用完之后应该释放内存;
二、创建一个类
1、一个类的变量不会为对象提供内存,只是在内存中提供一个引用或指针;
实例1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TMyClass = class //创建一个TMyClass类
name : String;
age : Integer;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
MyCls : TMyClass; //声明一个对象
begin
MyCls :=TMyClass.Create; //分配内存或初始化 构造一个实例,对象实质化;
MyCls.name :='测试';
MyCls.age :=2010;
ShowMessage(MyCls.name); //显示'测试 '
MyCls.Free; //释放类的占用的内存;
end;
end.
三、类的方法1、 类的方法也就是过程或函数
2、 在类的定义中,方法只能被声明,然后在本单元中定义
3、 Ctrl+Shit+C的运用,在类中当方法被声明后可以使用Ctrl+Shit+C组合键,delphi会自动声明类的方法定义
相关文档:
上文中,多线程同步主窗体的Label的Caption属性值,发现一个问题:使用Synchronize用于同步的时候,主窗体好像死掉一样;而直接用子程序为Label的引用赋值,则有时会出现“Canvas does not allow drawing”错误。书上说VCL同步一定要用Synchronize,而不能直接访问。
测试:
{主窗体} ......
Delphi的VCL框架在创建应用时TApplication是一个自动创建的隐藏窗口,其它创建的窗口是自动以该窗口为窗口,这就导致创始的主窗口在任务栏的系统菜单只有三项,只要在主窗口的Create事件中将系统菜单用Application的系统菜单替换,并将SysCommand消息转发到主窗口就正常了。
unit Unit1;
interface
uses
Windows ......
1、保证你传递的参数要正确:C++中的char *对应PASCAL中的pchar。
2:C++中导出的函数的参数调用方式要和你DELPHI中的导入的函数参数调用方式要一致!
例如: C++的参数调用方式 对应的DELPHI的参数调用方式
_declspec ......
虽然用盗版是件很不光彩的事情,但是这个软件目前实在是买不起.呵,折磨了数月,而今天却不经意间成功了. 实在是难掩心中快感.
这所谓的破解过程相当简单
百度搜索一下
Delphi.Distiller.v1.85
解压后运行,点到DELPHI2010页面,>Tweat>再勾上Remove Delphi 2010 Updata....,再点击Clear All Embarcadero...
接着就OK ......