Component配列?

解決


tama  2004-02-10 21:51:41  No: 7050

Toolbar上の多数のToolButtonのTagプロパティーにinstanceの番号を設定しようとしています。
例えば配列を初期化するときのように、forで回して代入、
のような簡潔な書き方はできないものでしょうか?  ↓↓

ToolButton1.Tag:=1;     
ToolButton2.Tag:=2;   
ToolButton3.Tag:=3;
・・・
・・・
ToolButton43.Tag:=43;


jok  2004-02-10 22:29:51  No: 7051

番号はゼロからですけど

procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  for i := 0 to ToolBar1.ButtonCount-1 do
    ToolBar1.Buttons[i].Tag := i;
end;


Lupin3  URL  2004-02-10 22:53:03  No: 7052

まぁこれでもいいんじゃないでしょうか

//jokさんのを1箇所変更
procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  for i := 0 to ToolBar1.ButtonCount-1 do
    ToolBar1.Buttons[i].Tag := i+1;
end;


tama  2004-02-10 23:43:31  No: 7053

jokさん、Lupin3さん迅速な御教示をありがとうございました。
こんなこと考えてました↓(笑ってやって下さい。)(^^;
 
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
    S,Sb:string;
begin
  for i:=0 to componentcount-1 do  begin
    Sb:=components[i].Name;   S:=leftstr(Sb,10);
    if s='ToolButton' then begin
      S:=rightstr(Sb,length(Sb)-10);
      components[i+1].tag:=strtoint(S);
    end;
  end;
end;


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

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






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