TEdit编辑框输满后如何自动跳到下一个TEdit编辑框?(88分)

  • 主题发起人 主题发起人 jw
  • 开始时间 开始时间
if Length(Edit1.Text)>10 then Edit2.SetFocus;
 
在 onchange 时间中处理。

if length(Edit1.text) >= '你定义的长度' then
keybd_event(vk_tab,0,0,0);

 
大致同意kklf.
但觉得“编辑框输满”这个条件很模糊。
 
或:
if length(Edit1.text) >= '你定义的长度' then
Perform(WM_NEXTDLGCTL,0,0);
 
若我有10个以至更多的TEDIT编辑框该如何,每一个都判断一次长度吗?
 
不需要在所有TEDIT编辑框中都写一个
响应onchange的过程,可以为他们写一个
公共的函数
具体你可以参照:
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=180296
注意看利用sender参数。
 
将eidt1、edit2的tag属性分别指定为1、2
将eidt1、edit2的change事件指定为MyChange
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Mychange(Sender: TObject);
private
{ Private declarations }
public
end;



var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.MyChange(Sender: TObject);
begin
case TEdit(Sender).tag of
1:if Length(Edit1.Text)>10 then Edit2.SetFocus;
2:if Length(Edit1.Text)>10 then Edit2.SetFocus;
end
end;


 
多人接受答案了。
 
后退
顶部