DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hfh9801
今日帖子: 0
在线用户: 3
导航: 论坛 -> 发布控件 斑竹:liumazi,ruralboy  
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/13 2:38:27
标题:
NSC_ActionGroup 浏览:2435
加入我的收藏
楼主: 点击这里下载


今天做程序的时候发现Action多了不好控制
于是花了一晚上做了一个类似dxBar.Group功能的东东
继承自TCollection/TCollectionItem
可以将一些TContainedAction作为一个组来控制
当然,修改一下就可以将TComponent作为一个组来控制 :)
写得比较简单
如果哪位有时间可以给她做个属性编辑器,呵呵
有哪位修改了也请给我发一份 :)
sephil@163.com

ActionGroup.pas是源文件
NSC_ComponentGroup.mpb是ModelMaker的工程文件
其他的是Demo

另外有个问题我不会
就是如何将一个Event(比如TNotifyEvent)转换为TMethod
我用的是变通的手段

var
FGroups: TNSC_ActionGroup;

procedure TForm1.FormCreate(Sender: TObject);
begin
FGroups := TNSC_ActionGroup.Create(TNSC_ActionGroupItem);
FGroups.Add.AddFromActionList(ActionList1, ‘1‘);
FGroups.Add.AddFromActionList(ActionList1, ‘2‘);
FGroups.Add.AddFromActionList(ActionList1, ‘3‘);
FGroups.Add.AddFromActionList(ActionList1, ‘4‘);
end;

procedure TForm1.NewClick(Sender: TObject);
begin
ShowMessage(‘123‘);
end;

procedure TForm1.Action1Execute(Sender: TObject);
var
M: TMethod;
C: TLabel;
begin
// Setup OnExecute event
// I really don‘t know how to convert an event (such as TNotifyEvent) to TMethod
C := TLabel.Create(nil);
try
C.OnClick := NewClick;
M := TMethod(C.OnClick);
finally
C.Free;
end;
FGroups[0].SetProperty(‘OnExecute‘, M);
FGroups[0].SetProperty(‘Caption‘, ‘11‘);

FGroups[1].SetProperty(‘Caption‘, ‘Test‘);
FGroups[2].SetProperty(‘Enabled‘, False);

// Get OnExecute from gruop 1 and set to group 4
FGroups[0].GetProperty(‘OnExecute‘, M);
FGroups[3].SetProperty(‘OnExecute‘, M);

if FGroups[3].PropertyGrouped(‘Enabled‘) then
ShowMessage(‘Group[3] ‘‘Enabled‘‘ property grouped‘);
if not FGroups[3].PropertyGrouped(‘Enabled‘, False) then
ShowMessage(‘Group[3] ‘‘Enabled‘‘ property not grouped to ‘‘False‘‘‘);
if not FGroups[3].PropertyGrouped(‘Caption‘, ‘Action10‘) then
ShowMessage(‘Group[3] ‘‘Caption‘‘ property not grouped to ‘‘Action10‘‘‘);
end;
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/20 0:40:52
1楼: 前几天改了一下
适用于所有的TObject了
:)

点这里下载


----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行2439.453毫秒 RSS