CnPack Forum


 
Subject: 有关我们的组件前缀专家
leeon
新警察
Rank: 1



UID 259
Digest Posts 0
Credits 22
Posts 22
点点分 22
Reading Access 10
Registered 2003-12-9
Status Offline
Post at 2004-6-14 09:01  Profile | Blog | P.M. 
有关我们的组件前缀专家

嗬嗬,不管谁看到,考虑一下我的这个建议吧。

        我们的这个专家是使用FormNotifier截获这个新创建的控件的新名字。然后加入到生成的控件的
列表中。之后用ApplicationEvents来修改。
        我的意见大概有如下几点:

        一、对于控件,我们没有必要用FormNotifier来接获这个控件生成。

        Delphi为我们提供了CM_CONTROLCHANGE这个消息,通过这个消息可以给刚插入控件修改。但是,
这个消息是TWinControl发出的,但是是应用在TControl的,也就是说,不可视化控件TComponent
建立的是无能为力的。可以有这么一个类方法,Message.Control就是插入的控件:

procedure CMControlChange(var Message:TCMControlChange); message CM_CONTROLCHANGE;

CM_CONTROLCHANGE 这个消息是从这里
procedure TWinControl.InsertControl(AControl: TControl);
procedure TWinControl.RemoveControl(AControl: TControl);
发出的。

我找了,其他地方没有。

        我提出的原因是,用AppEvent会不停的修改,这个专家主要的用途就是在控件建立的时候规范
化的命名,我后面作出了修改,就说明我不需要前缀专家的照顾了。我每次对控件做出新的修改,尽管
不用前缀,那是有我的理由的,但是框框又出来了。我感到无奈。如果用ApplicationEvents,我建议
把OnIdle事件适时地置为空。

        我昨天大概写到这里,突然想到TComponent是否可以,竟然不可以,所以就没有发,在做实验试
试看,我想个别的办法,能不用Notifier尽量不用,这个太不方便了。或者不用ApplicationEvents,
这个事我最无奈的……

        二,对于前缀的判断,是否应该加入大小写不敏感,这点我感到无奈是因为,我的同事喜欢把前缀
命名为大写,比如一个TLookUp控件,他命名为,LKContractID,但是到我这里之后,就给命名为
lkLKContractID1,其他类似。同样无奈产生在我们做的批量生成控件的工具上,生成一批控件,就因
前缀是LBL不是lbl,是LK不是lk,就弹出十几个框框……
Top
 




All times are GMT++8, the time now is 2024-10-31 08:53

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.005383 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP