Вниз
Скачать: CL | DM;

Обращение к объектам, созданным в 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.006 c
1-46376
sammy
2002-04-01 08:09
2002.04.15
com файлы


14-46491
rambler
2002-03-05 17:58
2002.04.15
Вычисления.


1-46402
Ne0N
2002-04-02 13:34
2002.04.15
Загрузка Word овских DOC ов


1-46327
Yuraz
2002-04-01 17:32
2002.04.15
Мастера, не могу правильно выйти из потока, делаю:


1-46354
KarlovAF
2002-04-01 14:29
2002.04.15
Оператор IS...




   Наверх