LabelのCaptionをfor関数で決める

解決


umi  2007-03-17 03:24:38  No: 25364

例えば
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-17 04:53:20  No: 25365

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


おも  2007-03-17 07:51:58  No: 25366

>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-17 07:59:11  No: 25367

>>Label1とlabel2

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

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

あと、

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

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


umi  2007-03-17 19:59:59  No: 25368

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

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加