コントロールを一括で処理したい

解決


にしょくとう  2008-06-18 03:51:06  No: 31006  IP: [192.*.*.*]

表題の件ですが
たとえばText1 ・・・ Text10
というような10個のTeditコントロールがあります
そこで
for i := 1 to 10 do
begin
 Texti = i
end;
というようなことをしたのですが
どうすればよいのでしょうか

編集    削除
HOta  2008-06-18 04:03:59  No: 31007  IP: [192.*.*.*]

たくさんサンプルも出ていますよ。

for I := 0 to Form1.Components.count - 1 do
  if Form1.Components[I] is TEdit then
  begin
    TEdit(Form1.Components[I]).text := IntToStr(I);
  end;

編集    削除
igy  2008-06-18 07:05:17  No: 31008  IP: [192.*.*.*]

>たとえばText1 ・・・ Text10
>というような10個のTeditコントロールがあります

規則正しい名前を持つ場合は

連続する名前のエディットから効率よく値を取得するには?
https://www.petitmonte.com/bbs/answers?question_id=1882

のように FindComponent メソッド を使うのも、よいかと思います。

編集    削除
にしょくとう  2008-06-25 23:51:43  No: 31009  IP: [192.*.*.*]

for i:= 1 to 10 do begin
  TEdit(FindComponent('Text' + IntToStr(i))).Text := IntToStr(i);
end;
でできましたありがとうございました。

編集    削除