如何取得Edit控件改变之前和改变之后的值(要求在同一过程或事件里处理)?

解决方案 »

  1.   

    :D 不明白楼主想要的是什么
    var
      sa, sb: string;
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      sa := Edit1.Text;
      Edit1.Text := 'season';
      sb := Edit1.Text;
    end;
      

  2.   

    当然是只要Edit控件的文本框内的里的文本改变的时候(用键盘输入的时候)
    取得改变之前和之后的值!
      

  3.   

    在OnEnter和OnExit中处理不可以吗?OnEnter里
    改变前值:=EDIT1.TEXT;OnExit里
    改变后值:=EDIT1.TEXT;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Edit1: TEdit;
        procedure Edit1Change(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        FOldText, FNewText: string; //旧值和新值
        procedure Deal_With_Text(AOldText, ANewText: string);//处理旧值和新值
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Deal_With_Text(AOldText, ANewText: string);
    begin
      ShowMessage(Format('文本框原来的值是: %s', [FOldText]));
      ShowMessage(Format('文本框新的值是: %s', [FNewText]));
    end;procedure TForm1.Edit1Change(Sender: TObject);
    begin
      FNewText := Edit1.Text;
      Deal_With_Text(FOldText, FNewText);//处理旧值和新值
      FOldText := Edit1.Text;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FOldText := Edit1.Text;
    end;end.
      

  5.   

    笑天这种做法不对吧,你这样是每输入一个字符就会替换旧值一次,到最后新值和旧值应该只差一个字符吧??到不如在ENTER里获取旧值,在CHANGE里获取新值要好吧!!