使用代码如下:
const 
  idSysAbout=100;
procedure Tform1.FormCreate(Sender:Tobject);
var
  i:integer;
begin
  AppendMenu(GetSystemMenu(Handle,False),MF_SEPARATOR,0,'');
  AppendMenu(GetsystemMenu(Handle,False),MF_STRING,idSysAbout,'&About...');
end;
end;然后定义一个消息处理函数:
public 
  procedure WMSyscommand(var msg:TMessage); message WM_SYSCOMMAND;procedure TForm1.WMSyscommand(var msg:TMessage)l
begin
  if msg.cmdtype=idsysAbout then 
    {你的的ABOUT命令要做的事}
  inherited; 
end;

解决方案 »

  1.   

    另外补充一种方法,
    在你的窗口里放一个MAINMENU控件,建立其结构,并写出相应的处理事件,然后把窗口的MENU属性置空,使菜单清除。
    然后使用下面的代码来建立更复杂的系统菜单:procedure Tform1.FormCreate(Sender:Tobject);
    var 
     i:integer;
    begin
     AppendMenu(GetSystemMenu(Handle,False),MF_SEPARATOR,0,'');
     with mainmenu1 do //假设你的菜单名是这样
       for i:=0 to Items.count-1 do 
         appendMenu(Getsystemmenu(self.handle,False),MF_POPUP,
                    Items[i].handle,Pchar(Items[i].caption));
     end
    end;这样写无需处理系统命令消息。
      

  2.   

    MENUITEMINFO  miInfo;
    HMENU hMenu = GetSystemMenu(hMainWnd, FALSE);
    // 初始化miInfo的各成员
    InsertMenuItem(hMenu, ID_ABOUT, FALSE, &miInfo);
      

  3.   

    to kxy:
    可以跟zdg预订,只要有人发问题,就给你发email或ICQ,这样你就来得及了。:)
      

  4.   

    我倒真有个建议(对zdg),如果没给论坛带来麻烦的话,如果谁对某一版感兴趣的话,可以订阅,过一定的时间(论坛可以规定,或者网友也能指定)如果该版有变化,则向该订阅的网友发出信息,将增加的文章标题发给该网友(如果能通过ICQ是最好,不知道ICQ有没有SDK,或者本论坛自制一个软件C/S)。
    这样做的一个好处是带来更多的网友(因为更方便了),不好的地方可能是给服务器带来负担,不知各位大虾以为如何?
      

  5.   

    我们是有这个打算,不过我们想只对Top20的人提供此功能。
    因为他们回答问题很积极,我们正在讨论,不知道大家认为如何。