Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.15;
Скачать: 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 вся ветка

Текущий архив: 2002.04.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
1-46364
Alibaba
2002-04-04 12:48
2002.04.15
xlReport


4-46548
Beast
2002-02-13 03:58
2002.04.15
Hook


3-46293
Serg!
2002-03-22 19:04
2002.04.15
ким образом можно динамически подгужать данные из select-запроса?


1-46407
Beginner
2002-03-30 15:44
2002.04.15
Не знаю технологии


1-46305
Chris
2002-04-03 14:52
2002.04.15
Спасение файлов с NTFS