俺正在做1个可以对菜单设置权限值的控件,需要检测窗体上是否添加了菜单,或是删除了当前菜单,这应该是消息处理这一块的.
解决方案 »
- 做COM 如何实现IOLEObject接口
- 在DELPHI中如何实现一个全局的数据连接字串,像.NET下的WebConfig一样,用DataModule可以实现吗?
- 再放个200分~~~~~~~
- 今天来看,不知道为什么多了一些可用分,散掉吧。
- ???delphi7.0装在winn2000server上为何找不到Qreport面版???
- Delphi计算字符串哈希码程序
- 求助:关于stringgrid的问题
- 如何在TWebBrowser中给HTML页面中Java Applet设置属性?
- 提供:金山词霸2003下载地址!
- 有关检查sql server的服务状态跟检查映射的硬盘空间的问题,急……
- 怎样控制打印
- 我如何获取树的枝叶信息。
不好意思,你的这个东东不是俺想要的!
我做的菜单权限控件有个MainMenu属性,用于记录当前窗体的主菜单,可是当删除窗体上的主菜单时,该属性由于目标指针已丢弃就会报错.类似于TMainMenu的Images属性,当窗体上相关的IMagesList控件被删除时,该属性值会跟着赋值为空。设计期就可以是这样的。但是TImagesList控件有TChangeList来记录与其关联的控件之属性指针,所以其析构时可以很好的控制与其关联的东东,而TMenu是没有这方面的特性的,所以我想应该是加个钩子来检测相应的消息,再做相应的判断和操作。但是我不知道该检测什么消息,希望能给兄弟些提示和建议。诚谢各位了!
TForm1 = class(TForm)
Button1: TButton;
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
FileStrs: TStrings;
protected
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Free;
end;procedure TForm1.Notification(AComponent: TComponent;
Operation: TOperation);
var
AName: String;
begin
AName := AComponent.ClassName;
inherited Notification(AComponent, Operation);
if FileStrs = nil then FileStrs := TStringList.Create;
if Operation = opRemove then
FileStrs.Add(AName + '已经被删除')
else
FileStrs.Add(AName + '已经被加入');
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
FileStrs.SaveToFile('g:\aa.txt');
FileStrs.Free;
end;我想,你应该知道可以在Notification中截获这些消息了。—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
若能有这方面的消息,我就可以用钩子来做这些事了。希望能继续给些帮助。
覆盖它就行了,具体怎么用,你可以看quickreport的源码