也就是说当在Form1中将此Edit放入后,只要去设置它的CanAccept,就可以启用是否接收数字,而不用在onkeypress中写代码!
试了很久,没成功,高手帮我讲解一下思路,谢谢!!!

解决方案 »

  1.   

    可能是书看得不明白,我只学会通过设定一个属性来改变已存在属性的值,如设ofont属性,一次把它的Font的size,color搞定,但通过一个属性来设定事件或方法我还是不蛮会!
    请多指点
      

  2.   

    private
      FCanAccept:Boolean;
    published
      property CanAccept:boolean read FCanAccept write FCanAccept;procedure TMyEdit.onKeyPress(Sender:TObject;Var key:Char);
    begin
      if FCanAccept and (not (key in ['0'..'9','.'])) then
        key:=#0
    end;我没用Delphi调试,大概就是这个样子的,你再试试吧。
      

  3.   

    http://publishblog.blogchina.com/control/blog/editDiary.b?diaryID=2047068看看 我的 blog 贴的 以前写的。 不过没有注释 ^_^
      

  4.   

    private
      FCanAccept:Boolean;
    public
      procedure KeyPress(var Key:Char);override;
    published
      property CanAccept:boolean read FCanAccept write FCanAccept;procedure TMyEdit.KeyPress(Var key:Char);
    begin
      if FCanAccept and (not (key in ['0'..'9','.'])) then
        key:=#0
    end;
    这次调试过了!^_^
      

  5.   

    多谢各位!多谢wintergoes(多来米饭少来稀)
    看来我已前写的太复杂了,我会从wintergoes(多来米饭少来稀)的代码中举一反三的,谢谢了!