LabelのCaptionをfor関数で決める

解決


umi  2007-03-16 18:24:38  No: 25364  IP: 192.*.*.*

例えば
Label1とlabel2
のCaptionを「1」と「2」にしたいときに

for i:=1 to 2 do
for i:=1 to 2 do
    begin
    s := 'label'+inttostr(i)+'.caption' ;
    s :=inttostr(i);
    end;

と書いたのですが、うまくいきません。

お願いします。

編集 削除
もにゃ  2007-03-16 19:53:20  No: 25365  IP: 192.*.*.*

そんなあいまいな愛じゃDelphiは語れません。
あと、文字列からコンポーネントを探すのはFindComponentです。

編集 削除
おも  2007-03-16 22:51:58  No: 25366  IP: 192.*.*.*

>Label1とlabel2

大文字、小文字が統一されていれば、

var
  i:Integer;
  s:String;
  lbl:TComponent;
begin
    for i:=1 to 2 do begin
        lbl:=FindComponent('label'+IntToStr(i));
        (lbl as TLabel).Caption:=IntToStr(i);
    end;
end;

といったような感じでやってみてください。

編集 削除
おも  2007-03-16 22:59:11  No: 25367  IP: 192.*.*.*

>>Label1とlabel2

>大文字、小文字が統一されていれば、

Delphi6 Personalですが、
lbl:=FindComponent('label'+IntToStr(i));
のままで、Label1とLabel2のCaptiontが「1」と「2」になりましたから、大文字小文字は気にしなくていいようです。

あと、

>Captionを「1」と「2」にしたいときに

これは半角ではなく全角のようですから、その部分のアレンジは必要そうですね。

編集 削除
umi  2007-03-17 10:59:59  No: 25368  IP: 192.*.*.*

おもさん  もにゃさん
回答ありがとうございます。

質問文に誤字が多かったみたいです。申し訳ありません。

おもさんの方法で解決しました。

ありがとうございました。

編集 削除