SpeedButton и их нумерация

tihiy_don

Старожил
На форме программы делфи есть 43 компонента SpeedButton.

Возможно ли через цикл сделать так, чтобы проставить порядковый номер SpeedButton с таким значением:
Bitmap(1,SpeedButton1.G);

То-есть, чтобы не прописывать:
Bitmap(1,SpeedButton1.G);
Bitmap(1,SpeedButton2.G);
Bitmap(1,SpeedButton3.G);
Bitmap(1,SpeedButton4.G);
......
Bitmap(1,SpeedButton43.G);
 

Nemko

Дилетант
Модератор
ИМХО: Однотипные переменные объявить одним массивом, далее в цикле обращаться по индексу. Не знаю как в Delphi, но на Inno примерная логика:
Код:
var
  SpeedButton: array [0..42] of TNewSpeedButton;

procedure RepaintButton;
var
  i: Integer;
begin
  for i:=0 to GetArrayLength(SpeedButton)-1 do Bitmap(1, SpeedButton[i].G);
end
 
Последнее редактирование:

tihiy_don

Старожил
ИМХО: Однотипные переменные объявить одним массивом, далее в цикле обращаться по индексу. Не знаю как в Delphi, но на Inno примерная логика:
Код:
var
  SpeedButton: array [0..42] of TNewSpeedButton;

procedure RepaintButton;
var
  i: Integer;
begin
  for i:=0 to GetArrayLength(SpeedButton)-1 do Bitmap(1, SpeedButton[i].G);
end
Спасибо, буду копать в этом направлении.
 

tihiy_don

Старожил
Чтобы пройтись по всем компонентам SpeedButton на форме через цикл, то необходим такой код:
Может кому пригодится.
code_language.pascal:
  for i:= 1 to 43 do
  begin
    Bitmap(5,TSpeedButton(FindComponent('SpeedButton'+IntToStr(i))).G);
  end;
 
Сверху