同上

解决方案 »

  1.   

    在edit中输入跟speedbutton有啥关系?
    是不是用speedbutton在多个edit中来回切换?
      

  2.   

    用一个SPEEDBUTTON的表示值在EDITA中输入1,2,3,4....,在EDIT输入后,光标就在输入值的后面一位,其中有一个SPEEDBUTTON是要达到这样的效果,当点击这个SPEEDBUTTON后,在EDIT中的数值就少一位,光标也跟着往前移一位
      

  3.   

    你是要做一个计算器之类的东西吧,这样
    1.在窗体上放上4个speedbutton,caption属性分别为1,2,3,4,并分别设置4个按钮的onclick为speedbutton事件函数
    2.在窗体上再添加一个speedbutton,用于退格,具体看代码吧
    3.楼主加点分
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Buttons, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        SpeedButton1: TSpeedButton;
        SpeedButton2: TSpeedButton;
        SpeedButton3: TSpeedButton;
        SpeedButton4: TSpeedButton;
        SpeedButton5: TSpeedButton;
        procedure SpeedButton5Click(Sender: TObject);
        procedure SpeedButtonClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SpeedButton5Click(Sender: TObject);
    var
    str:string;
    len:integer;
    begin
    str:=edit1.Text;
    len:=length(str);
    if len>1 then delete(str,len,1) else str:='';
    edit1.Text:=str;
    edit1.SelStart:=length(str);
    end;procedure TForm1.SpeedButtonClick(Sender: TObject);
    begin
    edit1.Text:=edit1.Text+(sender as TSpeedButton).Caption;
    edit1.SelStart:=length(edit1.Text);
    end;end.
      

  4.   

    //把上面代码修改了一下,可以从光标处删除和插入
    procedure TForm1.SpeedButton5Click(Sender: TObject);
    var
    str:string;
    len:integer;
    begin
    str:=edit1.Text;
    len:=edit1.SelStart;
    if len>1 then delete(str,len,1) else str:='';
    edit1.Text:=str;
    edit1.SelStart:=len-1;
    end;procedure TForm1.SpeedButtonClick(Sender: TObject);
    var
    str:string;
    len:integer;
    begin
    str:=edit1.Text;
    len:=edit1.SelStart+1;
    insert((sender as TSpeedButton).Caption,str,len);
    edit1.Text:=str;
    edit1.SelStart:=len;
    end;