德尔福7 |仅从edit.text中删除char

时间:2018-02-16 10:58:28

标签: delphi

我需要帮助为按钮创建代码,此按钮只删除edit.text中的字符,想象我有一个文本“daniel”,按下我创建的按钮删除“l”,成为“danie” ”

3 个答案:

答案 0 :(得分:2)

使用Delete单元中的System程序,并使用Length(s)指定字符串的最后一个字符:

procedure TForm24.Button1Click(Sender: TObject);
var
  s: string;
begin
  s := Edit1.Text;
  Delete(s, Length(s), 1);
  Edit1.Text := s;
end;

或者,您可以使用Copy()功能:

procedure TForm24.Button3Click(Sender: TObject);
begin
  Edit1.Text := copy(Edit1.Text, 1, Length(Edit1.Text)-1);
end;

答案 1 :(得分:2)

您可以使用SelStartSelLength属性选择所需的文本,然后使用SelText属性删除所选文本:

procedure TForm1.Button1Click(Sender: TObject);
var
  Len: Integer; 
begin
  Len := Edit1.GetTextLen;
  If Len > 0 then
  begin
    Edit1.SelStart := Len-1;
    Edit1.SelLength := 1;
    Edit1.SelText := '';
  end; 
end;

这样做的好处是不需要分配任何内存来检索实际的Text内容,更改它,并将其分配回Text属性。一切都在控件自己的内部缓冲区内完成。

答案 2 :(得分:1)

var
  beforeStr, afterStr : string;

begin
  // Try to replace all occurrences for example of letter l
  beforeStr := 'Daniel';

  afterStr := StringReplace(beforeStr , 'l', '',
                          [rfReplaceAll, rfIgnoreCase]);
  ShowMessage('beforeStr = '+beforeStr);
  ShowMessage('afterStr = '+afterStr );
end;

* rfReplaceAll标志是您要替换所有出现的内容。