Delphi的方法类型有:
1.静态方法 (Static) 默认类型,可以省略关键字
2.虚拟方法 (Virtual)
3.动态方法 (Dynamic)
4.消息方法 (Message)
5.抽象法方 (Abstract)
=======================================================
1)静态方法[static]
静态方法类似于通常的过程和函数,编译器在编译时就已指定了输出该方法
的对象实例。静态方法的主要优点是调用速度快。
eg:
type
TAnimal = class(TObject)
procedure Sound;
procedure Sleep;
... ...
end;
... ...
TDog = class(TAnimal)
procedure Sound;
function Sleep:Integer;
... ...
end;
静态方法不能被重载,上例中,派生类的静态方法只是替换了基类的静态方
法。即使Sleep方法在TAnimal中表现为过程而在TDog类中表现为函数。
=======================================================
2)虚拟方法[virtual]
虚拟方法比静� ......
Delphi 中如何安装组件?
delphi中如何安装组件有五种情况:
1、只有一个DCU文件的组件。DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布。一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦Delphi版本升级,此组件就不能再使用了,当然有的作者给出了几种版本的DCU文件,用户根据需要选择使用。这样的组件的安装方法是:在Component菜单中,选择install component,在对话框 “into existing package“页中,单击“Unit file name”后的“Browse”按扭,在打开的文件对话框中,将“文件类型”设定为*.dcu,找到要安装的DCU文件,按OK按钮返回“into existing package“页后再按OK按钮就可以安装了。注意,此时Delphi会提示dclusr40.dpk将被重建,是否继续,OK就可以了。这里是将组件安装到dclusr40.dpk包中,此包从文件名上可以看出是用户自定义组件包,先安装到这个包中吧,下面再讲有关注意事项。安装完毕会有已经将组件注册完的提示信息以及安装到哪个组件页中的信息等,到组件面板上看看,一般会出现一个� ......
function ListFiles(Dir: String):TStrings;
var
FSearchRec: TSearchRec;
FileList: TStrings;
FindResult: Integer;
begin
if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
FileList :=TStringList.Create;
FindResult:=FindFirst(Dir+'*.*,faAnyFile+faDirectory,FSearchRec);
while FindResult = 0 do
begin
if ((FSearchRec.Attr and faDirectory) = 0) then //文件
begin
FileList.Add('文件:'+LowerCase(Dir+FSearchRec.Name));
end;
if ((FSearchRec.Attr and faDirectory) <> 0) then
begin
if ((FSearchRec.Name<> '.') and (FSearchRec.Name <> '..')) then //文件夹
begin
ListFiles(dir+FileRec.Name);
end;
end;
FindResult:=FindNext(FSearchRec);
end;
FindClose(FSearchRec);
ListFiles:=FileList;
end;
......
Delphi的Socket编程要分几步?
2008-12-20 02:03:24
标签:Delphi Socket 编程 [推送到技术圈]
ClientSocket 和ServerSocket
几个重要的属性:
1.client和server都有port属性,需要一致才能互相通信
2.client有Address属性,使用时填写对方(server)的IP地址
几个重要的事件:
client: OnRead事件,当client受到冲击消息时在OnRead事件中可以获得server发送过来消息。
Server: OnClientRead事件,与上述client的作用相同
发送信息:
clien使用SocketClient1.Socket.SendBuf(char类型的数组,信息长度);
server使用SocketServer1.Socket.Connection[0].SendBuf(char类型的数组,信息长度);
接收信息
clien使用SocketClient1.Soc ......
以下是在网上收集的一些对无类型参数的说明.个人理解无类型变量就是一个指针.
象Delphi中function Read(var Buffer; Count: Longint): Longint; override;象Buffer这样没有类型的参数究竟应该怎么给参数????
这说明Buffer是通过地址方式传递的,一般说来只要是一段内存区域就行。
var Buffer; const buffer;
这些没类型说明的形参说明是取地址的首地址。
类型 首地址
string string[1]
char 自己
integer 自己
record 自己
array arr[0]
pchar pchar()^
pointer pointer()^
& ......
Day 开头的函数
●
Unit
DateUtils
function DateOf(const Avalue: TDateTime): TDateTime;
描述
使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个
只带有日期的 TDateTime 类型变量。
例如:
showmessage(DateTimetostr(dateof(now())));
你得到的是 2003/03/19
而 showmessage(DateTimetostr((now())));
得到的是 2003/03/19 10:50:49
●function DateTimeToStr(DateTime: TDateTime): string;
描述
DateTimeToString 函数将 TDateTime 类型的参数 DateTime 转换成一个
字符串,使用给定的全局变量 ShortDateFormat 的格式,时间部分按照
给定的全局变量 LongTimeFormat 的格式。
其中 DateTime 为零的部分将不会显示出来。
例如:
ShortDateFormat:=’yyyy mm dd’;
showmessage(DateTimetostr((now())));
你将得到:2003 03 19 10:50:49
●procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);
描述:
DateTimeToString 方法将TDateTime类型的参数DateTime 按照由参数Format提供的格式
转化成字符串,并保存在Result中。
对于Format的格式类型,请看 Date-Time ......