今天看了以前刚学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;