写EDIT控件,遇到的困惑。(200)

  • 主题发起人 主题发起人 haiip2000
  • 开始时间 开始时间
H

haiip2000

Unregistered / Unconfirmed
GUEST, unregistred user!
近期研究VCL控件,觉得很有意思。上个月写了一个Listview的控件,增加了个在新线程中导出数据到excel文件功能。心里很高兴。近几天在改EDIT控件,想把它做的更适合金额的输入,比如右对齐,“¥”符号,小数点后始终保留后两位等等。反正功能已经做出来了。但是问题也就出来了。因为我有写Listview控件的经验,所以我还是用delphi的新建向导建立package,然后ADD一个继承TEDIT的pas文件:unit JEEdit;interfaceuses SysUtils, Classes, Controls, StdCtrls;type TJEEdit = class(TEdit) ..........把自己原来写的功能加进去之后,也没有任何错误。安装也没有任何异常.....可是安装后我的控件并没有出现在控件栏里,只能在控件维护的地方看到。我很奇怪为什么会出现这样的问题,我重装了2遍delphi,彻底清理了注册表信息,后来发觉,我只要继承TEDIT不写任何功能,安装出来还是不显示。这是为什么呢?我找了一下有人说直接继承TEDIT的上级TCustomEdit就可以了,我也这样试了,结果还是不行。总是不得要领.......大虾们好心给解答解答
 
注册了,我用向导的话 这个是DELPHI自动生成了的。不是这个原因
 
没注册吧, var ShortDayNames1: array[1..7] of string;procedure Register;implementationprocedure Register;begin RegisterComponents('Samples', [TSampleCalendar]);//TSampleCalendar 这个是我写的VCL控件名称,你的程序应该在这里添加 RegisterComponents('添回标签的位置', [TJEEdit]);end;
 
有心人可以尝试一下啊,用DELPHI的向导生成一个继承于TEDIT的控件然后什么都不写,问题同样也会出现
 
如果工程里引用了你这个控件的pas 能够引用你的这个控件类创建实例吗?
 
你得换个版本的delphi,5.0肯定不会错的。
 
写辆次就可以了! __TJEEdit = class(TEdit)... ...TJEEdit = class(__TJEEdit)
 
TO:hs-kill我试过,不可以。TO:叶不归我用的D7,我觉得还是蛮不错的。TO:wql谢谢,一会我试一下。
 
我试验过,是有的 ,你选择的是QDialg吧。
 
以前我也遇到过...好像 Q开头的有关,,,现在 记不清了....好像是ClX有关..
 
多人接受答案了。
 
TO:fanronghua不是QDialg 我选的是TEdit [QStdCtrls]TO:令狐小侠恩,确实可能与Q开头有关,我改其他的就好了,声明一遍就可以了。不敢说这是不是D7的错误,反正让人很搞不懂....ALL:这个控件我已经写了一半了,本想写好了给大家公布出来的,但发觉还是困难重重。因为要处理EDIT中的焦点,常规情况下用SelStart就可以获得,但在OnChange中只要一写这几个字母.....毫无悬念的这个控件就不能被拖到FORM里了。55555555555当然以上不再是这个问题所涉及的内容了。准备结贴,谢谢大家
 
后退
顶部