我想实现的功能是,现有三个EDIT控键edit1、edit2、edit3
edit3显示的值是edit1与edit2的积,在不需要按键情况下实现
比如:在edit1和edit2分别输入1和2 光标点到edit3的时候会自动显示出他们和积
希望高手指教!最好详细一点!
我想实现的功能是,现有三个EDIT控键edit1、edit2、edit3
edit3显示的值是edit1与edit2的积,在不需要按键情况下实现
比如:在edit1和edit2分别输入1和2 光标点到edit3的时候会自动显示出他们和积
希望高手指教!最好详细一点!
上面的程序还可以完善,对edit1/2的输入数据进行处理一下~
代码如下:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure Edit3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin //判断EDIT1中输入是否为数值,否则屏蔽。 if not((key in ['0'..'9',#8]) ) then begin key := #0; end; end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin //判断EDIT1中输入是否为数值,否则屏蔽。 if not((key in ['0'..'9',#8]) ) then begin key := #0; end; end;
procedure TForm1.Edit3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin edit3.Text :=inttostr(strToint(edit1.Text)*strToint(edit2.Text)); end;
end.
procedure TForm1.Edit3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin edit3.Text :=inttostr(strToint(edit1.Text)*strToint(edit2.Text)); end;
只要在MouseDown这个事件下写就可以了,不过还要做一些防错处理。