unit dy219;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;//此处出错
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
  i := getsystemmenu(handle,false);
  appendmenu(i,mf_separator,0,nil);
  appendmenu(i,mf_string,100,'我的菜单(&E)');end;procedure TForm1.sysmenu(var msg: twmmenuselect);
begin
  if msg.IDItem = 100 then
    showmessage('您选择了自己添加的菜单!')
  else
    inherited;
end;end.
//错误提示:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect'   请大家看看在哪错了,sysmenu已声明的!

解决方案 »

  1.   

    还是这个错误的
    :[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect'在DelPhi7下运行
      

  2.   

    twmenuselect:就是在Messages单元里定义的,你已经包含过了
      

  3.   

    还是下面的提示:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect'
    [Error] Unit1.pas(25): Unknown directive: 'message'sysmenu这个事件在设计事件列表里面没有,是自己增加的
      

  4.   

    错误提示:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect' 请大家看看在哪错了,sysmenu已声明的!
    错误提示的很明白twmenuselect是没有定义的,应该是TWMMenuSelect,少个‘m’
    你写错了,你程序里肯定写错了,你在好好看看吧
      

  5.   

    我觉得你把那个写错位置了,不应该放在private中,你放到procedure FormCreate(Sender: TObject);下一行去试试
      

  6.   

    procedure FormCreate(Sender: TObject);
      private
      procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;//此处出错
    private要写在下面,我刚试过了,没问题,
      

  7.   

    我想问一下为什么去掉 procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;后边的 message wm_syscommand就点击自己加上的菜单就没有反应了呢?