Delphi中"流"的利用
什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据
的工具。在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,
程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向。流不
但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。如果你对
流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的。
下面,笔者通过四个实例:EXE文件加密器、电子贺卡、自制OICQ和网络屏幕
传输来说明Delphi编程中“流”的利用。这些例子中的一些技巧曾经是很多软
件的秘密而不公开的,现在大家可以无偿的直接引用其中的代码了。
“万丈高楼平地起”,在分析实例之前,我们先来了解一下流的基本概念和
函数,只有在理解了这些基本的东西后我们才能进行下一步。请务必认真领会
这些基本方法。当然,如果你对它们已经很熟悉了,则可以跳过这一步。
一、Delphi中流的基本概念及函数声明
在Delphi中,所有流对象的基类为TStream类,其中定义了所有流的共同属性
和方法。
TStream类中定义的属性介绍如下:
1、Size:此属性以字节返回流中数据大小。
2、Position:此属性控制流中存取指针的位置。
Tstream中定义的虚方法有四个:
1、Read:此方法实现将数据从流中读出。函数原形为:
Function Read(var Buffer;Count:Longint):Longint;virtual;abstract;
参数Buffer为数据读出时放置的缓冲区,Count为需要读出的数据的字节数,
该方法返回值为实际读出的字节数,它可以小于或等于Count中指定的值。
2、Write:此方法实现将数据写入流中。函数原形为:
Function Write(var Buffer;Count:Longint):Longint;virtual;abstract;
参数Buffer为将要写入流中的数据的缓冲区,Count为数据的长度字节数,
该方法返回值为实际写入流中的字节数。
3、Seek:此方法实现流中读取指针的移动。函数原形为:
Function Seek(Offset:Longint;Origint:Word):Longint;virtual;abstract;
参数Offset为偏移字节数,参数Origint指出Offset的实际意义,其可能的取值
如下:
sofromBeginning:Offset为移动后指针距离数据开始的位置。此时Offset必须
大于或者等于零。
sofromCurrent:Offset为移动后指针与当前指针的相
相关文档:
继承是为了表现类与类之间“是一种”关系,是多态存在的基础,继承是面象对象必不可少的基础,只支持封装而不支持继承的语言只能称为“基于对象”(Object-Based)面非面向对象“Object-Oriented”;
Object Pascal只支持单继承,也就是一个派生类只能有一个基类
但可以实现多个接口 ......
1. 复杂的子系统
unit uSubObject;
interface
type
{ TAmplifier与TTuner,TCDPlayer,TDVDPlayer相互依赖。 }
{ 在TTuner等的简单实现时用不到对TAmplifier的引用, }
{ 但现实生活中就应该让TAmplifier提供服务,所以这里保留了。 }
{ TProjector对T ......
命令模式可以很轻松的实现撤销(Undo)功能。
1. 命令的接受者
unit uReceiveObject;
interface
type
TLight = class(TObject)
public
procedure Open;
procedure Off;
end;
implementation
{ TLight }
procedure TLight.Off;
begin
Writeln('Light is off.');
......
一、在Delphi7中连接MS SQL Server 2000的方法。
刚开始时界面如下:添加4个控件。
设置控件属性过程:
1、ADOConnection1设置
1)双击ADOConnection1,进行设置连接字符串(作用是:选取连接驱动方式和连接的数据库设置)。过程如下图所示:
2、ADOQuery1设置:
1)ADOQuery1.connection属性为ADOConnection1; ......
Delphi的源码定位方法网上搜索到好像不太多。
这里分享我自己的两个方法。
引用一段话
引用内容
什么是 MAP 文件?
MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。
DEL ......