delphi7 修改系統菜單之sysmenu事件


unit dy219;

interface

uses
  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已聲明的!

13 个解决方案

#1


。。。。。。你自己在試試吧,我把你的代碼復制了一份,編譯沒有錯誤

#2


引用 1 樓 m617105 的回復:
。。。。。。你自己在試試吧,我把你的代碼復制了一份,編譯沒有錯誤



還是這個錯誤的
:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect'

在DelPhi7下運行

#3


twmenuselect:就是在Messages單元里定義的,你已經包含過了


#4


引用 3 樓 m617105 的回復:
twmenuselect:就是在Messages單元里定義的,你已經包含過了



還是下面的提示:

[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect'
[Error] Unit1.pas(25): Unknown directive: 'message'

sysmenu這個事件在設計事件列表里面沒有,是自己增加的

#5


twmmenuselect不對

#6


引用 5 樓 zshsuming 的回復:
twmmenuselect不對



那是哪個?

#7


錯誤提示:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect' 請大家看看在哪錯了,sysmenu已聲明的!
錯誤提示的很明白twmenuselect是沒有定義的,應該是TWMMenuSelect,少個‘m’
你寫錯了,你程序里肯定寫錯了,你在好好看看吧

#8


引用 7 樓 m617105 的回復:
錯誤提示:[Error] Unit1.pas(25): Undeclared identifier: 'twmenuselect' 請大家看看在哪錯了,sysmenu已聲明的!
錯誤提示的很明白twmenuselect是沒有定義的,應該是TWMMenuSelect,少個‘m’
你寫錯了,你程序里肯定寫錯了,你在好好看看吧


還真是寫錯了

#9


該回復於2011-04-27 13:32:50被版主刪除

#10


那是哪個?

#11


我覺得你把那個寫錯位置了,不應該放在private中,你放到procedure FormCreate(Sender: TObject);下一行去試試

#12


procedure FormCreate(Sender: TObject);
  private
  procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;//此處出錯
private要寫在下面,我剛試過了,沒問題,

#13


我想問一下為什么去掉 procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;后邊的 message wm_syscommand就點擊自己加上的菜單就沒有反應了呢?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com