![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обращение к объектам, созданным в Run-Time. [D6, Win2k]
Cyrex © (2002-04-01 17:34:00)Вопрос такой: во время выполнения программы создается массив из 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. Если чего неправильно назвал или задал глупый вопрос, просьба не бить, за Дэльфи сел не прошлой неделе.
Cyrex (2002-04-01 18:01:00) [1]Благодарю!
Виктор Щербаков (2002-04-01 17:46:00) [2]...
btnUser[i,j].OnClick := MyButtonClick;
...
procedure TForm1.MyButtonClick(Sender: TObject);
begin
//Меняем текст на нажатой кнопке
(Sender as TButton).Caption := "Wow!";
end;
Cyrex (2002-04-01 17:42:00) [3]Если можно, как это примерно будет выглядеть (сорри за занудство, но сейчас важно понять основы)?
Виктор Щербаков (2002-04-01 17:39:00) [4]
> Не писать же 100 почти одинаковых кусков кода.
Конечно не нужно. Напиши один обработчик и назначь его всем кнопкам. А внутри этого обработчика определяй какую именно кнопку нажали, через Sender.