我想自己做个练习,思路是这样的:
扩充Tedit,使其只能输入小数点和数字。增加一个属性,设置是否可以输入小数点;增加一个属性,设置小数点后有几位。
现在的问题是,怎样处理粘贴动作?
新手入门,请各位高手不吝指教。能给出代码更好。

解决方案 »

  1.   

    截获WM_PASTE消息,不处理。
    下面的例子演示一个不能使用粘贴的editunit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ExtCtrls;type
      tMyedit = class(TEdit)
       private
         procedure Mymessga(var Message: TMessage); message WM_PASTE;
      end;
      TForm1 = class(TForm)
        Image1: TImage;
        Image2: TImage;
        BitBtn1: TBitBtn;
        Edit1: TEdit;
        Edit2: TEdit;
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ ted }procedure tMyedit.Mymessga(var Message: TMessage);
    begin
       if Message.Msg = WM_PASTE then Message.Msg := 0;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    a : tMyedit;
    begin
        a := tMyedit.Create(nil);
        a.Parent := Form1;
        a.Left := 100;
        a.Top := 100;end;end.
      

  2.   

    剪贴内容变化动态跟踪原理和实现方法
    http://www.ccw.com.cn/cio/research/program/htm2003/20030904_146HC.asp