社区
Delphi
帖子详情
Delphi接口不需要GUID?
RunInQuake
2001-03-09 02:50:00
我这样的定义
type
I001 = Interface
procedure Pr1;
end;
C1 = class(TInterfacedObject,I001)
procedure Pr1;
end;
I001有没有GUID?
初学Delphi,请指教
...全文
154
5
打赏
收藏
Delphi接口不需要GUID?
我这样的定义 type I001 = Interface procedure Pr1; end; C1 = class(TInterfacedObject,I001) procedure Pr1; end; I001有没有GUID? 初学Delphi,请指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mikor2001
2001-03-09
打赏
举报
回复
你这样声明接口是没有GUID的,必须在IOO1 = INTERFACE 后按下Ctrl_shift_G让DELPHI
自动生成一个GUID。所有的COM接口以及某些只在自己的应用程序内部使用的接口,需要唯一的
GUID才能正常运行。
严黎斌
2001-03-09
打赏
举报
回复
我想,只要不参与windows com机制,在Delphi的一个工程内部(不仅限于一个unit),interface是不一定需要guid的。
这样做当然有好处,比如,代码重用,接口封装,实现类似于(C++)多重继承的机制,等等,这些面向对象编程的好处。
我也学这些内容不久,认识比较肤浅,呵呵。
RunInQuake
2001-03-09
打赏
举报
回复
真的呀!在Delphi内部的纯Interface有什么作用?难道这个接口只能是包含该
unit的模块,在本工程内使用。
我有点糊涂,请再多指教。
严黎斌
2001-03-09
打赏
举报
回复
如果是在Delphi内部的纯Interface编程,不与Windows COM之类的打交道,那就不需要指定guid的。当然也可以加。
按Ctrl_Shift_G可以让Delphi自动生成一个guid。
2001Sky
2001-03-09
打赏
举报
回复
当然有Guid,不过它会自动生成
LAv Filters分离器
DELPHI
接口
LAv Filters 是一组开源的 DirectShow 滤镜,基于 FFmpeg 多媒体库。旨在较终取代播放链中的绝大部分滤镜,能播放所有的格式和任何现代媒体。
delphi
的com机制
⊙ 第一章 概述 COM 是什么 COM 对象与
接口
COM 进程模型 COM 可重用性 ⊙ 第二章 COM 对象模型 全局唯一标识符
GUID
COM 对象 COM
接口
接口
描述语言 IDL IUnknown
接口
COM 对象的
接口
原则 ⊙ 第三章 COM 的实现 COM 组件注册信息 注册 COM 组件 类厂和 DllGetObjectClass 函数 CoGetClassObject 函数 CoCreateInstance / CoCreateInstanceEx 函数 COM 库的初始化 COM 库的内存管理 组件程序的装载和卸载 COM 库常用函数 HRESULT 类型 ⊙ 第四章 COM 特性 可重用性:包容和聚合 进程透明性 (待学) 安全性 (待学) 多线程特性 (待学) ⊙ 第五章 用 Visual C++ 开发 COM 应用 Win32 SDK 提供的一些头文件的说明 与 COM
接口
有关的一些宏
DELPHI
数据库引擎BDE
BDE能访问的数据分两类 一:本地数据。 二:客户机-服务器体系的异地数据. ADO简介。 与BDE不同ADO是Microsoft推出的新一代数据访问规范,在
Delphi
6中它的地位等同于一个和BDE并列的数据引擎。 ADO实际上和ActiveX技术联系紧密,而ActiveX又和OLE,COM等技术有很密切的关系。 虽然ADO的功能比BDE比起来筲弱一些,但和BDE相比ADO有一些重要的优势,比如: ADO将会内制在从Windows2000开始Microsoft新出的所有操作系统中,单就这一点就足以给其他的数据访问方式画上问号. 在
Delphi
7中提供了对ADO的全力支持,提供了很多ADO组件,还增加了一些新的字段类型如:WideString,
GUID
,Variant,interface,IDispatch等. ADO是面向各种数据的层次很高的
接口
,它提供了强大的数据访问功能,可以访问的数据对象有: 1>关系数据库中的各种数据; 2>非关系型数据库,如层次型数据库,网状数据库等; 3>电子邮件与文件系统; 4>文本与图象,声音; 5>客户事务对象.
Delphi
最新三层源码
随便说说最近项目中的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章中都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。 今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。 业务层要与表示层尽量解藕, 我的方法是:首先我们在中间层TLB_中定义一个
接口
IBusinessService, 定义一个方法。getvoList,我要得到一个VO的列表, VO即ValueObject, 例如:TValueObject= class(TPersistent) private b_insertFlag :Boolean; b_updateFlag :Boolean; b_deleteFlag :Boolean; d_rowVersion :double; procedure setInsertFlag(pInsertFlag :Boolean); function getInsertFlag: Boolean; procedure setUpdateFlag(pUpdateFlag :Boolean); function getUpdateFlag: Boolean; procedure setDeleteFlag(pDeleteFlag :Boolean); function getDeleteFlag: Boolean; procedure setRowVersion(pRowVersion :double); function getRowVersion:double; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published property bInsertFlag: Boolean read getInsertFlag write setInsertFlag; property bUpdateFlag: Boolean read getUpdateFlag write setUpdateFlag; property bDeleteFlag: Boolean read getDeleteFlag write setDeleteFlag; property dRowVersion: double read getRowVersion write setRowVersion; property POLEData:OleVariant read GetOLEData write SetOLEData; end;TUserVO = class(TValueObject) private id: string; name: string; password: string; 。。。。。。。。。。 VO的列表:TValueObjectList = Class(TObjectList) private ValueObject: TValueObject; ClassName: TClass; procedure setClassName(pTmpClsName :TClass); function getClassName: TClass; procedure setValueObject(pTmpVO :TValueObject); function getValueObject: TValueObject; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published function AddItem(index: integer; AObject: TObject ):Integer; virtual; function GetItem(index, itemid: integer ): TObject; virtual; function CountItem:Integer; virtual; public constructor Create; virtual; destructor Destroy; override; procedure AfterConstruction; override; property PClassName: TClass read getClassName write setClassName; property POLEData: Ole
Delphi
5编程实例与技巧
目 录 前言 第一部分
Delphi
编程基础 第1章
Delphi
集成开发环境 1 1.1 集成开发环境简介 1 1.2 集成调试器 5 1.3 开发环境的优化 6 1.3.1 自定义工具栏 6 1.3.2 编程环境设置 7 1.3.3 编辑环境设置 8 1.3.4 工程设置 8 1.4 方法与技巧 9 1.4.1 使用代码浏览器 9 1.4.2 使用代码编辑器 9 1.4.3 使用帮助系统 10 1.4.4 设置IDE桌面 11 第2章 对象Pascal语言 12 2.1 学习对象Pascal语言的一个通用 例程 12 2.2 对象Pascal语言基础 14 2.2.1 标识符 14 2.2.2 保留字和指令字 14 2.2.3 注释 15 2.2.4 数据类型 16 2.2.5 运算符 21 2.2.6 语句 24 2.2.7 过程与函数 27 2.3 对象Pascal语言的关键技术 30 2.3.1 对象和类 31 2.3.2 类的封装与继承 31 2.3.3 构造函数和析构函数 32 2.3.4 多态性 35 2.3.5 抽象类 38 2.3.6 运行时类型信息 39 2.3.7 类方法 41 2.3.8 类引用 42 2.3.9 单元文件与工程文件 43 2.4 异常处理 45 2.4.1 raise语句 45 2.4.2 try...except语句 45 2.4.3 try...finally语句 47 2.5 方法与技巧 48 2.5.1 命名规则 48 2.5.2 在编译时自由设置是否获得提示 信息 48 2.5.3 使用代码模板 49 2.5.4 使用动态多维数组 49 2.5.5 定义两个相互包含的类 50 2.5.6 获取和使用命令行参数 51 2.5.7 引用参数传递 51 第二部分
Delphi
编程的核心技能 第3章 窗体和组件 53 3.1 窗体和组件 53 3.1.1 窗体 54 3.1.2 组件 56 3.1.3 在窗体中使用组件 57 3.2 文本组件 60 3.3 特殊输入组件 61 3.4 按钮及其分类组件 63 3.5 列表组件 64 3.6 分组组件 67 3.7 信息反馈组件 69 3.8 表格显示组件 70 3.9 图形显示组件 71 3.10 开发MDI应用程序 73 3.11 常用组件的用法 74 3.12 方法与技巧 84 3.12.1 窗体、组件的使用原则 84 3.12.2 使用信息对话框 85 3.12.3 使用组件的Hint属性 88 3.12.4 使用Edit组件的IME属性 89 3.12.5 将系统字体添加到ComboBox 组件中 89 3.12.6 在RichEdit组件中存取文件 90 3.12.7 设置模态对话框的返回值 90 3.12.8 使用事件处理过程中的Sender 参数 91 3.12.9 为控件生成多行提示信息 91 3.12.10 生成非矩形窗口 92 3.12.11 移动无标题栏窗口 94 3.12.12 制作动态字幕 95 3.12.13 在窗体上动态地设置背景 画面 96 3.12.14 Owner和Parent的区别 97 第4章 菜单、工具栏和状态栏 98 4.1 菜单 98 4.1.1 主菜单 99 4.1.2 鼠标右键弹出式菜单 99 4.1.3 使用菜单模板 99 4.2 工具栏 100 4.2.1 ToolBar 100 4.2.2 CoolBar 100 4.2.3 ControlBar 101 4.3 状态栏 101 4.4 方法与技巧 106 4.4.1 动态创建菜单 106 4.4.2 为菜单动态定义快捷键 108 4.4.3 动态改变菜单 108 4.4.4 定制系统菜单 109 4.4.5 制作图形菜单项 110 4.4.6 在状态栏中添加进度条等其他 组件 111 4.4.7 MDI应用程序中的菜单融合 113 4.4.8 制作可随处拖放的工具栏 116 4.4.9 将菜单项移到菜单栏的最右边 117 4.4.10 运行时控件的移动 117 第5章 键盘和鼠标 119 5.1 键盘事件 119 5.2 鼠标事件 120 5.2.1 常用鼠标事件 120 5.2.2 拖曳事件 120 5.3
Delphi
5,392
社区成员
262,732
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章