易截截图软件、单文件、免安装、纯绿色、仅160KB

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为移动后指针与当前指针的相


相关文档:

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

 1.策略类
{《HeadFirst设计模式》之策略模式 }
{ 本单元中的类为策略类 }
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }

unit uStrategy;

interface

type
{飞行接口,及其实现类 }

IFlyBehavior = Interface(IInterface)
procedure Fly;
......

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

1.被装饰者
{《HeadFirst设计模式》之装饰模式 }
{ 本单元中的类为被装饰者 }
{ 编译工具: Delphi7.0 }
{ E-Mail : xshlife@163.com }

unit uComponent;

interface

type
TBeverage = class(TObject) //抽象饮料类
protected
FDescription: String;
public
......

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码

没有应用状态模式的代码
1. 工程文件
program Project1;
{$APPTYPE CONSOLE}
uses
uGumballMachine in 'uGumballMachine.pas';
var
aGumballMachine: TGumballMachine;
begin
aGumballMachine := TGumballMachine.Create(5);
aGumballMachine.InsertQuarter;
aGumballMachine.TurnCrank;
Writeln; ......

在Delphi中使用RAS实现对系统拨号的控制

 在Delphi中使用RAS实现对系统拨号的控制
  在企业应用中有时候希望能在程序中实现对拨号网络的控制,以实现自动拨号、自动断开网络。在尝试了多种方式之后,认为RAS是一种比较稳定的方式。在google了网上一些资料后,现整理如下:
一、首先需要有个针对RAS的头文件定义,Ras.pas代码如下
 
{* Cop ......

用PLSQL自动生成数据库表的Delphi对象

 DECLARE
  TYPE TY_QUECUR IS REF CURSOR;
  CUR_COLUMNS  TY_QUECUR;
  SQLCMD  VARCHAR(500);
  TABNAME VARCHAR(20);
  COLNAME VARCHAR(50);
  COLTYPE VARCHAR(20);
  COLCOMMENT VARCHAR2(50);
  COLLENGTH INTEGER;
  COLPRECISION INTEGER; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号