Delphi对象链接和嵌入
Windows的两个强有力工具──动态数据交换(DDE)和对象的链接嵌入(OLE)
服 务 器 提 供 对 象 的 应用 程 序
。
r 选择 Wo 置 从
l)
t
。
.2
DD E
“
的 运行 机 制
DDE
编辑 菜 单 中 选 择 粘 贴 特 定 的
P
a s
”
”
(p
n
a s
t
e
Sp
t t
,
e
启 动一 个 支 持
、
的 应 用 程 序 时 应 用 程序 马 上
s
。 ,
,
e
ia
在
a n
t
e
Sp
t
e
e e
ia
l 的 对话 框 中 选 择 U
fo
r
ma
e
d
开 始发 送有 关 它 的 名 字 和 数据 文 件 的 消 息 给其 他打 开 的 支持 18
DDE
T
e x
d P
,
a
s
Li
n
k ( 非格式化文
本 和 数 据 链接
。
) 按
n do 的 Wi
w
应 用程 序 在 任 何 时 候 另 一
O K 按钮
。
。
,
快 速 传 送 数据 的 目的 本 文 深 入 剖析
。
与
O LE
,
井
务 器 的关 系 提 供 数 据 的 应 用 程 序 称 为 服 务 器 程 序 请
,
,
给 出应 用 实 例
n d w i
o
求数 据 的 应 用程 序 称 为 客户 程 序 而通 信 就 是 客 户 与服
3
.
delphi文件的读取和写入
delphi文件的读取和写入概述:Delphi是一种高级编程语言,用于开发Windows应用程序。
在Delphi中,文件的读取和写入是常见的操作,可以通过使用内置的文件处理函数和过程来实现。
本文将详细介绍如何在Delphi中进行文件的读取和写入操作。
一、文件的读取在Delphi中,可以使用TFileStream类来读取文件的内容。
以下是读取文件的步骤:1. 创建TFileStream对象:使用TFileStream类的构造函数创建一个TFileStream对象。
构造函数需要两个参数,第一个参数是文件名,第二个参数是打开文件的模式。
模式可以是fmOpenRead(只读模式)或fmShareDenyNone(允许其他进程访问)。
2. 读取文件内容:调用TFileStream对象的Read方法来读取文件的内容。
Read方法需要两个参数,第一个参数是读取到的数据存放的缓冲区,第二个参数是要读取的字节数。
3. 关闭文件:使用TFileStream对象的Free方法来关闭文件。
示例代码如下:```delphivarFileStream: TFileStream;Buffer: array of Byte;ReadBytes: Integer;beginFileStream := TFileStream.Create('file.txt', fmOpenRead);SetLength(Buffer, FileStream.Size);ReadBytes := FileStream.Read(Buffer[0], FileStream.Size);FileStream.Free;// 处理读取到的文件内容// ...end;```二、文件的写入在Delphi中,可以使用TFileStream类来写入文件的内容。
以下是写入文件的步骤:1. 创建TFileStream对象:使用TFileStream类的构造函数创建一个TFileStream对象。
delphi superobject 用法 -回复
delphi superobject 用法-回复Delphi SuperObject是Delphi编程语言中的一个开源类库,用于处理和操作JSON数据。
它提供了一种方便的方式来解析、创建和修改JSON文档,使开发人员能够轻松地在Delphi应用程序中处理JSON数据。
本文将详细介绍Delphi SuperObject的用法,以帮助读者理解如何使用该类库进行JSON数据的处理。
第一步:了解JSON和Delphi SuperObject在深入使用Delphi SuperObject之前,我们首先需要了解JSON数据格式以及Delphi SuperObject类库的基本概念。
JSON(JavaScript Object Notation)是一种用于数据交换的轻量级数据格式,具有易于阅读和编写的特点。
它由键值对组成,这些键值对可以嵌套并且可以包含基本数据类型(如字符串、整数、布尔值等)以及复杂的数据结构(如数组、对象等)。
Delphi SuperObject是一个库,为Delphi开发人员提供了一种方便的方式来处理JSON数据。
它提供了一组类和方法,可以轻松地解析、创建和修改JSON文档。
Delphi SuperObject支持多种方法来访问和操作JSON 数据,包括通过路径访问、操作对象和数组等。
第二步:安装和导入Delphi SuperObject要使用Delphi SuperObject,我们首先需要在Delphi开发环境中安装和导入这个库。
以下是安装和导入Delphi SuperObject的步骤:1. 下载SuperObject库的源代码,并将其解压缩到本地目录。
2. 在Delphi开发环境中创建一个新的项目或打开现有的项目。
3. 在Delphi的主菜单中,选择"Project" -> "Options"。
4. 在"Options"对话框中,选择"Delphi Compiler"。
delphi考试试题
1、简述面向对象技术中“类”与“对象”的概念。
结合Delphi中使用的组件,举例说明什么是类、什么是对象。
类是对象的抽象及描述,它是具有统一属性和方法的一类对象的统一描述体,是用来定义某类对象共有属性和方法的模板。
而对象是类的实例。
在Delphi环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。
而用户在窗体上创建的一个按钮就是对象的概念(按钮对象)。
用户可以在窗体上用按钮类创建若干个按钮对象,它们都是按钮类的实例。
2、在Delphi中,什么是对象的属性、方法和事件?一个对象是由属性、方法和事件所组成。
属性表示对象中的数据,方法是对象能够执行的动作,事件是能够引起对象反应的条件。
3、简述利用Delphi开发一个项目的基本步骤。
●建立一个新的项目●建立窗体●在窗体上加入对象●检查和设定对象属性●编写对象的事件处理程序●编译、试运行,并进行代码调试保存项目文件,退出Delphi 环境4、在一个单元中,全局变量和局部变量的含义是什么?说明在单元文件中如何定义这两种变量(可举例说明)。
局部变量只能在定义它的程序块中使用,且其生命周期也只存在于从程序块开始执行到程序块执行结束。
在一个事件处理程序中的变量说明部分,能够定义一个局部变量,供该事件处理程序内部使用。
而全局变量可以在单元中的各程序块中使用(共享),且生命周期存在于整个单元代码的活动期中。
在Implementation保留字后(但不要在程序块里)定义的变量就是全局变量。
选择题1、下列哪些条目可作为Delphi的变量名,哪些不行,并说明原因。
abc 123 abc123 123abc file a!合法的变量名是:abc abc123选择题7、如果想查看showmessage过程的帮助信息,请你说出两种获取帮助信息的方式。
①通过主菜单Help的Delphi Help命令调出帮助主页面,在“索引”页输入框中输入要查找的showmessage单词,即可找出相关的帮助信息。
Delphi实现窗体内嵌其他应用程序窗体
Delphi实现窗体内嵌其他应用程序窗体[代码]Delphi实现窗体内嵌其他应用程序窗体实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果。
本文实现的是内嵌一个记事本程序,如下图:在实现细节上需要注意几点:1.为了美化程序的嵌入效果,需要隐藏其标题栏2.在外部窗体大小变化时,需要内嵌的窗体也随之变化大小3.外部程序退出时,内嵌的程序也要退出下面是例子程序。
新建窗体,上面放置一个Panel控件,名为pnlApp,然后按下面代码编写:unit frmTestEmbedApp;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls;typeTForm1 = class(TForm)pnlApp: TPanel;procedure FormCreate(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure FormResize(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;hWin: HWND = 0;implementation{$R *.dfm}type// 存储窗体信息PProcessWindow = ^TProcessWindow;TProcessWindow = recordProcessID: Cardinal;FoundWindow: hWnd;end;// 窗体枚举函数function EnumWindowsProc(Wnd: HWND; ProcWndInfo: PProcessWindow): BOOL; stdcall;varWndProcessID: Cardinal;beginGetWindowThreadProcessId(Wnd, @WndProcessID);if WndProcessID = ProcWndInfo^.ProcessID then beginProcWndInfo^.FoundWindow := Wnd;Result := False; // 已找到,故停止EnumWindowsendelseResult := True; // 继续查找end;// 由 ProcessID 查找窗体 Handlefunction GetProcessWindow(ProcessID: Cardinal): HWND;varProcWndInfo: TProcessWindow;beginProcWndInfo.ProcessID := ProcessID;ProcWndInfo.FoundWindow := 0;EnumWindows(@EnumWindowsProc,Integer(@ProcWndInfo)); // 查找窗体Result := ProcWndInfo.FoundWindow;end;// 在 Panel 上内嵌运行程序function RunAppInPanel(const AppFileName: string; ParentHandle: HWND; var WinHandle: HWND): Boolean;varsi: STARTUPINFO;pi: TProcessInformation;beginResult := False;// 启动进程FillChar(si, SizeOf(si), 0);si.cb := SizeOf(si);si.wShowWindow := SW_SHOW;if not CreateProcess(nil, PChar(AppFileName), nil, nil, true,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, si, pi) then Exit;// 等待进程启动WaitForInputIdle(pi.hProcess, 10000);// 取得进程的 HandleWinHandle := GetProcessWindow(pi.dwProcessID);if WinHandle > 0 then begin// 设定父窗体Windows.SetParent(WinHandle, ParentHandle);// 设定窗体位置SetWindowPos(WinHandle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOZORDER);// 去掉标题栏SetWindowLong(WinHandle, GWL_STYLE, GetWindowLong(WinHandle, GWL_STYLE)and (not WS_CAPTION) and (not WS_BORDER) and (not WS_THICKFRAME));Result := True;end;// 释放 HandleCloseHandle(pi.hProcess);CloseHandle(pi.hThread);end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin// 退出时向内嵌程序发关闭消息if hWin > 0 then PostMessage(hWin, WM_CLOSE, 0, 0);end;procedure TForm1.FormCreate(Sender: TObject);constApp = 'C:\Windows\Notepad.exe';beginpnlApp.Align := alClient;// 启动内嵌程序if not RunAppInPanel(App, pnlApp.Handle, hWin) then ShowMessage('App not found');end;procedure TForm1.FormResize(Sender: TObject);begin// 保持内嵌程序充满 pnlAppif hWin <> 0 then MoveWindow(hWin, 0, 0, pnlApp.ClientWidth, pnlApp.ClientHeight, True);end;end.这种方式也存在几个问题:问题1:如果程序有Splash窗体先显示,则实际窗体无法内嵌,因为仅将Splash窗体的父窗体设定为本程序的控件句柄,后续窗体无法设定。
delphi in 的用法
delphi in 的用法
Delphi是一种基于Pascal语言的集成开发环境(IDE),它可以用来开发Windows应用程序、Web应用程序、数据库应用程序、移动应用程序等。
Delphi In是Delphi的一个版本,它是专门用来开发嵌入式系统的。
Delphi In的主要用法如下:
1. 嵌入式系统开发:Delphi In可以用来开发嵌入式系统,如工业控制系统、智能家居系统、医疗设备等。
它提供了丰富的组件库和工具,可以方便地实现各种功能,如数据采集、数据处理、通信、控制等。
2. 硬件控制:Delphi In可以与各种硬件设备进行通信,如传感器、执行器、PLC 等。
它支持多种通信协议,如串口、TCP/IP、Modbus等,可以方便地实现硬件控制功能。
3. 数据库应用程序开发:Delphi In可以用来开发各种数据库应用程序,如客户关系管理系统、库存管理系统、人力资源管理系统等。
它提供了强大的数据库访问组件,可以方便地实现数据的增删改查等操作。
4. Web应用程序开发:Delphi In可以用来开发Web应用程序,如电子商务网站、社交网络等。
它支持多种Web开发技术,如、PHP等,可以方便
地实现Web应用程序的开发。
5. 移动应用程序开发:Delphi In可以用来开发移动应用程序,如Android应用程序、iOS应用程序等。
它提供了移动开发所需的各种组件和工具,可以方便地实现移动应用程序的开发。
总之,Delphi In是一种功能强大的开发工具,可以用来开发各种类型的应用程序,特别是嵌入式系统和硬件控制方面的应用程序。
在通用型字段中链接或嵌入OLE对象的区别是什么
在通用型字段中链接或嵌入OLE对象的区别是什么?悬赏分:30|解决时间:2009-3-27 14:12 |提问者:caocaoqq在通用型字段中链接或嵌入OLE对象的区别是什么?问题补充:备注型与通用型字段的内容存放在什么文件中?最佳答案不知你有没有接触过VF编程,如果有过的话,对OLE这个东西应该不会很陌生. 但不管你有没有接触过它,相信你看了下面的内容,会对你有所帮助的.VFP的OLE技术应用详解VisuaLFoxPro3.0(以下简称VFP)使用了OLE2.0技术,使VFP应用程序的适应能力大为加强。
VFP提供两种类型的OLE对象:一种是OLE控件(.OCX文件),这是一种自定义控件,通常在WINDOWS\SYSTEM目录下,拥有自己的事件、方法,类似于VFP 的基本类,这种控件可以用VC、VB5.0、DeLphi、SDK2.0等编程工具开发。
VFP 缺省提供了四种可供使用的OLE控件,即通信(MSCOMM32.OCX)、消息应用程序接口MAPI(MSMAPI32.OCX)、OutLine(MSOUTL32.OCX)和图片裁剪(PICCLP32.OCX);另一种是可插入型OLE对象,这是由其他应用程序创建的,它们没有自己的事件集合。
这一种可插入型OLE对象又可分为限制性可插入型OLE对象和非限制性可插入型OLE对象。
VFP提供两种引用OLE对象的途径都是通过VFP中的控件实现的:一种是通过OLE 容器控件链接或嵌入对象,OLE容器控件可以引入OLE控件和非限制性可插入型OLE对象;另一种是通过OLE绑定型控件链接或嵌入数据表的通用类型字段中所存放的OLE对象,这通常是些限制性可插入型OLE对象。
在VFP中OLE对象是通过链接或嵌入操作方式进行操作的。
链接和嵌入操作之间的区别在于OLE对象所存放的地点:链接操作中的OLE对象仍然存放在创建它的源文件中数据表或表单仅仅存储源文件的位置,即一个指针,在更改源文件时,被链接的OLE对象将被及时更新。
固定资产管理系统毕业论文
摘要随着信息技术在管理上越来越深入而广泛的应用,管理系统的开发与实施在技术上已逐步成熟。
管理系统是一个不断发展的学科,任何一个单位要生存要发展,要高效率的把内部活动有机的组织起来,就必须建立与自身特点相适应的管理系统。
本文论述了企业数字化建设发展中实现固定资产管理的业务需求,关键技术和具体过程。
固定资产管理系统是在Windows XP平台下,用Delphi 7.0和Raise控件包开发而成。
基于Microsoft SQL Server 2000数据库系统的数据管理使该软件有更优异的性能.文章介绍了固定资产管理系统的系统分析部分,包括业务流程分析等;系统设计部分主要介绍系统功能设计和数据库设计及代码设计,系统实现部分说明了几个关键存储过程的算法。
本系统界面友好,操作简便快捷,比较实用。
关键词:类;继承;存储过程;目录摘要................................................................ (I)引言 (1)第1章系统概述 (1)1.1 系统及需求分析.................................................. (2)1.2系统的设计背景 (3)1.3 系统的功能简介 (4)1.4系统的设计目标................................................... .. (4)第2章系统分析 (11)2.1 业务流程分析 (12)2.1 数据流程分析................................................... .. (12)2.1 数据存储分析:实体联系图... .............................. .. (12)2.1 功能分析:功能层次图....................................... .. (12)第3章系统设计 (13)3.1 软件模块结构设计 (14)3.2 数据库设计 (14)第4章系统功能模块 (13)4.1 系统启动类 (14)4.2 窗体继承 (14)4.3 系统界面设计 (14)4.4 系统初始化 (14)4.5 增加资产模块............ . (14)4.6 减少资产模块 (14)4.7 统计查询模块 (14)4.8 数据库备份与还原模块......... . (14)第5章系统实现 (13)5.1 系统的运行环境 (14)5.2 系统安装与调试............ . (14)结论 (15)参考文献 (16)致谢 (17)附录 (18)引言根据指导老师、公司和客户的要求,本次毕业设计的题目是固定资产管理系统,要求利用Delphi完成管理平台设计;使用Microsoft SQL Server 2000数据库存储数据。
DELPHI中文帮助手册INDEX
目录第一部分基础篇第一章Delphi快速入门1.1 Delphi基本概念介绍1.1.1 Delphi的基本形式1.1.2 面向对象编程的概念1.2 Delphi2.0快速入门1.2.1 进入Delphi的可视化编程环境1.2.2 Delphi 2.0可视化编程环境介绍1.2.3 设计简单的用户界面1.2.4 改变对象的属性1.2.5 编写事件处理过程1.2.6 使用联机帮助Help1.3 Delphi2.0的可视化部件用法简介1.3.1 常用的文本相关部件1.3.2 按钮和检查框部件1.3.3 分组、分界部件1.3.4 图形、图象部件1.3.5 关系图、文件列表部件1.3.6 滚动部件1.3.7 网格、表格部件1.3.8 多媒体(MultiMedia)和OLE部件1.4 使用非可视部件1.4.1 使用菜单部件1.4.2 使用计时器部件Timer1.4.3 使用公用对话框部件1.5 使用Delphi的工程管理、设计工具1.5.1 创建多窗体工程项目1.5.2 使用工程管理器1.5.3 使用窗体样板和对话框专家1.5.4 使用工程样板和应用专家第二章Delphi 面向对象的编程方法2.1 编写Object Pascal程序代码2.1.1 编写赋值语句2.1.2 标识符的说明与使用2.1.3 过程与函数2.1.4 跳转语句2.1.5 循环语句2.1.6 程序模块2.1.7 关于作用范围2.1.8 编写一个过程或函数2.1.9 定义新的数据类型2.1.10 Object Pascal的库单元Unit 2.2 用Delphi的对象进行编程2.2.1 什么是对象2.2.2 从一个对象中继承数据和方法2.2.3 对象的范围2.2.4 对象公有域和私有域的说明2.2.5 访问对象的域和方法2.2.6 对象变量的赋值2.2.7 建立非可视化对象第三章字符串列表及应用3.1 字符串列表的常用操作3.1.1 列表中操作字符串3.1.2 装载、保存字符串列表3.1.3 创建新的字符串列表3.1.4 往字符串列表中加入对象3.2 字符串列表应用3.2.1 设置自画风格3.2.2 把图像加入字符串列表3.2.3 绘制自画项目第4章文本编辑器的设计4.1 多文档界面4.1.1 创建父窗体4.1.2 创建子窗体4.1.3 创建应用程序菜单与菜单融合4.2 多页面界面4.2.1 静态多页面界面4.2.2 动态多页面界面4.3 文本编辑部件及应用4.3.1 TEdit部件4.3.2 TMemo部件4.4 常用对话框的使用4.4.1 字体对话框部件4.4.2 查找对话框部件4.4.3 替换对话框部件4.4.4 打开对话框部件4.5 文件打印4.5.1 TPrinter对象4.5.2 打印对话框第五章Delphi图形图像编程5.1 图形对象概述5.1.1 TCanvas对象5.1.2 TPen对象5.1.3 TBrush对象5.1.4 TColor类型5.2 图形程序的开发5.2.1 在工具条中加快速键5.2.2 响应鼠标事件5.2.3 绘图功能的实现5.3 图像对象概述5.3.1 TGraphic对象5.3.2 TPicture对象5.3.3 TImage部件5.3.4 TBitmap对象5.4 图像对象的应用第六章文件管理6.1 文件类型和标准过程6.1.1 文本文件6.1.2 记录文件6.1.3 无类型文件6.1.4 Delphi的文件管理标准过程6.2 记录文件的应用6.2.1 任务介绍6.2.2 设计基本思路6.2.3 记录文件的创建和打开6.2.4 记录文件的读入和显示6.2.5 增加一条记录6.2.6 修改记录6.2.7 记录的删除、插入、排序6.2.8 结果综合6.2.9 编辑对话框的输入检查6.2.10 文件和系统的关闭6.2.11 记录文件小结6.3 文件控件的应用6.3.1 文件控件及其相互关系6.3.2 文件名浏览查找系统的设计思路6.3.3 文件名浏览查找系统的功能和实现6.4 文件管理器的实现6.4.1 设计基本思路6.4.2 子窗口的创建、布置和关闭6.4.3 文件控件的联系6.4.4 DriveTabSet的自画风格显示6.4.5 文件管理基本功能的实现6.4.6 其它文件管理功能的实现6.4.7 目录管理功能的实现6.4.8 一些问题的处理6.4.9 小结第七章剪贴板和动态数据交换7.1 剪贴板及其应用7.1.1 使用剪贴板传输文本7.1.2 剪贴板类7.1.3 利用剪贴板传输图像7.1.4 建立自己的剪贴板观察程序7.2 Windows的DDE原理和Dephi的DDE实现机制7.2.1 Windows的DDE原理7.2.2 Delphi的DDE实现机制简介7.3 DDE客户程序的实现7.3.1 联接模式7.3.2 与DDE服务器建立联系7.3.3 数据申请7.3.4 数据发送7.3.5 控制服务器应用程序的执行7.3.6 格式化文本7.3.7 响应DDE事件7.3.8 利用客户程序和Excel交换数据7.3.9 用客户程序控制程序管理器7.4 DDE服务器程序的实现7.4.1 与DDE客户程序建立联接7.4.2 响应DDE事件7.4.3 DDE服务器应用例程7.4.4 小结第八章对象的链接与嵌入8.1 OLE简介8.1.1 OLE1.0和OLE2.08.1.2 链接与嵌入8.1.3 设计状态OLE对象的创建8.1.4 OLE类·文本、项目8.2 设计状态OLE对象的创建8.2.1 TOLEContainer部件8.2.2 OLE对象创建的步骤8.3 OLE应用程序的开发8.3.1 OLE应用程序界面开发8.3.2 插入对象8.3.3 冻结对象8.3.4 粘贴对象8.3.5 释放对象8.3.6 文件中的OLE对象8.4 OLE自动化8.4.1 TAutoObject对象8.4.2 创建OLE自动化服务器8.4.3 自动化另一程序第九章Delphi 拖放(DragDrop)编程9.1 控件的拖放支持9.1.1 拖放属性9.1.2 拖放事件9.1.3 拖放方法9.2 开发拖放功能的一般步骤9.2.1 开始拖动操作9.2.2 接收拖动项目9.2.3 放下拖动项目9.2.4 结束拖动操作9.3 文件管理器的拖放支持第十章动态链接库(DLLs)编程10.1 Windows的动态链接库原理10.1.1 动态链接库的工作原理10.1.2 Windows系统的动态链接库10.2 DLLs的编写和调用10.2.1 DLLs的编写10.2.2 调用DLLs10.2.3 静态调用10.2.4 动态调用10.3 利用DLLs实现数据传输10.3.1 DLL中的全局内存10.3.2 利用DLLs实现应用程序间的数据传输10.4 利用DLLs实现窗体重用10.4.1 利用DLL实现窗体重用的一般步骤10.4.2 窗体重用实例10.4.3 小结第十一章Delphi应用程序的Help应用11.1 Help文件的建立11.1.1 建立Help文件所需的工具和文件11.1.2 Help文件的创建11.2 Delphi应用程序的Help编程11.2.1 定义应用程序的帮助文件11.2.2 通用对话框中使用帮助系统11.3 Delphi帮助提示(Hint)的应用11.3.1 帮助提示的显示11.3.2 OnHint事件11.4 自定义部件的帮助的安装第十二章异常处理与程序调试12.1 Delphi异常处理机制与异常类12.1.1 运行时间库异常类(RTL Exception)12.1.2 对象异常类12.1.3 部件异常类12.1.4 小结12.2 异常保护12.2.1 需要保护的资源12.2.2 产生一个资源保护块12.3 异常响应12.3.1 使用异常实例12.3.2 提供缺省响应12.3.3 响应一族异常12.3.4 异常的重引发和处理嵌套12.3.5 自定义异常类的应用12.3.6 利用异常响应编程12.4 程序调试简介12.4.1 调试的准备和开始12.4.2 程序运行的控制12.4.3 断点的使用12.4.4 监视数据的值12.5 其它调试工具12.5.1 Turbo Debugger12.5.2 WinSight12.5.3 WinSpector12.6 使用Browser12.6.1 设置过滤器12.6.2 使用加速菜单12.6.3 查找按钮12.6.4 Detalls区的显示页12.6.5 使用Browser12.6.6 小结第二部分数据库篇第十三章Delphi开发数据库应用程序概述13.1 数据库系统概述13.1.1 数据库管理系统13.1.2 数据库应用程序13.2 Delphi的数据库特性及功能简介13.2.1 Delphi的数据库特性13.2.2 Delphi可以访问的数据源13.3 Delphi数据库的体系结构13.3.1 数据访问部件13.3.2 数据控制部件13.3.3 数据库窗体专家和数据库操作台(DBD)13.4 Delphi数据库应用程序的开发方法和步骤13.4.1 概述13.4.2 数据库应用程序的开发步骤13.4.3 交付数据库应用程序13.4.4 安装BDE13.4.5 安装SQL Links第十四章简单数据库应用的创建及MASTAPP介绍14.1 简单的单表数据库应用14.1.1 选择相关的部件14.1.2 设置部件的属性14.1.3 运行程序14.2 利用TDBNavigator部件创建存取程序14.2.1 创建应用程序窗体14.2.2 使用TDBNavigator部件移动记录指针14.2.3 定制TDBNavigator部件14.3 创建主要──明细数据库应用14.3.1 一对多关系的主要──明细型数据库应用程序14.3.2 一对多关系的数据库应用14.4 字段对象的使用14.4.1 字段对象的类型14.4.2 创建永久性的字段对象14.4.2 字段对象的属性设置14.4.4 字段对象的访问14.4.5 设定字段对象的显示格式14.4.6 自定义字段以及计算字段对象的创建14.5 查询数据库中的记录14.5.1 使用GotoKey方法查找数据记录14.5.2 使用FindKey方法查找数据库中的记录14.5.3 利用GotoNearest和FindNearest执行不精确查找14.6 修改数据库中的记录14.6.1 Edit和Post方法14.6.2 实现异常保护的try...finally语句14.7 插入和删除记录14.7.1 逐步插入方法14.7.2 调用InsertRecord插入记录14.8 输入数据的有效性验证第十五章数据访问部件的应用及编程15.1 Delphi数据访问部件的层次结构15.2 TSession部件及其应用15.2.1 TSession部件的重要属性及作用15.2.2 TSession部件的方法:15.2.3 TSession部件应用举例15.3 数据集部件TDataSet及其应用15.3.1 数据集部件的几种状态(或称模式)15.3.2 数据集的打开的关闭15.3.3 数据集的导航15.3.4 数据集中的数据维护15.3.5 数据集部件与数据浏览部件的连接15.3.6 数据集部件的事件15.4 TTable部件及应用15.4.1 TTable部件主要的属性15.4.2 TTable部件的方法及应用15.5 TDataSource部件及其应用15.5.1 TDataSource部件的属性15.5.2 TDataSource部件的事件15.6 字段部件和字段编辑器的使用15.6.1 字段部件15.6.2 字段编辑器的使用15.7 TReport部件及其应用15.8 应用举例——多个窗体显示同一个数据库表第十六章数据浏览部件的应用及编程16.1 数据浏览部件的基本特性16.2 使用TDBText部件显示表中的数据16.3 使用TDBEdit部件显示和编辑表中的数据16.4 用TDBGrid部件显示和编辑表中的数据16.4.1 TDBGrid部件的主要属性及应用16.4.2 TDBGrid部件的事件及应用16.5 TDBNavigator部件及其应用16.6 TDBMemo部件及其应用16.7 TDBImage部件及其应用16.8 数据浏览部件中的列表框和组合框16.8.1 TDBComboBox部件16.8.2 TDBListBox部件第十七章SQL编程17.1 SQL语言简介17.1.1 SQL的历史17.1.2 SQL的优点17.2 TQuery部件在SQL编程中的运用17.2.1 TQuery部件的使用17.2.2 在TQuery部件中编写简单的SQL查询命令17.3 SQL语言编程概述17.3.1 SQL命令文本的编写17.3.2 SQL程序的执行17.3.3 通过TQuery部件如何获得活动的数据17.4 动态SQL语句的编程17.4.1 使用Params属性为参数赋值17.4.2 使用ParamByName方法为参数赋值17.4.3 使用Datasource属性为参数赋值17.4.4 Prepare方法的使用17.5 SQL编程实例17.5.1 设计简单的SQL程序编辑器17.5.2 设计一个数据库查询器第三部分高级开发篇第十八章Delphi客户/服务器应用开发18.1 Delphi客户/服务器应用开发原理18.1.1 客户/服务器体系结构18.1.2 关系数据库体系结构与客户/服务器模式18.1.3 各种数据库服务器功能介绍18.1.4 IDAPI结构原理18.2 Delphi客户/服务器应用开发环境的构造18.2.1 Borland SQL Links 的安装18.2.2 配置SQL环境18.3 Delphi 客户/服务器编程18.3.1 使用TDatabase部件联接SQL服务器18.3.2 处理客户/服务器事务控制18.3.3 使用存储过程18.3.4 从开发平台到服务器的向上适化18.4 Delphi客户/服务器应用实例分析18.4.1 数据库环境介绍18.4.2 应用程序分析第十九章Delphi 自定义部件开发19.1 Delphi部件原理19.1.1 什么是部件19.1.2 编写部件的不同之处19.1.3 建立部件过程概略19.2 Delphi部件编程方法19.2.1 Delphi部件编程概述19.2.2 Delphi部件编程19.3 Delphi部件编程实例19.3.1 创建数据库相关的日历控制——TDBCalendar19.3.2 创建图形部件第二十章开发Delphi对象式数据管理功能20.1 流式对象的实现原理和应用20.1.1 TStream对象20.1.2 THandleStream对象20.1.3 TFileStream对象20.1.4 TCustormMemoryStream对象20.1.5 TMemoryStream对象20.1.6 TResourceStream对象20.1.7 TBlobStream对象20.2 读写对象的实现原理和应用20.2.1 TFiler对象20.2.2 TWriter对象20.2.3 TReader对象20.3 Delphi对象式数据管理应用实例20.3.1 Delphi动态DFM文件及部件的存取在超媒体系统中的应用20.3.2 数据库BLOB字段的应用20.3.3 存取嵌入在OleContainer对象中的OLE服务器的数据附录附录A 配置数据库引擎BDE(Borland DataBase Engine)一、数据库引擎(Borland Database Engine)的配置指南1、BDE配置工具概述2、存储配置信息二、配置Microsoft ODBC1、配置Miscrosoft ODBC(Open Database Connectivity)的步骤2、配置ODBC的配置文件3、配置ODBC的BDE配置文件4、ODBC的端口配置入口5 、关于AutoODBC三、BDE配置工具的参数1、数据库引擎配置工具的System页2、数据库引擎配置工具的Date页3、数据库引擎配置工具的Time页4、数据库配置工具的Number页5、数据库引擎配置工具的Driver页6、数据库引擎配置工具的Alias页附录B Report Smith应用概述一、关于报表Reports和Repert Smith 3.0二、Reprort Smith概述三、熟悉Report Smith四、新版本Report Smith的新特点附录C InterBase概述一、Local InterBase二、InterBase Server三、InterBase的特性简介四、InterBase的约束五、语法规则六、数据库对象命名规则七、文件命名规则八、文件说明1、.主文件说明2、次级文件说明附录D 数据库桌面介绍一、数据库桌面(DataBase Desktop)新特点:1、工具条增强功能2、菜单增强功能3、文件处理增强功能4、工具增强功能5、联机帮助的增强功能6、SQL增强功能二、关于数据库桌面对象1、Tables2、Temporary Tables3、Queries4、SQL文件三、数据库桌面对象的文件扩展名四、关于数据库桌面窗口1、查询窗口2、SQL编辑器3、表格窗口4、工具条5、状态条。
DELPHI第三方控件及组件大全(安装方法与使用)
DELPHI第三方控件及组件大全(安装方法与使用)DELPHI是一种非常流行的应用程序开发环境,用于创建Windows应用程序。
作为一个强大的集成开发环境,DELPHI提供了许多内置的控件和组件,但有时候这些内置的功能并不能完全满足我们的需求。
在这些情况下,我们可以使用第三方控件和组件来扩展DELPHI的功能。
以下是一些常用的DELPHI第三方控件和组件以及安装方法和使用介绍。
FastReport是一款用于生成报表的控件,它提供了丰富的报表设计和输出选项。
使用FastReport,可以轻松地创建各种类型的报表,如表格报表、条形码报表、图形报表等。
它还支持多种输出格式,包括PDF、Excel、HTML等。
TeeChart是一个功能强大的图表控件,可以帮助你在应用程序中添加各种类型的图表,如柱状图、饼图、折线图等。
它提供了丰富的图表样式和定制选项,使你可以根据需要创建独特的图表。
Devart提供了一系列数据库组件,用于与各种类型的数据库进行交互,如MySQL、Oracle、SQL Server等。
这些组件提供了方便的API和功能,使你可以轻松地连接、查询和更新数据库中的数据。
VirtualTreeview是一个高性能的虚拟树控件,用于显示大量数据。
相比于传统的树控件,VirtualTreeview具有更快的显示速度和更小的内存占用。
通过使用VirtualTreeview,你可以在应用程序中展示和管理大规模的树形数据。
这些第三方控件和组件在DELPHI开发过程中是非常有用的工具。
使用它们可以大大提高开发效率和应用程序的质量。
安装方法有所不同,但一般来说,你只需按照安装向导进行操作即可。
安装完成后,你可以在DELPHI的开发环境中使用它们。
使用这些控件和组件的方法也各不相同,具体的使用方法可以参考各个控件和组件的官方文档或教程。
一般来说,你需要将控件或组件放置在窗体上,并根据需要进行配置和定制。
然后,你可以在代码中使用相应的属性和方法来操作控件或组件。
使用Word文档的插入对象功能添加嵌入式对象和链接对象
使用Word文档的插入对象功能添加嵌入式对象和链接对象Word文档是一种常用的文本编辑工具,除了可以编辑文字、插入图片等基本功能外,还具备强大的插入对象功能。
其中,嵌入式对象和链接对象是常用的两种插入方式。
本文将详细介绍如何使用Word文档的插入对象功能添加嵌入式对象和链接对象。
一、什么是嵌入式对象和链接对象嵌入式对象是指将一个文件完整地插入到另一个文件中,两个文件之间互相独立,没有关联性。
例如,我们可以将Excel表格嵌入到Word文档中,当我们编辑Word文档时,并不会影响到Excel表格的内容。
链接对象则是在一个文件中插入另一个文件的链接,两个文件之间存在关联性,一方的修改会自动同步到另一方。
例如,我们可以在Word文档中插入Excel表格的链接,当我们修改Excel表格时,链接到该表格的Word文档也会相应更新。
二、如何添加嵌入式对象1. 打开Word文档,将光标定位到插入位置。
2. 在菜单栏中选择“插入”选项,点击“对象”按钮。
3. 在弹出的“对象”窗口中,选择“创建新”选项,然后选择要插入的文件类型,比如选择“Microsoft Excel 工作表”。
4. 点击“确定”按钮,会弹出一个新的窗口,可以对该对象进行编辑和保存。
5. 在新的窗口中,进行编辑和保存后,关闭该窗口,即可完成嵌入式对象的添加。
三、如何添加链接对象1. 打开Word文档,将光标定位到插入位置。
2. 在菜单栏中选择“插入”选项,点击“对象”按钮。
3. 在弹出的“对象”窗口中,选择“创建新”选项,然后选择要插入的文件类型,比如选择“Microsoft Excel 工作表”。
4. 在选择文件的对话框中,选中要插入的文件,并且勾选下方的“链接到文件”选项。
5. 点击“确定”按钮,会插入一个链接对象,该对象将与原文件建立关联。
6. 当原文件更新后,打开链接对象的文档时,会自动显示最新的内容。
四、常见问题解答1. 如何编辑嵌入式对象的内容?答:双击嵌入式对象,会弹出原文件的编辑窗口,进行编辑后保存即可。
delphi tencoding 用法
delphi tencoding 用法Delphi TEncoding 用法在Delphi 中,TEncoding 是一个类,用于表示字符编码。
它提供了一系列的方法和属性,用于处理不同的字符编码和字符集。
本文将逐步介绍和回答关于Delphi TEncoding 的用法。
第一步:了解TEncoding在编写Delphi 程序时,我们常常需要处理不同的字符编码,例如ASCII、UTF-8、UTF-16 等。
TEncoding 类提供了一种通用的方法,用于处理和转换不同的字符编码。
TEncoding 位于`System.SysUtils` 单元中,因此在使用之前,我们需要在代码中引入该单元。
第二步:创建TEncoding 对象要使用TEncoding,首先需要创建一个TEncoding 对象。
通常,我们可以根据需要选择TEncoding 对象的类型。
例如,如果我们需要将一个字符串写入到文本文件中,我们需要创建一个TStreamWriter 对象,该对象接受一个字符编码的参数。
我们可以使用TEncoding 类来创建所需的字符编码。
例如,创建一个使用UTF-8 编码的TStreamWriter 对象,可以使用以下代码:delphivarFileStream: TFileStream;StreamWriter: TStreamWriter;beginFileStream := TFileStream.Create('file.txt', fmCreate); StreamWriter := TStreamWriter.Create(FileStream, TEncoding.UTF8);其他处理StreamWriter.Free;FileStream.Free;end;第三步:使用TEncoding 转换字符编码TEncoding 类提供了一系列的方法,用于在不同的字符编码之间进行转换。
其中最常用的方法是GetString 和GetBytes。
word文档中嵌入和链接OLE对象
word 文档中嵌入和链接OLE 对象在Word 2000 中,可以嵌入和链接一个对象。
在Word 2000 中嵌入一个对象,不仅在文档中插入了一个对象,还带入了所有编辑。
如果在文档中双击嵌入的对象,便可进入编辑、生成该对象的工具,可对该对象进行修改。
在Word 2000 中链接对象与嵌入对象不同,虽然它也是在文档中插入一个对象,但它并没有带入编辑、生成这个对象时使用的工具,而是使这个工具和插入对象的文档产生一种联系,当在这个工具中修改对象时,它会通过这种联系将文档中的对象自动更新,这也就意味着链接对象时,该对象并未真正存放在用户的文档中,而是存放在编辑、生成它的工具中。
通过链接对象和嵌入对象,可以在文档中插入利用其他应用程序创建的对象,从而达到了程序间共享数据和信息的目的。
5.9.1 创建链接和嵌入的对象创建链接和嵌入的对象有三种方法:第一种是利用要插入对象的编辑工具新建一个对象;第二种是由已有的文件创建链接和嵌入的对象;第三种是用已有文件中的一部分内容或信息创建链接和嵌入的对象。
下面将具体介绍。
5.9.1.1 利用编辑工具新建一个对象利用安装在计算机上的并支持链接和嵌入对象的程序,可以在 Word 中新建一个对象。
步骤如下:(1)把光标移到要插入对象的位置。
(2)单击【插入】菜单中的【对象】菜单项,在弹出的【对象】对话框中,选择【新建】选项卡,如图5-91 所示。
(3)在【对象类型】列表框中,可以根据需要选择一个要插入的对象。
如要插入一个Excel 工作表,选中【Microsoft Excel 工作表】选项。
(4)如果在文档中并不显示嵌入对象本身,而是显示创建这个对象的工具图标,请选中【显示为图标】复选框。
这样如果别人在联机查看文档时,就能很容易地看出创建这个对象的工具。
但是如果要查看这个对象中的内容,必须双击对象的图标进入创建这个对象的工具才能看到嵌入的对象的具体内容。
可以单击【更改图标】按钮来改变对象在Word 文档中显示的图标。
OLE技术简介
OLE技术简介在Windows中,应用程序之间是相互联系的。
然而,越来越多的程序提供一个OLE自动化接口,以使其他的应用程序可以对他们进行操作。
这样,我们可以使用Delphi,C++,Visual Basic等语言来驱动OLE自动化服务器,而不必考虑用于编写他们的编程语言。
OLE自动化的技术使得程序员能控制其他应用程序或者dll中的对象,不仅仅能够使用驻留在自己程序里的对象,而且能使用驻留在系统上的其他程序中的对象。
特别是,拥护能够访问这些对象的属性和方法,而不是它们的原始数据,而且,分布式OLE到来,已经能使程序员把这些功能扩展到了网络上。
OLE Automation是Windows应用程序之间相互操作的一个技巧。
被操作的一段为Automation服务器,典型的Automation服务器有Microsoft Office程序和Internet Explorer。
而操纵Automation 服务器的一端称为Automation控制器。
一个程序可以兼具有服务器和控制器两种角色。
在Delphi 6中,要创建Automation控制器(即Automation客户),有两种方式;一是引入Automation服务器的类型库;二是OLEVariant类型的变量。
一.创建OLE自动化对象在Delphi中,实现OLE自动化是非常简单的,无任何时,为了支持OLE自动化,Delphi提供了一个简单的向导——功能很强的类型库编辑器。
当使用OLE自动化时,由于客户机与服务器是两个分别运行在相同地址空间中的独立应用程序。
因此,系统必须使用一种复杂的机制来进行对象方法调用。
在OLE Automation中,客户机有两种基本方法来调用服务器输出的“对象方法”:.要求执行“对象方法”与DLL动态调用的方法类似。
当使用Variant调用OLE自动化服务器时,就使用该方法。
该技术的使用相对简单,但执行效率很底,而且提供的编译器类型监测也非常少。
delphi edgebrowser 用法 -回复
delphi edgebrowser 用法-回复Delphi EdgeBrowser是Delphi编程语言中的一个组件,它提供了在应用程序中嵌入和使用Microsoft Edge浏览器的功能。
Delphi是一种强大的开发工具,它集成了许多组件和库,使开发人员能够构建各种类型的应用程序,包括具有浏览器功能的应用程序。
在本文中,我将逐步介绍Delphi EdgeBrowser的用法,帮助您了解如何使用它来嵌入和控制Microsoft Edge浏览器。
第一步:准备环境首先,您需要确保已安装Delphi开发工具。
您可以从Embarcadero官方网站下载免费试用版或购买完整版。
安装完成后,启动Delphi并创建一个新的项目。
第二步:添加EdgeBrowser组件在Delphi中,您可以通过“组件”面板查看和管理可用的组件。
请通过单击Delphi窗口右侧的“组件”标签将其打开。
在“组件”面板中,您可以查找并选择“EdgeBrowser”组件。
将其拖放到您的窗体上。
第三步:配置EdgeBrowser组件添加了EdgeBrowser组件之后,我们需要对其进行一些配置。
选中EdgeBrowser组件,并查看对象属性面板。
您可以通过双击组件或在“对象属性名称”框中手动选择该组件。
在属性面板中,您可以设置EdgeBrowser的各种属性,以满足您的需求。
其中一些重要的属性包括:- URL: 设置要加载的网页的URL。
- Visible: 设置EdgeBrowser是否可见。
- Navigate: 导航到指定URL。
您可以根据需要分别配置这些属性。
例如,将URL属性设置为“第四步:添加事件处理程序为了与EdgeBrowser组件进行交互,您可以使用事件处理程序来捕获特定事件并执行自定义代码。
例如,在用户点击链接时,您可能希望打开链接的新标签页。
要添加事件处理程序,请选择EdgeBrowser组件并在属性面板中查找“事件”选项卡。
delphi lua 类 方法 -回复
delphi lua 类方法-回复Delphi Lua 类方法详解Delphi和Lua是两种不同的编程语言,分别具有自己的特点和用途。
Delphi是一种面向对象的编程语言,常用于Windows平台的应用程序开发;而Lua是一种脚本语言,常用于嵌入式系统和游戏开发。
不过,在Delphi中可以通过使用Lua进行扩展和增强功能。
在本文中,我们将详细介绍如何创建和使用Delphi中的Lua类方法。
一、Delphi中使用Lua的类方法Delphi中使用Lua的类方法可以通过引入Lua的库文件和调用相关的函数实现。
首先,我们需要引入Lua库文件,这可以通过使用Delphi的包管理器或直接将Lua的动态链接库文件拷贝到工程目录中来完成。
接下来,在Delphi程序中,我们需要使用类似于以下代码的方式导入Lua的函数:delphiconstLuaDll = 'lua54.dll';typelua_State = Pointer;PInteger = ^Integer;function luaL_newstate: lua_State; cdecl; external LuaDll; procedure luaL_openlibs(L: lua_State); cdecl; external LuaDll; procedure lua_close(L: lua_State); cdecl; external LuaDll;function luaL_loadstring(L: lua_State; const s: PAnsiChar): Integer; cdecl; external LuaDll;function lua_pcall(L: lua_State; nargs, nresults, errfunc: Integer): Integer; cdecl; external LuaDll;procedure lua_settop(L: lua_State; idx: Integer); cdecl; external LuaDll;function lua_tointeger(L: lua_State; idx: Integer): Integer; cdecl; external LuaDll;这样,我们就可以在Delphi中调用与Lua相关的函数了。
delphi中 在自己的窗体上嵌入其它程序
delphi中在自己的窗体上嵌入其它程序基于Delphi的融合DLL中的窗体博客分类:delphiDelphiWindows编程基于Delphi的融合DLL中的窗口摘要:提出了一种简单的方法将DLL中的窗口融合(嵌入)到其他应用程序或DLL的窗口中,使用本方法可以简便地实现具有强扩展性和升级能力的软件系统。
1引言在开发一个大型通用控制系统时曾遇到这么一个问题:该系统软件包由若干个可执行文件和动态链接库组成,因为扩展性和兼容性的要求,需要将系统划分为若干个可执行文件和动态链接库,并且在大部分DLL 中封装各自的操作界面,在调用DLL时将其中包含的部分界面嵌入地显示在主界面的某个区域或某个窗口内,与主界面的其他部分浑然一体。
这样主程序与DLL在功能操作上各司其职,在外部界面上又彼此交融,使用户可以通过增加和修改DLL来实现对系统内部、外部的扩展和升级;同时因为DLL的跨语言特性,内部包含操作界面的DLL可以更为方便地在以后的不同工作、不同语言环境中更好地重复使用。
这一问题的应用较为广泛,但没有充分的资料来帮助解决,经过不断的试验,笔者将初步体会总结出来,用以抛砖引玉。
本文中涉及的主程序和DLL都是在Delphi5.0下实现的,但因为其中所依赖的基础还是Windows 本身的窗口机制,所以对于其他的语言平台也有实际意义。
在Delphi中如何创建DLL及输出DLL中的函数有较多资料进行过介绍,在本文中不再赘述,本文只针对DLL中的窗口部分做重点介绍。
2DLL中自带窗口的创建和显示DLL和普通EXE一样,可以自带窗口,用Delphi设计包含窗口的DLL较其他语言更为方便。
在Delphi的DLL 工程中,窗口的生成和编程与普通的EXE工程基本相同,但与EXE文件不同的是:在Delphi的EXE工程中所包含的窗口是自动创建的,而DLL 工程中所包含的窗口需要显示创建。
在通常的应用中,DLL将所包含的窗口的创建和显示函数(或过程)输出,由宿主程序根据情况调用将DLL中的窗口显示出来(如点击宿主程序中的某个按钮时显示DLL中的窗口),其窗口创建和显示的过程如下:首先,创建一个DLL工程,并新建一个名为DllForm的Form,可以在该Form上放置任何控件。
基于Delphi的SolidWorks二次开发的研究与实践
基于Delphi的SolidWorks二次开发的研究与实践孙惠娟;尹洋;汤积仁;秦军军【摘要】以Delphi为编程语言,利用COM技术来启动SolidWorks和获得ISolidWorks接口对象,通过IUnknown接口对象和ISldWorks对象进行二次开发.以高速主轴为例,介绍了参数化生成零件、装配体的具体过程.根据参数的改变动态地生成零件和装配体,从而实现产品的系列化设计,缩短了产品的开发周期,具有较好的实用价值.【期刊名称】《制造技术与机床》【年(卷),期】2010(000)002【总页数】3页(P26-28)【关键词】SolidWorks;API;COM;高速主轴【作者】孙惠娟;尹洋;汤积仁;秦军军【作者单位】西华大学机械工程与自动化学院,四川,成都,610039;西华大学机械工程与自动化学院,四川,成都,610039;西华大学机械工程与自动化学院,四川,成都,610039;西华大学机械工程与自动化学院,四川,成都,610039【正文语种】中文【中图分类】TP391.72SolidWorks软件是在总结和继承了大型机械CAD软件的基础上,在Windows 环境下实现的第一个机械CAD软件。
各企业在实际的产品设计中大多要对通用CAD软件进行二次开发,建立适合自己的专用模块。
SolidWorks的突出特点是:三维参数化特征造型,特征管理员功能,全相关的数据管理,它功能丰富、操作简单、维护方便、学习周期短、应用开发方便,与多家CAM、CAE软件有紧密接口。
本文通过运用Delphi对SolidWorks进行二次开发来实现复杂的高速主轴三维成型及虚拟装配体的过程,使用ACESS数据库对高速主轴的相关参数进行传递和管理,提高了设计的效率与正确率。
1 SolidWorks的二次开发技术1.1 SolidWorks APISolidWoks为用户提供了几百个二次开发接口(SolidWorks API)[1,2],凡支持 COM 编程的开发工具,如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次开发。
模糊综合评价软件设计与实证
模糊综合评价软件设计与实证吴炎;王周文;杜栋【摘要】模糊综合评价(FCE)是评价领域内一种被广泛运用的评价方法.在深入分析模糊综合评价模型的基础上,提出了通用型模糊综合评价软件的设计思路,并开发了一个单机版软件原型,用来解决那些"事物本身状态不确定、边界不清、不易定量"的评价问题.最后,以企业质量经济效益评价为例,用本软件进行了评价,证明了软件的有效性和实用性,也为更高级别评价软件的设计与研制提供了参考.%Fuzzy comprehensive evaluation is widely used in evaluation.Based on thorough analysis of the FCE model,this paper puts forward the design idea of FCE general software, develops a stand-alone prototype, which can be used to give the solution of those problems whose condition is undetermined, boundary is not clear and difficult to describe quantitatively.Finally, it takes economic benefits evaluation on enterprise quality as an example, using the software to evaluate.The results prove the effectiveness and practicality of FCE software, provide a reference for the design and development of higher class evaluation software.【期刊名称】《计算机系统应用》【年(卷),期】2011(020)004【总页数】5页(P64-68)【关键词】模糊综合评价;评价方法;评价模型;模糊算子;评价软件【作者】吴炎;王周文;杜栋【作者单位】南京擎天科技有限公司,南京,210002;南京擎天科技有限公司,南京,210002;南京擎天科技有限公司,南京,210002【正文语种】中文1 引言模糊综合评价(FCE)最早由我国学者汪培庄提出,它是一种以模糊数学为基础,应用模糊关系合成原理,从多个因素对被评价事物隶属等级状况进行综合性评价的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象链接和嵌入(Object Linking and Embeding)是一组服务功能,它提供了一种用源于不同应用程序的信息创建复合文档的强有力方法。
对象可以是几乎所有的信息类型,如文字、位图、矢量图形,甚至于声音注解和录像剪辑等。
Windows附件组中的书写器是应用OLE的实例,使用单击“对象 | 插入”菜单项,书写器弹出插入对话框,对话框中列出了多个OLE服务器程序,如公式编辑工具,绘图工具,报表生成工具。
用户双击鼠标左键,可激活一个OLE服务器。
在OLE服务器中可编辑O LE对象,当用户返回到书写器中时,在书写器文档中将出现OLE对象。
Delphi支持OLE技术,Delphi1.0可以创建OLE应用程序,Delphi2.0可创建OL E自动化服务器和控制器程序。
本章通过例程介绍对象链接与嵌入的基本概念,Delphi创建OLE对象的方法,OLE自动化的概念以及如何开发OLE自动化服务器和控制器。
8.1 OLE简介8.1.1 OLE1.0和OLE2.0迄今为止,有两种版本的OLE:OLE1.0和OLE2.0。
当用户在OLE1.0 服务器中激活OLE对象,服务器程序在前台打开自己的窗体,并获得焦点。
OLE窗体失去焦点,存在于单独的窗体之中。
OLE2.0服务器采用“本地”(in place)激活方式。
本地激活意味着服务器菜单与应用程序菜单要进行融合,服务器的状态条更换应用程序状态条,服务器的工具条更换应用程序工具条。
OLE对象在应用程序窗体中进行编辑,但所有过程均由服务器处理。
创建OLE对象的服务器决定了OLE的激活方式。
如果一个OLE1.0的对象在OLE2.0 编译的应用程序中打开,它将采用OLE1.0的方式。
8.1.2 链接与嵌入链接对象的数据保存在OLE服务器创建的文件中,嵌入对象的数据保存在OLE应用程序中。
链接对象必须以文件形式保存,只有对OLE服务器已经创建好的OLE对象,才能进行OLE链接,链接的OLE对象文件可被OLE应用程序或其它程序进行修改,OLE 服务器和其它OLE应用程序也可以访问和修改OLE对象。
对象数据保存在某一处,但可以被多个应用程序访问。
Delphi应用程序可以得到OLE对象文件中的最新数据。
当OLE 对象数据被应用程序修改时,这些变化将在所有包含该对象的其它应用程序中体现。
嵌入对象保存在OLE应用程序中,其它应用程序不能访问该对象。
只有在OLE应用程序中激活OLE对象才能对其进行编辑。
嵌入的OLE对象不需要保存在文件中,所有数据都在应用程序中,这就确保了OLE数据不会被偶然地删除或修改。
不足之处是应用程序的规模因为保存了OLE数据而增大了。
如果用户想保存对嵌入对象的修改,可以把OLE数据存入文件中,本章第3 节将详细讨论这个问题。
表8.1 使用链接或嵌入的原则。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━何时使用链接何时使用嵌入───────────────────────────────想要对源对象进行修改及将对源对象进行修改,并将这这些修改反映到其他与源对些修改反映在一个特定的应象链接的应用程序或文本中用程序或文本中源对象可能被多个OLE应源对象不可能被一个OLE应用程序应用程序频繁修改用程序频繁修改源对象的文件不会被频繁移源对象的文件可能被频繁移动,且不会被删除动,且不会被删除对象很大,一般通过网络或对象很小,或对象很大却无法电子邮件进行分配通过网络或电子邮件进行分配━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━8.1.3 设计状态OLE对象的创建在Delphi中,可分别在设计状态或运行状态创建OLE对象,表8.2说明了两种状态创建对象的差别。
表8.2 设计、运行状态OLE对象的创建━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━设计状态OLE对象的创建运行状态OLE对象的创建──────────────────────────────────────对象保存在运行文件中,增加了所需对象保存在一个文件中或只在运行时编译的程序的规模才有,减小了编译程序的规模开发者需在设计时访问OLE服务器开发者不需要在设计时访问OLE服务器运行时OLE对象已经创建,减小了运行时OLE对象已经创建,增加了运行运行时间时间OLE对象在设计运行时间可行性编辑 OLE对象只能在运行时编辑应用程序的OLE对象数目在设计时已应用程序可以在运行时创建新的OLE对经确立象━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━在设计状态,OLE服务器不能被本地激活,只能在自己的窗体内激活。
但在运行状态,只要OLE服务器支持本地激活,就可以使用这种方式。
8.1.4 OLE类、文件、项目OLE类决定创建OLE对象的服务器。
有些应用程序需要创建多种类型的OLE对象,例如应用程序同时链接或嵌入公式、图片等。
OLE类也决定OLE对象所包含的数据类型,链接或嵌入对象均要定义OLE类。
OLE文件是包含OLE对象数据的源文件。
链接对象必须使用对象文件,因为链接对象在文件中保存。
如果应用程序从已存在的源文件中创建嵌入对象,也要使用OLE文件。
例如,如果链接到QuattiPro笔记本的OLE对象TUTOR.WBI存储在D:\DFFICE\QPW目录下,则OLE 文件就是D:\DFFICE\QPW\TUTOR.WBI。
值得注意的是OLE文件只能为链接对象所定义,而对于嵌入对象,只需定义OLE类。
OLE项目是代表链接或嵌入数据的OLE文件中的一部分。
当应用程序希望OLE对象包含比OLE文件小的数据块时,则必须使用OLE项目。
例如,在QuattiPro笔记本中,OLE对象链接了GasCosts的B4 到B5 范围的网格,OL E项目是$GasCosts;$B$4.$B$5。
8.2 设计状态OLE对象的创建Dephi可以在设计状态和运行状态中创建OLE对象。
本节介绍设计状态OLE对象的创建。
8.2.1 TOLEContainer部件要创建OLE对象,需在窗体中加入OLE包容器部件。
应用程序部件包含链接或嵌入的对象。
用该部件可显示在OLE服务器编辑的数据。
部件的ObjClass,ObjDoc,ObjItem 属性分别定义OLE类、文件、项目。
要定义OLE对象是否本地激活,使用InPlaceActive 属性。
如果OLE对象可以本地激活,OLE服务器菜单将与OLE应用程序的菜单进行融合,GroupInd ex属性的值将决定菜单融合情况。
8.2.2 OLE对象创建的步骤:1.在窗体中增加OLE包容器部件;2.在Object inspector中单击ObjClass或ObjDoc属性的省略按钮,将出现插入对象对话框;3.如果要插入的OLE 对象已存储在文件中,选择“Creat From File”,而后定义该对象的文件名和路径名。
如果是链接对象,则选择链接检查框。
如果是嵌入对象,选择“Creat new”,并在对象类型列表框中选择OLE对象;4.选择OK按钮;如果是创建新对象,OLE服务器将激活,则可对OLE对象进行编辑,完成编辑后关闭O LE服务器。
典型的例子是单击服务器中的“File”或“File|Update”菜单。
5.此时ObjClass属性中包含了相应的值,如果OLE对象从已存在的文件中创建或插入一个链接对象,ObjDoc属性包含了OLE文件。
在设计对象状态时也可以粘贴OLE对象,其步骤如下:1.激活服务器应用程序,选择OLE包容器部件;2.在服务器中,将数据或对象拷贝到剪切板;3.进入Delphi集成开发环境,选择OLE包容器部件;4.在 Object inspector窗体中选择ObjItem属性的省略(…)按钮;5.在列表中选择OLE对象;6.选择“Paste"创建一个嵌入对象或选择"Pastelink"创建链接对象;7.选择OK。
OLE包容器部件在此时初始化。
如果粘贴一个嵌入对象,ObjClass属性将包含适当的值。
如果粘贴一链接对象,ObjClass,ObjDoc,ObjItem属性将全部定义。
OLE 应用程序部件包含代表OLE对象的图片。
如果OLE服务器程序支持OLE对象的拖放功能,则在设计状态从服务器中拖动对象至应用程序,应用程序将创建链接对象,具体步骤:1.激活服务器,并Delphi集成开放环境中选择要链接的对象;2.按隹鼠标左键拖动OLE对象至设计状态的窗体;3.松开鼠键释放OLE对象。
窗体将创建OLE应用程序并进行初始化。
8.3 OLE应用程序的开发Delphi可以在设计状态和运行状态创建OLE对象,上一节介绍的是在设计状态如何创建OLE对象,这一节将通过例程介绍如何在运行状态创建OLE对象、粘贴对象、拖动对象,以及OLE 对象的文件操作。
我们开发的 OLE.dpr是一个OLE应用程序的实例8.3.1 OLE应用程序界面开发OLE.dpr采用了多文档界面,父窗体有菜单,工具条,状态条,子窗体有一个OLE包容器部件,下面分别加以介绍。
8.3.1.1 OLE应用程序的菜单OLE应用程序的菜单与其它应用程序的主菜单大体一致,如果应用程序中有支持本地激活的OLE 2.0对象,则要进行菜单融合。
查阅OLE 服务器的资料可知道服务器是否支持本地激活。
OLE应用程序菜单的GroupIndex属性决定融合菜单的位置,即融合菜单是更换主菜单,还是插入至应用程序的主菜单中。
OLE服务器,将融合三组菜单:Edit,View,Help,每组菜单分配了唯一的组索引值。
在O LE应用程序中任何索引值为1,3,5的菜单组在菜单融合时被OLE服务器中具有相应索引值的菜单更换。
在本例程中,编辑菜单项在菜单融合时被服务器的"Edit"替换。
如图8.3。
要想保存应用程序中的菜单,分配有异于1,3,5的索引值。
表8.3 融合后的菜单━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━菜单索引值功能描述来源(OLE激活时)────────────────────────────────文件 0 使用文件和退出程序 OLE应用程序Edit 1 编辑OLE对象 OLE服务器对象 2 操作未激活的OLE对象 OLE应用程序View 3 修改OLE对象的观测方式 OLE服务器窗体 4 操纵窗体 OLE应用程序Help 5 访问服务器在线帮助OLE服务器━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━8.3.1.2 OLE工具条和状态条当OLE对象被本地激活时,OLE服务器将试图用自己的工具条和状态条替换OLE应用程序的。
如果应用程序想要本地激活,就应该在应用程序中编写相应的代码让服务器使用工具条和状态条。