Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
ВнизОбращение к объектам, созданным в Run-Time. Найти похожие ветки
← →
Cyrex (2002-04-01 17:34) [0]Вопрос такой: во время выполнения программы создается массив из 100 кнопок
btnUser: array[1..10, 1..10] of TButton;
x := 50;
y := 50;
for i := 1 to 10 do
begin
for j := 1 to 10 do
begin
btnUser[i,j] := TButton.Create(Self);
btnUser[i,j].Parent := frmMain;
btnUser[i,j].Caption := "";
btnUser[i,j].Width := 20;
btnUser[i,j].Height := 20;
btnUser[i,j].Left := x;
btnUser[i,j].Top := y;
x := x + 20;
if x = 250 then
begin
x := 50;
y := y + 20;
end;
end;
end;
А как писать процедуры для обработки событий, связанных с этими объектами, обращаться к ним через индекс? Не писать же 100 почти одинаковых кусков кода.
P.S. Если чего неправильно назвал или задал глупый вопрос, просьба не бить, за Дэльфи сел не прошлой неделе.
← →
Виктор Щербаков (2002-04-01 17:39) [1]
> Не писать же 100 почти одинаковых кусков кода.
Конечно не нужно. Напиши один обработчик и назначь его всем кнопкам. А внутри этого обработчика определяй какую именно кнопку нажали, через Sender.
← →
Cyrex (2002-04-01 17:42) [2]Если можно, как это примерно будет выглядеть (сорри за занудство, но сейчас важно понять основы)?
← →
Виктор Щербаков (2002-04-01 17:46) [3]...
btnUser[i,j].OnClick := MyButtonClick;
...
procedure TForm1.MyButtonClick(Sender: TObject);
begin
//Меняем текст на нажатой кнопке
(Sender as TButton).Caption := "Wow!";
end;
← →
Cyrex (2002-04-01 18:01) [4]Благодарю!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c