- 博客(18)
- 收藏
- 关注
原创 使用Object Pascal中的接口访问Visual C++ DLL中的对象
将软件的界面分离出来是开发普通桌面应用的常用方法,这样可以带来多种好处,比如方便软件的自动更新和维护(我们很少看到将一个软件的所有东西都写到一个EXE里面)。通常的办法是将业务逻辑或者核心封装在一个独立的组件中,例如COM甚至标准的DLL库。我们这里讨论普通的DLL。 在DLL中只提供普通的函数或过程肯定是不行的,面向对象的设计和开发,良好的模式应用是必不可少,这需要我们在DLL
2004-11-10 17:17:00 1354
原创 非COM环境下的接口编程--问题,技巧,应用(二)
(接上文)代码:现在把全文的代码列举如下,其中有一些上面没有给出的代码,但它们也很重要,列在一起方便大家浏览,请仔细查看下面的代码以获得需要的信息,当然本文也仅仅是做为一个简单的例子,举出了一些常见的问题和解决技巧,以及象这样的接口编程的一个可能应用。接口:IFoo = interface; IFooManager = interface [{3A10DC39-4B
2004-05-17 18:23:00 1599
原创 非COM环境下的接口编程--问题,技巧,应用(一)
非COM环境下的接口编程------问题,技巧,应用先行知识:Delphi/接口/Dll/OOP难度:★★★☆☆ 引子:接口的概念由来已久,早在COM出现之前(COM应该是95年左右)接口的概念就已经在面向对象的开发中根深蒂固了,著名的《设计模式》(94年出版)中也指出“针对接口编程而不是针对实现编程”。使用接口可以降低软件系统中不同模块的偶合性,利于软件系统的更新与维护。接口
2004-05-17 18:22:00 1779
原创 考虑继承,a tip about 《Inside VCL》
考虑继承,a tip about 《Inside VCL》 先行知识:OO/VCL难度:★☆☆☆☆ 最近终于有时间看一看在前一段时间买的书《Inside VCL》,在读书的时候难免会发现一些问题,也许有些是微不足道的,但自己认为是以前没有考虑过的东西我便把它写出来(这篇也不例外)。李维老师在对象基本服务那一节中讲到了对象的释放服务,可以看到一个简单的TObject.Destro
2004-03-25 17:25:00 1316
原创 开发一个基于DCOM的局域网聊天室(三)
(接上文)完善和修补:基于修正通过测试所发现的bug,和功能的完善,我们有对客户端进行了一定的改动,主要体现在:·对客户端进行更好的异常处理,以防止由于服务器异常中断而导致客户端仍不端请求服务器所造成的死锁。·增加了说话对象和悄悄话功能(在客户端实现)·增加了登录窗体,可以登陆到指定的房间并对服务器进行配置(参看下面服务器的改进)另外在服务器端我们也做了部分的改进,主要完成
2004-02-25 10:18:00 1294
原创 开发一个基于DCOM的局域网聊天室(二)
TchatRoom的实现:{ TChatRoom }constructor TChatRoom.Create(RoomName:string;RoomID:integer);begin FBufferLength:=0; FConnectCount:=0; FClearBufferTag:=1; FLocked:=false; FRoomName:=RoomName
2004-01-25 21:29:00 1487 1
原创 开发一个基于DCOM的局域网聊天室(一)
开发一个基于DCOM的局域网聊天室难度:★★★☆☆先行知识:Delphi / 接口 / OLE&COM&DCOM / Win32 首先祝大家新春快乐,猴年万事如意!在前面的几篇文章中我们已经探讨了不少基于微软COM的相关技术,而分布式COM(以下简称DCOM)的出现给我们轻松的创建分布式应用提供了机会;我们可以完全不去理会低级别的Windows Sockets(DCOM通过M
2004-01-25 21:28:00 1659 8
原创 Delphi Open Tools Api实例研究(二)
Delphi Open Tools Api实例研究(二)先行知识:Delphi/接口/DLL/COM(了解)难度:★★☆☆☆ 在开始之前先说一些题外话,这段时间一直很忙(马上就要期末考试,而且最惨的是现在正在忙着准备即将到来的英语4级考试),所以自己也不知道这篇文章够不够份量。这篇文章的内容可能不是太多,但我还是抽时间把它写了出来作为我们的Delphi Open Tools
2003-12-23 13:53:00 1497
原创 一个实际的OLE服务器的开发和使用
一个实际的OLE服务器的开发和使用先行知识:Delphi /COM/OLE Automation/ SQL Server难度:★★☆☆☆ 在前几篇文章中我们已经讨论过关于VCL和OLE的知识。在这篇文章中我们将完成一个比较有实际意义的OLE Automation服务器程序,最后我们把他们封装为Delphi中使用的VCL组件。首先我们来做一个实际的程序,在它没有变为服务器之前,这
2003-11-23 19:16:00 1678
原创 Delphi Open Tools Api实例研究(一)
Delphi Open Tools Api实例研究(一)先行知识:Delphi/接口/VCL组件包/COM(了解)难度:★★☆☆☆ 在这篇文章正式开始以前,首先向大家道歉。因为这个月的专栏文章本该很早就发布,但由于一些事情所以一直推迟到现在,并且这个月也只发布了这么一篇。另外,关于这篇文章我觉得我应该感谢csdn上的几位朋友,他们是chechy、FrameSniper、pankun
2003-10-25 22:33:00 1820 1
原创 使用OLE拖放不同程序间的数据
使用OLE拖放不同程序间的数据(OLE Drag and Drop)难度:★★★☆☆先行知识:Delphi / 接口 / Win32 / OLE or COM 从一个程序拖动数据到另一个程序(典型的情况是拖动文本)已经不是什么新鲜事了,很多共享软件都支持这个功能(比如说著名的flashget、netants等的浮动窗口功能)。作者一直想在自己的软件中实现这个功能,经过一段时间的资料
2003-09-19 00:01:00 2106
原创 使用内存映象实现进程间全局变量
使用内存映象实现进程间全局变量编程时在同一程序中使用全局变量给我们带来了很多方便,大多数程序几乎都离不开全局变量。那么不同的程序之间呢?我们怎样在不同的程序(进程)之间共享数据呢?事实上,你可能已经注意到在不同的进程间使用全局变量在有些场合还是很有必要,这是一项相当有用的技术,基于某中特殊情况我们的确需要在我们开发的不同的程序间共享数据。比如有些软件你会发现安装后不止一个可执行文件,而且在运行
2003-08-20 21:41:00 1676
原创 使用互斥对象让程序只运行一次
使用互斥对象让程序只运行一次“怎么让我的程序在运行时不能重复打开?”经常在论坛上看到有朋友问这方面的问题。本文将比较详细的说明这一问题,并给出一个较为完善的解决方案。尽管这已经不是一个新问题了,但这里还是简要的说明一下这种技术:这的确是一个相当有用的技术,可能你经常会注意到相当多的程序在运行之后当你再次点击运行时,它只是会回到原来的窗口,而不会运行两个程序。就如同你在运行delphi时,在
2003-08-12 10:26:00 1736
原创 通过实例看VCL组件开发全过程(四)
(接上文)四、组件属性编辑器和组件编辑器:通过上面的努力我们的组件似乎已经比较完美了,可我们也忽略了一些重要的细节和一些有趣的事情,这一篇我们将研究两个很有用的组件特性:在之前开发组件核心功能时我们曾设置了两个属性BeginTime和WakeTime,他们都是字符串型的属性,然而他们所要表示的却是时间类型,这样就很有可能使组件使用者错误的编辑属性并导致转化字符串到时间时出错(当然这里只
2003-08-08 08:37:00 1525 1
原创 通过实例看VCL组件开发全过程(三)
(接上文)三、添加组件图标、注册组件的属性类别:在前面的文章中我们已经完成了组件的基本功能的开发。但是遗憾的是一但你安装了组件包,你会发现组件显示在delphi组件页中的图标并不能清楚的说明我们组件的功能(由于我们的组件继承自TcustomLabel,图标是一个默认的delphiVCL的图标,如果组件继承自其它已经出现在组件面板中的组件,图标还会和已有组件一样!)。显然一个好的组件特别是一
2003-08-08 08:35:00 1493
原创 通过实例看VCL组件开发全过程(一)
通过实例看VCL组件开发全过程 这篇文章算是对我前段时间学习的一个学习总结,以及对自己学习过程的一个回顾。本文通过一个简单的例子来尽可能的展示VCL组件开发的各个方面,本文针对即将学习组件开发的初学者,如果你已经熟悉组件开发或认为本文内容过于基础简单,那么本文对你毫无用处。阅读本文,假设你已经熟悉delphi的普通程序设计以及vcl的结构层次,还有一些重要的关键字:published、pr
2003-08-05 11:05:00 2601
原创 通过实例看VCL组件开发全过程(二)
(接上文)组件的代码由于假设你已经熟悉delphi开发(它和一般开发没什么不同),我们就直接贴出来并加上适当的注释: unit Clock; interface uses SysUtils, Classes, Controls, StdCtrls,ExtCtrls; type TState=(StClock,StRunClock,StBackCloc
2003-08-05 11:03:00 1258
原创 打造Delphi中字符串的replace函数
打造Delphi中字符串的replace函数编者注:其实Delphi的StringReplace函数就是专为满足这个需要而设的。但我们也将这篇文章发表出来——至少作者提供了一种替代方案,探索精神应该鼓励! 这是小弟在这里的第一篇文章,加之自己水平也不是很高,就来讨论一个基础但是很实用的问题吧,希望能给大家一些帮助。 用过vb的或asp的朋友都知道,在vb里有一个很实用的r
2003-07-31 09:36:00 2895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人