怎样实现单击一个按钮,删除edit框中光标前的一个字符,功能和BackSpace差不多,但必须用程序实现。

解决方案 »

  1.   

    Use StrUtils;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if length(edit1.Text)>0 then
         edit1.Text:= leftstr(edit1.Text,length(edit1.Text)-1);
    end;
      

  2.   

    Length                      函数         返回字符串的动态长度
    Copy                        函数         返回一字符串的子串 
    先求取原来的长度 在按钮按下时
    copy 原来的长度-1应该就可以了吧但是要注意汉字的问题
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.Perform(WM_Char, vk_back, 0);
    end;
      

  4.   

    提倡使用 esu 的方法。
      

  5.   

    z:=edit1.SelStart;
    z2:=length(trim(edit1.text));
    z1:=copy(trim(edit1.text),1,z-1)+copy(trim(edit1.text),z+1,z2-1);
      

  6.   

    var
      j,str,NewStr:string;
      strInt,NewStrInt:integer;begin  str:=edit1.Text ;
      strInt:=length(str);
      j:=0;
      j:=j+1;
      NewStrInt:=strInt-j;
      NewStr:=copy(str,1,NewStrInt);
      edit1.Text:=NewStr;
      edit1.SetFocus ;
    end;
      

  7.   

    Edit.SelStart能够获得当前光标的位置。
      

  8.   

    s:=edit1.text;delete(s,edit1.SelStart,1);edit1.Text:=s;
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit1.Perform(WM_Char, vk_back, 0);
    end;
    是好的方法
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      str: string;
    begin
      str:=Copy(Edit1.Text,Edit1.SelStart+1,Edit1.GetTextLen-Edit1.SelStart);
      Edit1.Text:=Copy(Edit1.Text,0,Edit1.SelStart-1);
      Edit1.Text:=Edit1.Text+str;
    end;