以下设置的操作平台:
操作系统:WindowsXP,工发工具:delphi7。

一、操作系统COM+组件的设置

1.打开“组件服务”:
  控制面板-->管理工具-->组件服务

2.找到要设置的COM+组件:
  在“组件服务”窗口的“控制台根目录”,依“组件服务-->计算机-->我的电脑-->COM+应用程序-->你要调试的COM+应用程序”

          

3.关闭COM+组件:
  右键单击“你要调试的COM+应用程序”-->点击“关闭”菜单项

4.设置COM+组件属性:
  右键单击“你要调试的COM+应用程序”-->点击“属性”菜单项-->“高级”页面-->使“在调试器中启动”复选框被选中 

          

二、delphi调试参数的设置

1.打开你要调试的COM+组件工程

2.进入参数设置窗口:
  菜单“Run-->Parameters...”         

           

3.设置调试参数:
  Host Application:
  C:\WINDOWS\system32\dllhost.exe
  Parameters:
  /ProcessID:{90F77C7C-CCA3-40A7-B954-BB4373986408}

        

  Parameters参数值的后半部分是一串GUID值,可能通过下面的方式获取:
  在操作系统“组件服务”中,右键单击“你要调试的COM+应用程序”-->点击“属性”菜单项-->“常规”页面-->“应用程序ID”就是你所需要的GUID值,可以选中并复制出来。

三、调试:
1.重新Build你要调试的COM+组件
2.运行COM+组件
3.运行客户端程序
 
 

posted @ 2009-10-30 16:08 晨鸦 阅读(109) 评论(0) 编辑

一、单一职责原则(SRP)
    就是就一个类而言,应该仅有一个引起它的变化的原因。换句话说,一个类的功能要单一,只做与它相关的事情。

二、开放封闭原则(OCP)
    软件实体对于扩展是开放的,对于修改是封闭的。

三、Liskov替换原则(LSP)
    子类型必须能够替换掉它们的基类型。
  举例:
  正方形不应该继承自矩形,因为在下面函数中不能实现替换
  void g(Rectangle& r)
    {
       r.setwidth(5);
       r.setHeight(4);
       assert(r.Area() == 20)
     }
  如果给r一个正方形对象,断言将不成立。

  LSP是使OCP成为可能的主要原则之一。

四、依赖倒置原则(DIP)
    1.高层模块不应该依赖于低层模块,二者应该依赖于抽象
  2.抽象不应该依赖于细节。细节应该依赖于抽象。

五、接口隔离原则(ISP)
    不应该强迫客户依赖于它们不用的方法。
    这个原则用于处理“胖”接口。如果接口不是内聚的,可以分成多组方法,表示这是一个“胖”接口。一些客户程序可以使用一组成员函数,而其他客户程序可以使用其他组成员函数。“胖”接口是违反ISP的。

posted @ 2009-07-30 16:24 晨鸦 阅读(211) 评论(1) 编辑


Shell_NotifyIcon是windows中用来生成系统托盘图标的API函数。

一、原型

BOOL Shell_NotifyIcon(
 DWORD dwMessage,
 PNOTIFYICONDATA lpdata
 );

dephi声明如下:

function Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData): BOOL; stdcall;


二、参数及返回值说明
1.dwMessage:[输入参数] 说明要执行的动作。动作的可选值如下:
    NIM_ADD 增加一个图标到托盘区 
    NIM_DELETE 从托盘区删除一个图标
    NIM_MODIFY 修改图标
    NIM_SETFOCUS 将焦点(Focus)返回托盘区。这个消息通常在托盘区图标完成了用户界面下的操作后发出。比如一个托盘图标显示了一个快捷菜单,然后用户按下ESC键了操作,这时使用NIM_SETFOCUS将焦点继续保留在托盘区。该项仅在系统外壳与常用控制DLL( Shlwapi.dll与Comctl32.dll)5.0以上版本才可用。
    NIM_SETVERSION 指定使用特定版本的系统外壳与常用控制DLL。缺省值为0,表示使用Win95方式。该项仅在系统外壳与常用控制DLL 5.0以上版本才可用。
2.lpdata:[输入参数] 一个指向NOTIFYICONDATA结构的指针。
  结构的说明如下:
 

NOTIFYICONDATA结构

  cbSize 以字节计的结构大小,以适应不同版本。 
  hWnd 接收Windows消息的窗口句柄。 
  uID 托盘图标的ID。
  uFlags 指示结构中的哪些成员包含有效数据,可选值:NIF_ICON, NIF_MESSAGE,NIF_TIP,NIF_STATE,NIF_INFO,NIF_GUID。 
  uCallbackMessage 回调消息ID,由用户自定义。与一个自定义的消息处理函数关联。
  hIcon 托盘图标的句柄。
  szTip 托盘图标的提示字符串。
  注意:以下数据成员仅限系统外壳与常用控制DLL 5.0及以上版本才有效!
  dwState 图标的状态:NIS_HIDDEN-隐藏,或NIS_SHAREDICON-可视。
  dwStateMask 图标状态掩码,用以设置dwState
  szInfo 气球型提示(Balloon ToolTip)的字符串。
  uTimeout 以毫秒计的提示显示时间
  uVersion 确定所依赖的版本。0-Win95,NOTIFYICON_VERSION-Win2000
  szInfoTitle 气球型提示的标题
  dwInfoFlags 设置气球型提示所用的图标(类似MessageBox中所使用的图标):

    NIIF_ERROR   错误
    NIIF_INFO    信息
    NIIF_NONE    没有图标
    NIIF_WARNING  警告
    NIIF_ICON_MASK 6.0版本保留
    NIIF_NOSOUND  限6.0版本,不播放对应的声音
 
  guidItem 6.0版本保留

用delphi 声明如下:

用delphi对NOTIFYICONDATA结构的声明

 

 3.返回值:成功时函数返回TRUE,否则FALSE。


在delphi的ShellAPI单元中对该函数及其相关消息、常数都进行了声明和定义,但是不同版本会有不同声明和定义。

posted @ 2009-07-20 22:34 晨鸦 阅读(3696) 评论(1) 编辑

一、聚集

  一个类有时是由几个类(可称为“部分类”)组成的,这种类间关系被称为聚集。

   

   UML中用“关联线+空心菱形”的形式来表示聚集。空心菱形的一头指向整体类。 
   部分类之间可以用{OR}约束来表示整体类中包含一个或另一个部分类。

 

二、组成

  组成是强类型的聚集。

 

    

  UML中用“关联线+实心菱形”的形式来表示组成。实心菱形的一头指向整体类。

 

三、接口

 

  

  图中带空心三角的虚线是实现符号,空心三角指向被实现的接口。上图中,实现符号表示空调类实现了遥控器接口。
  人通过接口“遥控器”来操作空调,这里人对遥控器是种依赖关系,所以用了依赖符号。

posted @ 2009-07-09 20:55 晨鸦 阅读(272) 评论(0) 编辑

posted @ 2009-07-07 22:03 晨鸦 阅读(1685) 评论(9) 编辑
posted @ 2009-07-06 18:20 晨鸦 阅读(946) 评论(5) 编辑