今天看了以前刚学D写的一个程序,发现好多垃圾代码,我有本事把Edit一个一个的写下去
Edit1.MaxLength := 2; Edit2.MaxLength := 2; Edit3.MaxLength := 2; Edit4.MaxLength := 2; Edit5.MaxLength := 2; Edit6.MaxLength := 2; Edit7.MaxLength := 2;
Edit8.MaxLength := 5;
Edit1.SelStart := length(Edit1.Text);
Edit2.SelStart := length(Edit2.Text);
Edit3.SelStart := length(Edit3.Text);
Edit4.SelStart := length(Edit4.Text);
Edit5.SelStart := length(Edit5.Text);
Edit6.SelStart := length(Edit6.Text);
现在看看,真“厉害”,我也只能这么说了。
当初是不想写这么多,想省点事,所以就想循环,当初是这么想的
var i: integer; begin for i := 1 to 8 do begin Edit[1].text // 哈哈,结果发现不行,因为根本就不是控件名 end; end;
好吧,我放弃了,反正功能都一样,我根本就没想到循环控件.
今天突然想起来就这这里记录下吧。
var i,j: integer; begin /// 输入最大长度 for i := 0 to self.ComponentCount -1 do begin // 循环每个Edit控件 设置最大长度为2 if self.Components[i] is TEdit then begin (self.Components[i] as TEdit).MaxLength := 2; end; if Sender = Edit8 then Edit8.MaxLength := 5; // 长度不超过5位数 end; end;
/// 将光标移到最后
for j := 0 to ComponentCount - 1 do begin
if Components[j] is TEdit then begin
(Components[j] as TEdit).SelStart := Length((Components[j] as TEdit).Text);
end;
end;