Welcome 微信登录

首页 / 软件开发 / Delphi

第二十章-开发Delphi对象式数据管理功能(五)(1)

第二十章-开发Delphi对象式数据管理功能(五)(1)

第二十章-开发Delphi对象式数据管理功能(五)(1)2007-05-0720.3.1.1写DFM文件的过程:WriteComponentResFie该过程带有两个参数FileName和Instance。FileName参数指定要写入的DFM文件名,Instance参数是TComponent类型的,它指定要写入的部件名,一般是TForm对象的子类。该过程将Instance部件和其拥有的所有部件写入DFM文件。这个过程的意义在于,可以在程序运行过程中产生D...
第二十章-开发Delphi对象式数据管理功能(五)(2)

第二十章-开发Delphi对象式数据管理功能(五)(2)

第二十章-开发Delphi对象式数据管理功能(五)(2)2007-05-0720.3.1.4 DFM文件与标准文本文件(TXT文件)的相互转换在Delphi可视化设计环境中,允许程序员在代码编辑器中以文本的方式浏览和修改DFM文件内容。当用File/Open命令直接打开DFM文件或者选择窗体设计窗口的弹出式菜单上的View as Text命令时,就会在编辑器中出现文本形式的信息。我们姑且将这种文本形式称之为窗体设计脚本。Delphi提供的这种脚本编辑功能是...
第二十章-开发Delphi对象式数据管理功能(五)(3)

第二十章-开发Delphi对象式数据管理功能(五)(3)

第二十章-开发Delphi对象式数据管理功能(五)(3)2007-05-0720.3.1.5 动态DFM文件应用揭秘1. 动态DFM文件概述动态DFM文件是相对于静态DFM文件而言。所谓静态DFM文件是指在Delphi开发环境中设计的窗体文件。窗体的设计过程就是程序的编制过程。因此,动态DFM文件就是指在程序运行过程生成或存取的DFM文件。动态DFM文件的创建和使用分别如下两种情况:● 在程序运行过程中,由Create方法动态生成窗体或部件,然后动态生成其...
第二十章-开发Delphi对象式数据管理功能(五)(4)

第二十章-开发Delphi对象式数据管理功能(五)(4)

第二十章-开发Delphi对象式数据管理功能(五)(4)2007-05-073. 动态DFM文件应用之二:超媒体系统脚本语言设计超媒体脚本语言设计是超媒体系统设计的重要内容。脚本语言必须能够表达卡片中的多种媒体对象,必须是可编程,可理解的,必须是可执行的,应该可以由脚本语言生成超媒体系统中的卡片和链。DFM文件可以看作是超媒体系统的卡片,DFM脚本能够表达DFM文件中的多种控制,也就是说能够表达卡片中的多种媒体对象,再加上DFM脚本的对象式表达,可编辑性,...
第二十章-开发Delphi对象式数据管理功能(五)(5)

第二十章-开发Delphi对象式数据管理功能(五)(5)

第二十章-开发Delphi对象式数据管理功能(五)(5)2007-05-0720.3.2 数据库BLOB字段应用Delphi VCL提供了TBlobStream对象支持对数据库BLOB字段的存取。Delphi 的TBlobStream对象的作用在于一方面可以使Delphi应用程序充分利用多媒体数据库的数据管理能力。另一方面又能利用Delphi Object Pascal的程序设计能力给关系型多媒体数据库提供底层控制能力和全方位的功能扩展余地。20.3.2....
第十九章-Delphi自定义部件开发(一)(1)

第十九章-Delphi自定义部件开发(一)(1)

第十九章-Delphi自定义部件开发(一)(1)2007-05-07Delphi除了支持使用可视化部件所见即所得地建立应用程序外,还支持为开发应用而设计自己的部件。在本章中将阐述如何为Delphi应用程序编写部件。这一章将达到两个目的:● 教你如何自定义部件● 使你的部件成为Delphi环境的有机组合部分19.1 Delphi部件原理19.1.1 什么是部件部件是Delphi应用程序的程序构件。尽管大多数部件代表用户界面的可见元素,但部件也可以是程序中的不...
第十九章-Delphi自定义部件开发(一)(2)

第十九章-Delphi自定义部件开发(一)(2)

第十九章-Delphi自定义部件开发(一)(2)2007-05-072. 建立原始控制标准控制是在运行时可见的。这些标准控制都从TWinControl,继承来的,当你建立原始控制时,你使用TCustomControl作为起始点。标准控制的关键特征是它具有窗口句柄,句柄保存在属性Handle中,这种控制:● 能接受输入焦点● 能将句柄传送给Windows API函数如果控制不需要接受输入焦点,你可把它做成图形控制,这可能节省系统资源。3. 建立图形控制图形控...
第十九章-Delphi自定义部件开发(一)(3)

第十九章-Delphi自定义部件开发(一)(3)

第十九章-Delphi自定义部件开发(一)(3)2007-05-0719.2.1.5 编写部件的面向对象技术部件使用者在Delphi环境中开发,将遇到在包含数据和方法的对象。他们将在设计阶段和运行阶段操作对象,而编写部件将比他们需要更多的关于对象的知识,因此,你应当熟悉Delphi的面向对象的程序设计。1. 建立部件部件用户和部件编写者最基本的区别是用户处理对象的实例,而编写者创建新的对象类型。这个概念是面向对象程序设计的基础。例如,用户创建了一个包含两个...
第十九章-Delphi自定义部件开发(一)(4)

第十九章-Delphi自定义部件开发(一)(4)

第十九章-Delphi自定义部件开发(一)(4)2007-05-07既然用户在设计时不能改变public部分的属性的值,那么该类属性就不能出现在Object Inspector窗口中。⑷ 定义设计时接口将对象的某部分声明为published,该部分也即为public且产生运行时类型信息。但只有published部分定义的属性可显示在Object Inspector窗口中。对象的published部分定义了对象的设计时接口。设计时接口包含了用户想在设计时定制...
第十九章-Delphi自定义部件开发(二)(1)

第十九章-Delphi自定义部件开发(二)(1)

第十九章-Delphi自定义部件开发(二)(1)2007-05-0719.2.2 Delphi部件编程 19.2.2.1 创建属性 属性(Property)是部件中最特殊的部分,主要因为部件用户在设计时可以看见和操作它们,并且在交互过程中能立即得到返回结果。属性也很重要,因为如果将它们设计好后,将使用户更容易地使用,自己维护起来也很容易。为了使你在部件中更好地使用属性,本部分将介绍下列内容:● 为什么要创建属性● 属性的种类● 公布(publishing)...
第十九章-Delphi自定义部件开发(二)(2)

第十九章-Delphi自定义部件开发(二)(2)

第十九章-Delphi自定义部件开发(二)(2)2007-05-07⑸ 缺省属性值当声明一个属性,能有选择地声明属性的缺省值。部件属性的缺省值是部件构造方法中的属性值集。例如,当从Component Palette选择某部件置于窗体中时,Delphi通过调用部件构造方法创建部件,并决定部件属性初始值。Delphi使用声明缺省值决定是否将属性值存在DFM文件中。如果不描述缺省值,Delphi将总是保存该属性值。声明缺省值的方法是在属性声明后加default指...
第十九章-Delphi自定义部件开发(二)(3)

第十九章-Delphi自定义部件开发(二)(3)

第十九章-Delphi自定义部件开发(二)(3)2007-05-07这三句表达式使用RegisterPropertyEditor三种不同的用法:● 第一种最典型它注册了用于所有TComponent类型属性的属性编辑器TComponentProperty。通常,当为某种类型属性注册属性编辑器时,它就能应用于所有这种类型的属性,因此,第二和第三个参数为nil。● 第二个表达式注册特定类型的属性编辑器它为特定部件的特定属性注册属性编辑器,在这种情况下,编辑器用于...
第十九章-Delphi自定义部件开发(二)(4)

第十九章-Delphi自定义部件开发(二)(4)

第十九章-Delphi自定义部件开发(二)(4)2007-05-07⑵ 定义处理过程类型一旦你决定产生事件,就要定义事件如何被处理,这就是要决定事件处理过程的类型。在大多数情况下,定义的事件处理过程的类型是简单的通知类型(TNotifyEvent)和已定义的事件类型。通知事件只是告诉你特定的事件发生了,而没有描述什么时候和什么地方。通知事件使用时只带一个TObject类型的参数,该参数是Sender。然而所有通知事件的处理过程都知道是什么样的事件发生和发生...
第十九章-Delphi自定义部件开发(三)(1)

第十九章-Delphi自定义部件开发(三)(1)

第十九章-Delphi自定义部件开发(三)(1)2007-05-073. 创建新的消息处理方法因为Delphi只为大多数普通Windows消息提供了处理方法,所以当你定义自己的消息时,就要创建新的消息处理方法。用户自定义消息的过程包括两个方面:● 定义自己的消息● 声明新的消息处理方法⑴ 定义自己的消息许多标准部件为了内部使用定义了消息。定义消息的最一般的动因是广播信息和状态改变的通知。定义消息过程分两步:● 声明消息标识符● 声明消息记录类型① 声明消息...
第十九章-Delphi自定义部件开发(三)(2)

第十九章-Delphi自定义部件开发(三)(2)

第十九章-Delphi自定义部件开发(三)(2)2007-05-0719.2.2.4 注册部件编写部件及其属性、方法和事件只是部件创建过程的一部分。尽管部件具有这些特征就可用,但部件真正功能强大的是在设计时操作它们的能力。使部件在设计时可用需要经过如下几步:● 用Delphi注册部件● 增加选择板位图● 提供有关属性和事件的帮助● 存贮和读取属性1. 用Delphi注册部件为了让Delphi识别自定义部件,并将它们放置于Component Palette上...
第十九章-Delphi自定义部件开发(三)(3)

第十九章-Delphi自定义部件开发(三)(3)

第十九章-Delphi自定义部件开发(三)(3)2007-05-07编译过的Help文件和关键词文件应当与库单元在同一目录。① 建立Help文件你可以使用任何的工具创建Windows Help文件。Delphi的多文件搜索引擎,可以包含任何数目的Help文件的要素。在编译的Help文件之外,你应当拥有RTF源文件,这样才能生成关键词文件。为使自定义部件的Help同库中其它部件一起工作,要遵循下列约定:● 每个部件有占一页的帮助部件帮助页应当给出部件目的的简...
第十九章-Delphi自定义部件开发(三)(4)

第十九章-Delphi自定义部件开发(三)(4)

第十九章-Delphi自定义部件开发(三)(4)2007-05-07③ 决定存储什么用户也可以控制Delphi是否存储部件的每一个属性。缺省情况下,在对象的published部分声明的所有属性都被存储。然而,可以选择不存储所给的属性,或者设计一个函数在运行时决定是否存储属性。控制Delphi是否存储属性的方法是在属性声明后面加stored指令,后跟True或False,或者是布尔方法名。你可以给任何属性的声明或重声明加stored表达式。下面的代码显示了部...
第十九章-Delphi自定义部件开发(三)(5)

第十九章-Delphi自定义部件开发(三)(5)

第十九章-Delphi自定义部件开发(三)(5)2007-05-071. 增加只读属性给日历控制增加只读选项是直接过程。通过增加属性,可以提供在设计时使控制只读的方法,当属性值被设为True,将使控制中所有元素不可被选。⑴ 增加属性声明和保存值的private域:typeTDBCalendar=class(TClendar)privateFReadOnly: Boolean;publicconstructor Create (Aowner: TCompon...
<< 1 2 3 4 5 6 7 8 9 10 >>