博文

函数(过程)类型(2008-10-29 23:05:00)

摘要:1、声明type  TMyFunction = function: integer;  TmyFunction1 = function(a: integer): integer;  TMyProcedure = procedure;  TMyProcedure1 = procedure(a: Integer);var  f1: TMyFunction;  p1: TMyProcedure;2、定义    以上声明的变量其实都是指针类型,不过它们都是一种特殊的指针它们指向的是函数或者过程的地址。如果想声明一个指向类里面的方法的函数或过程类型可以按照下面的方式声明。type  TMyMethod = function of object;var  myMethod: TMyMethod;注意:   函数(过程)类型和方法类型是赋值不兼容的。3、常见应用......

阅读全文(2417) | 评论:0

集合类型(2008-10-28 22:54:00)

摘要:1、定义 集合(Set)是一组有序类型的数值组合,其值最多不可超过256个。 2、声明方式 set of baseType BaseType代表Delphi语言中的有序类型。 声明举例: Type   TMyInt = 1..255;   TMySet = set of TMyInt;   TMySet = set of Byte;   TMySet = set of (Blue, Green);   TMySet = set of Char; 3、集合的赋值与运算 var mSet: set of 1..255; begin mSet := [1,3,5,7,9]; if 1 in mSet then {do Something} end;......

阅读全文(2302) | 评论:0

编译器设置与编译指令(1)(2008-10-27 09:43:00)

摘要:《Delphi下深入Windows核心编程》(附录A Delphi编译指令说明) Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置。 ********************************************************************************************** A.1 使用编译设置对话框 编译器的编译指令是用于指定编译器对项目编译过程的动作和行为。可以通过[Project]->[Options]->[Complier]选项页进行设置,绝大部分的编译环境都可以通过这一对话框进行调整,他包含了对代码、语法、调试信息等的设置。 1.代码设置(Code Generation) Optimization: 代码优化开关 Aligned record fields: 字对齐数据。这个编译指令能够在变量和类型化常量的字节对齐和字对齐之间进行切换,其作用是全局的。 Stack frames: Windows 堆栈帧。其作用域是局部的,他使编译器成为远端过程和函数生成特定的开头和结尾代码。这个指令用于Windows 3.0的实模式,对所有Delphi应用程序他应该是关闭的。       Pentium-safe FDIV: Pentium安全FDIV检查。此指令能够在Pentium处理器中指定编译器是否创建能够检测和使用有缺陷的浮点除法指令的代码。 2.运行期错误(Runtime Errors) Range Checking: 范围检查。这个指令的作用范围是局部的,用于控制范围检验代码的生成。 I/O Checking: I/O检查。这个指令的作用域为局部,用来生成对一个文件的输入和输出过程和调用结果进行检查的代码。一般应该使其功能打开。 Overflos Checking: 溢出检查。其作用是生成对算术溢出检查的代码。 3.语法设置(Syntax Optings) Strict Var- strings: 静态变量串开关。用来控制对以变量参数形式传递的串的类型检......

阅读全文(2102) | 评论:0

指针类型(2008-10-26 12:05:00)

摘要:  Object Pascal 中的指针类型可分为“无类型指针”、“有类型指针”两种。其中pointer是Delphi的通用指针类型,也称为“无类型指针”。 1、类型指针的申明: type    pint = ^integer; //pint就代表了一个指向整型数据的指针。    a = ^integer;    b = ^integer;  //注意,a,b为赋值不兼容类型。编译器会将a,b认做2种不同的数据类型。   2、为指针类型分配存储空间:     可用new()函数为指针分配内存,但是该函数不能用于pointer,pchar类型的分配。因为编译器不知道这2种类型的长度。一般来说使用New()比GetMem()更安全。 3、释放指针     使用完后别忘了用函数Dispose()释放指针 蓬莱散人        2008-10-26笔记......

阅读全文(2360) | 评论:0

delphi2009下载地址(2008-09-06 14:13:00)

摘要:《CodeGear RAD Studio 2009》Architect 破解版[ISO] 这个是测试版,大家先拿去解解渴吧. http://www.verycd.com/topics/344122/......

阅读全文(5495) | 评论:2

RemObject Hydra 创建Simple插件式系统(2007-09-01 20:57:00)

摘要:1、创建工程组 2、创建Plugin Module工程 3、创建Host Application工程 4、编译工程组 5、在Host Application工程中的HYModuleManager控件中的ModulesToLoad属性中        加入由Plugin Module工程编译生成的Dll文件名 6、HYModuleManager控件的AutoLoad属性设为"TRUE" 7、编译并运行Host Application工程,一个简单的插件系统就完成了。      RemObject是不是很强大!!!   http://islend.programfan.com 蓬莱一散人(373500710)......

阅读全文(4438) | 评论:0

(2006-09-10 21:35:00)

摘要:      一直想把本人的“自留地”好好装修一下,现在终于能腾出手搞了。初步规划我的这个叫“小蓬莱”的博客以后会出两个主题的内容。一个就是Delphi的技术专题,另一个就是“神州神魔志”。头一个和我的工作相关,第二个是我的爱好。我自己目前主要的精力放在Delphi技术专题上面,“神州神魔志”由于相关的资料搜集比较困难所以暂时委托给我的朋友来维护。     目前“Delphi幼幼班”这个教程就是我为Delphi专题栏目而写的。初次写作再加上知识面有限,错漏再所难免。广大网友如有这方面的发现,请给予指正。联系方式是:EMail:jianfeihua@126.comqq:373500710......

阅读全文(2524) | 评论:2

第一讲 object Pascal语言(Delphi幼幼班教程)(2006-09-10 21:33:00)

摘要:    本教程完全由本blog主人--蓬莱一散人原创,如要转贴请携带以下信息: 原作者:蓬莱一散人(373500710)文章出处:http://islend.programfan.com        任意一款IDE开发工具都有自己支持的一种或多种程序语言。如VC++支持的C++;VB支持的Basic等。delphi也不列外,它所支持的程序语言叫做Object Pascal。作为IDE开发工具的基础部分,如果想要掌握一种IDE开发工具,我们就必须先搞定其根本!因此我们这里也先从Object Pascal语言讲起。   在这里我们先对Object Pascal语言进行一个简单的分类,以便于随后篇章的描述。    一、简单类型         1、序数类型               a、整型               b、字符类型               c、枚举类型               d、子界类型         2、实数类型   二、字符串类型   三、结构体类型         1、集合类型         2、数组类型       &nbs......

阅读全文(5244) | 评论:0

怎样在Delphi中继承窗体(2006-08-06 09:31:00)

摘要:1、先创建工程,并且设置好基窗体的属性,这里基窗体就叫Form1吧。2、继承Form1步骤:   a、选择菜单的File->new->other,弹出New Items对话框。   b、点选与你工程名同名的页框,如:project1   c、在此窗体中选中你需要继承的窗体,在本例中是Form1。3、ok......

阅读全文(9252) | 评论:0

Delphi获取IP函数(2006-07-12 22:03:00)

摘要:uses winsock;//获取IP函数Function  GetIPAddr : String;type  TaPInAddr = array [0..10] of PInAddr;  PaPInAddr = ^TaPInAddr;var  phe : PHostEnt;  pptr : PaPInAddr;  Buffer : array [0..63] of char;  I : Integer;  GInitData : TWSADATA;begin  WSAStartup($101, GInitData);  Result := '';  GetHostName(Buffer, SizeOf(Buffer));  phe :=GetHostByName(buffer);  if phe = nil then Exit;  pptr := PaPInAddr(Phe^.h_addr_list);  I := 0;  while pptr^[I] <> nil do begin     result:=StrPas(inet_ntoa(pptr^[I]^));     Inc(I);  end;  WSACleanup;end;......

阅读全文(6812) | 评论:1