循环控件

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

 

posted @ 2015-10-22 21:00  王云盼  阅读(206)  评论(0编辑  收藏  举报