B
BaKuBaKu
Unregistered / Unconfirmed
GUEST, unregistred user!
关于 OLE Server 以及相关的系列问题。
本人对于这方面认识比较肤浅,现在提出这样一个问题,是希望能够把我掌握的零碎的
知识贯通起来,并希望能够起到抛砖引玉的作用,引发各位的妙论,请高手不吝指教。
下面举出一个尽可能完整的实例,以便展开讨论:
我要求制作一个简单的图形编辑器,比如叫做“TGraphApp”,拥有 New 和 Open 方法,
和 Documents[n] 属性,用于访问它的文档对象。
然后是文档对象,比如叫“TGraphDoc”,可以完成简单的画点画线的功能,拥有画点
DrawPixel(X,Y) 和画线 DrawLine(X1,Y1,X2,Y2) 两个简单的 pubilc 方法,以及两个文
件操作方法:Save、Close,还包括一个变量 FileName, 记录的是文件名字。
为了简单起见,功能仅限于此。下面是实现要求:
1、上面所说的所有方法和属性都应该能通过 COM Interface 访问。
2、我需要能够在 Delphi 中使用 TOleContainer 或者是在 Word 等文档处理工具中通过
“Insert Object”插入一个这样的图形文档,比如叫做“Test Graph Document”。
3、这个文档插入后应该可以实时显示在 OleContainer 或 Word 文档中,通过 DblClick
能够激活我的编辑器进行In-Place Edit,修改后的结果能够实时反映在包容文档中,通
过鼠标的拖曳可以随意改变放置的位置。
4、当保存包容文档(如 Word 文档),应该能够参与整个复合文档的结构化存储流。当
然,还需要能够“Copy”,这样可以在另外的文档中“Paste”出来。
OLE Client 的功能可以暂不实现,这里只需要实现 Server 端就可以了,也就是说,
只需要支持把自己的文档嵌入别的应用程序中,没有必要支持嵌入别的应用程序的文档。
当然,如果能一并实现更好。
这样的应用程序现在已经是很常见,但是对于用 Delphi 如何从头至尾来写一个这样
的东东,我并没有经验,比如,应该实现哪些接口?怎样设计类结构等等。我希望能得到
一个详细的解决方案,用流行的话说,就是一个 Total solution 。
给出这一点分数并不能说明什么,只是想请高手不吝指教,另外,谢绝灌纯净水!
本人对于这方面认识比较肤浅,现在提出这样一个问题,是希望能够把我掌握的零碎的
知识贯通起来,并希望能够起到抛砖引玉的作用,引发各位的妙论,请高手不吝指教。
下面举出一个尽可能完整的实例,以便展开讨论:
我要求制作一个简单的图形编辑器,比如叫做“TGraphApp”,拥有 New 和 Open 方法,
和 Documents[n] 属性,用于访问它的文档对象。
然后是文档对象,比如叫“TGraphDoc”,可以完成简单的画点画线的功能,拥有画点
DrawPixel(X,Y) 和画线 DrawLine(X1,Y1,X2,Y2) 两个简单的 pubilc 方法,以及两个文
件操作方法:Save、Close,还包括一个变量 FileName, 记录的是文件名字。
为了简单起见,功能仅限于此。下面是实现要求:
1、上面所说的所有方法和属性都应该能通过 COM Interface 访问。
2、我需要能够在 Delphi 中使用 TOleContainer 或者是在 Word 等文档处理工具中通过
“Insert Object”插入一个这样的图形文档,比如叫做“Test Graph Document”。
3、这个文档插入后应该可以实时显示在 OleContainer 或 Word 文档中,通过 DblClick
能够激活我的编辑器进行In-Place Edit,修改后的结果能够实时反映在包容文档中,通
过鼠标的拖曳可以随意改变放置的位置。
4、当保存包容文档(如 Word 文档),应该能够参与整个复合文档的结构化存储流。当
然,还需要能够“Copy”,这样可以在另外的文档中“Paste”出来。
OLE Client 的功能可以暂不实现,这里只需要实现 Server 端就可以了,也就是说,
只需要支持把自己的文档嵌入别的应用程序中,没有必要支持嵌入别的应用程序的文档。
当然,如果能一并实现更好。
这样的应用程序现在已经是很常见,但是对于用 Delphi 如何从头至尾来写一个这样
的东东,我并没有经验,比如,应该实现哪些接口?怎样设计类结构等等。我希望能得到
一个详细的解决方案,用流行的话说,就是一个 Total solution 。
给出这一点分数并不能说明什么,只是想请高手不吝指教,另外,谢绝灌纯净水!