在TEdit中如何得到上次输入的内容?
例如:
Edit中的内容是abc,然后添加d,Edit中的内容变成abcd,而我要得到abc这个string。
Edit中的内容是xyz,然后添加m,Edit中的内容变成xmyz,而我要得到xyz这个string。
也就是说,我每次输入一个字符,都要得到输入这个字符以前的内容。
非常感谢!!!
例如:
Edit中的内容是abc,然后添加d,Edit中的内容变成abcd,而我要得到abc这个string。
Edit中的内容是xyz,然后添加m,Edit中的内容变成xmyz,而我要得到xyz这个string。
也就是说,我每次输入一个字符,都要得到输入这个字符以前的内容。
非常感谢!!!
begin
if Key in ['0'..'9','a'..'z','A'..'Z'] then
begin
StringList.Append(Edit1.Text+'&'+Key);
ShowMessage(StringList.Strings[StringList.Count-1]);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
StringList:=TStringList.Create;
end;
var OriginalString:string;
begin
originalString:=EditBox.Text;
EditBox.Undo
Result:=EditBox.Undo;
EditBox.Text:=OriginalString;
end;
function getPreviousString(EditBox:TEdit):string;
var OriginalString:string;
begin
originalString:=EditBox.Text;
EditBox.Undo;
Result:=EditBox.Text;
EditBox.Text:=OriginalString;
end;
Messages, Windows, SysUtils, Classes, Controls, StdCtrls, Forms, Menus,
Graphics;type
TqllEdit = class(TCustomEdit)
private
{ Private declarations }
FOldText: string;
protected
{ Protected declarations }
procedure Change; override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
procedure UndoText;
published
{ Published declarations }
property OldText: string read FOldText;
property OnChange;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Qll Control', [TqllEdit]);
end;constructor TqllEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;procedure TqllEdit.Change;
begin
inherited;
FOldText := Text;
end;procedure TqllEdit.UndoText;
begin
if Text <> OldText then
Text := OldText;
end;end.