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会自动声明类的方法定义
相关文档:
临界区是一段代码,一次只允许一个线程执行这段代码。当把一段代码放入一个临界区, 线程执行到临界区时就独占了, 其他线程如果要访问这段代码,一定要等前一个访问的线程结束才行。借用前面的比喻比作图书馆,临界区就像把图书馆设计成只有一个位置(现实中好像不太合理,不管了,反正这么个意思),当有一个人正在办 ......
Event事件用法与Mutex差不多,但它可以使用:SetEvent(启动运行)ResetEvent(暂停运行)、PulseEvent(执行一次后立即暂停)。
先看一下创建函数:CreateEvent(
......
一个线程的优先级取决于创建线程的进程的优先级(priority class)和线程本身相对的优先级(relative priority)。
1、进程优先级:
不同操作系统 优先级数目不同。Windows2000以上的版本列表如下:
Idle:(标志:IDLE_PRIORITY_CLASS,值为$40);
Below Normal:(标志:BEL ......
VCL对象不是线程安全的,而且它们的属性和方法必须要从VCL主线程中进行访问或被执行,但有两种VCL对象是例外的情况,它们是线程安全的。一种是任何图形对象,另一种是TThreadList。
这意味着不必非得在主VCL线程中才能设置一个画布的画笔颜色,或画刷类型,可以在另一个线程的环境中完成一点。对 ......
刚开始很不习惯c#的风格,哎,先入为主啊,delphi习惯了,{}代替begin/end太扎眼。
属性方法的宣告和代码在一起,没有像delphi分interface/implementation,感觉太乱,都不知道一个class到底有几个方法。
每个属性和方法前面都要单独写private/protected/public,老天,c#是delphi之父设计的揶,怎么不学delphi写一个就行 ......