Welcome 微信登录

首页 / 软件开发 / Delphi

第十一章-Delphi应用程序的应用(一)(1)

第十一章-Delphi应用程序的应用(一)(1)

第十一章-Delphi应用程序的应用(一)(1)2007-05-0711.1 Help文件的建立 Help文件是Micosoft Windows3.0以上的版本提供的超文本帮助文件。利用这种超文本,用户可非常方便地使用帮助文件系统。帮助文件是以主题为主线进行编写的,一个主题可以跳转至相关的主题,也可按关键字进行主题查询。帮助文件与软件开发工具相结合,可实现应用程序的"上下文敏感",而且帮助系统自动装入。“上下文敏感”是指根据程序当前...
第十一章-Delphi应用程序的应用(一)(2)

第十一章-Delphi应用程序的应用(一)(2)

第十一章-Delphi应用程序的应用(一)(2)2007-05-074.插入+脚标。在主题第一行的K脚标之后插入+脚标。在主题文本以下的+ 脚标处键入浏览顺序标识符。标识符可以是一个数(如005),或一组名字加上冒号和数(如 CAL C:005)一个主题只能有一个浏览顺序。热点是用户可以激发某种动作的文本或图像。一个热点可跳转至另一个主题。在其它窗口中显示主题或执行宏。多数情况下,重要字段被设计成热点以实现主题跳转。以下是实现主题跳转的步骤:1. 输入要跳...
第十一章-Delphi应用程序的应用(一)(3)

第十一章-Delphi应用程序的应用(一)(3)

第十一章-Delphi应用程序的应用(一)(3)2007-05-0711.1.2.4 编译帮助工程文件 有两种编译器可以编译帮助工程文件:HCP.EXE ,H31.EXE。两种编译器编译的文件不能在Winddow3.0中使用,但能在Windows 3.1中使用。其中HCP.EXE是保护模式“编译器”,它能更好的使用内存。必须在Windows的Dos窗口中使用HCP.EXE。编译前要注意两个问题:1. 所有源文件必须以RTF格式保存;...
第十一章-Delphi应用程序的应用(二)(1)

第十一章-Delphi应用程序的应用(二)(1)

第十一章-Delphi应用程序的应用(二)(1)2007-05-07所有的应用程序都是TApplication的派生类。TApplication有三种方法调用在线帮助系统。HelpContext方法可调用WinHelp(关于Winhelp的内容见上节)。它把HelpFile 中的文件名和一个文本代码传递给WinHelp。HelpFile是TApplication的字符串类型的属性,专门用来存放Help文件的。如果HelpFile属性是空字符,HelpCon...
第十一章-Delphi应用程序的应用(二)(2)

第十一章-Delphi应用程序的应用(二)(2)

第十一章-Delphi应用程序的应用(二)(2)2007-05-07TApplication部件的OnHelp事件响应帮助事件。 当应用程序接收到一个所需的帮助时,发生OnHelp事件。使用OnHelp事件可以在需要帮助时定义一些特殊过程。 以下的例子改变了应用程序的帮助文件,AppHelp函数用来处理OnCreate事件。 function TForm1.AppHelp(Command.Word;Data : lontint) : Booleanbegi...
第十一章-Delphi应用程序的应用(二)(3)

第十一章-Delphi应用程序的应用(二)(3)

第十一章-Delphi应用程序的应用(二)(3)2007-05-07首先,在TForm1对象中宣称DisplayHint方法,并在单元的implementation部分编写实现代码。在DisplayHint方法中,把应用程序的Hint属性赋给面板的标题。另一个重要问题是必须把DisplayHint方法作为处理OnHint事件的方法。窗体的OnCreate事件的代码解决了这个问题。下面列出了程序的完整代码。当用户运行程序, 把鼠标置于菜单或部件之上,在窗体的...
第十章-动态链接库编程(一)(1)

第十章-动态链接库编程(一)(1)

第十章-动态链接库编程(一)(1)2007-05-07动态链接库(DLLs)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中,同时用户也可以用LIB程序创建自己的函数库。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的.OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环境的出现,函数库的方法显得过于累赘。如...
第十章-动态链接库编程(一)(2)

第十章-动态链接库编程(一)(2)

第十章-动态链接库编程(一)(2)2007-05-0710.2.1.3 DLLs中的变量和段 一个DLLs拥有自己的数据段(DS),因而它声明的任何变量都为自己所私有。调用它的模块不能直接使用它定义的变量。要使用必须通过过程或函数界面才能完成。而对DLLs来说,它永远都没有机会使用调用它的模块中声明的变量。一个DLLs没有自己的堆栈段(SS),它使用调用它的应用程序的堆栈。因此在DLL中的过程、函数绝对不要假定DS = SS。一些语言在小模式编译下有这种假...
第十章-动态链接库编程(一)(3)

第十章-动态链接库编程(一)(3)

第十章-动态链接库编程(一)(3)2007-05-0710.2.2 调用DLLs有两种方法可用于调用一个储存在DLLs中的过程。1.静态调用或显示装载使用一个外部声明子句,使DLLs在应用程序开始执行前即被装入。例如: function Instr(SourceStr : PChar;Check : Char); Integer; far; external "UseStr";使用这种方法,程序无法在运行时间里决定DLLs的调用。假如一个特定的DLLs在运...
第十章-动态链接库编程(一)(4)

第十章-动态链接库编程(一)(4)

第十章-动态链接库编程(一)(4)2007-05-0710.3 利用DLLs实现数据传输 10.3.1 DLLs中的全局内存 Windows规定:DLLs并不拥有它打开的任何文件或它分配的任何全局内存块。这些对象由直接或间接调用DLLs的应用程序拥有。这样,当应用程序中止时,它拥有的打开的文件自动关闭,它拥有的全局内存块自动释放。这就意味着保存在DLLs全局变量中的文件和全局内存块变量在DLLs没有被通知的情况下就变为非法。这将给其它使用该DLLs的应用程...
第十章-动态链接库编程(二)(1)

第十章-动态链接库编程(二)(1)

第十章-动态链接库编程(二)(1)2007-05-0710.3.2.2 服务器程序的编写 服务器程序必须包含对DLL的调用代码,如: function GetGlobalMem: THandle; far; external "c:dllsglbmem";通过调用该函数,服务器可以获得全局内存块的句柄。在写入数据前,服务器必须锁定全局内存,以避免在写入过程中Windows移动该内存块的位置。函数GlobalLock锁定全局内存并返回指向该内存块的指针: p...
第十章-动态链接库编程(二)(2)

第十章-动态链接库编程(二)(2)

第十章-动态链接库编程(二)(2)2007-05-0710.4.1 利用DLLs实现窗体重用的一般步骤 利用DLLs实现窗体重用的步骤是:1.在集成开发环境(IDE)中,按自己的需要设计一个窗体;2.编写一个用于输出的函数或过程。在该函数或过程中,设计的窗体被实例化;3.重复步骤1、2,直到完成所有重用窗体的设计;4.打开工程文件,进行修改,以适应生成 .dll文件的需要:(1).把保留字program设为library;(2).从uses子句中去掉For...
第十章-动态链接库编程(二)(3)

第十章-动态链接库编程(二)(3)

第十章-动态链接库编程(二)(3)2007-05-07在口令设置窗口中,为了确保用户记住了设置的口令,在用户输入并按回车键后,要求用户再次输入进行确认。只有用户重新输入的字符串与原设置口令相同,口令设置窗口才能正常关闭 。否则将原设置口令清空,要求用户再次输入。以上功能的实现在编辑框的OnKeyPress事件处理过程中。 procedure TSetPassWordForm.Edit1KeyPress(Sender: TObject; var Key: C...
第九章-Delphi拖放编程(1)

第九章-Delphi拖放编程(1)

第九章-Delphi拖放编程(1)2007-05-07拖放(DragDrop)是Windows提供的一种快捷的操作方式。作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我们先介绍控件的拖放支持,而后再给出开发拖放操作的一般步骤和应用实例。...
第九章-Delphi拖放编程(2)

第九章-Delphi拖放编程(2)

第九章-Delphi拖放编程(2)2007-05-079.1.3 拖放方法 拖放方法有三个:●BeginDrag : 人工方式下开始一个拖动●EndDrag : 结束一个拖动●Dragging : 判断一个控件是否正被拖动 这三个方法都被源控件使用。当DragMode置为dmManual时,拖动必须调用控件的BeginDrag方法才能开始。BeginDrag有一个布尔参数Immediate。如果输入参数为True,拖动立即开始,光标改变到DragCurso...
第九章-Delphi拖放编程(4)

第九章-Delphi拖放编程(4)

第九章-Delphi拖放编程(4)2007-05-079.3 拖放应用实例:文件管理器的拖放支持 在第六章最后开发的文件管理器应用实例,虽然功能上已初具规模,但在操作上与Windows的文件管理器相比还有很大不足。其中最大的缺陷是它不支持文件的拖放移动和拖放拷贝。在这一章结束的时候,我们可以来弥补这一缺陷了。文件拖放移动指的是当用户把一个文件拖动到目录树下的某一目录并放下时,文件将自动移动到该目录中;文件拖放拷贝指的是当用户把一个文件拖动到某个驱动器标签...
第八章-对象链接与嵌入(一)(1)

第八章-对象链接与嵌入(一)(1)

第八章-对象链接与嵌入(一)(1)2007-05-07对象链接和嵌入(Object Linking and Embeding)是一组服务功能,它提供了一种用源于不同应用程序的信息创建复合文档的强有力方法。 对象可以是几乎所有的信息类型,如文字、位图、矢量图形,甚至于声音注解和录像剪辑等。Windows附件组中的书写器是应用OLE的实例,使用单击“对象 | 插入”菜单项, 书写器弹出插入对话框,对话框中列出了多个OLE服务器程序,如公...
第八章-对象链接与嵌入(一)(2)

第八章-对象链接与嵌入(一)(2)

第八章-对象链接与嵌入(一)(2)2007-05-078.2 设计状态OLE对象的创建 Dephi可以在设计状态和运行状态中创建OLE对象。本节介绍设计状态OLE对象的创建。 8.2.1 TOLEContainer部件 要创建OLE对象,需在窗体中加入OLE包容器部件。 应用程序部件包含链接或嵌入的对象。用该部件可显示在OLE服务器编辑的数据。部件的ObjClass,ObjDoc,ObjItem 属性分别定义OLE类、文件、项目。要定义OLE对象是否本地...
<< 71 72 73 74 75 76 77 78 79 80 >>