![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массив компонентов [D6, WinME]
Алексей Смирнов © (2002-09-28 21:02:00)Здравствуйте. Все ваши правила прочитал, искал на вашем сайте и по всему инету - но этого так и не нашел, а если и нашел - то все там объяснено поверхностно. И даже много книг купил.
Подскажите бедному начинающему. Массив я научился создавать, а вот как с ним работать - никто не знает. Создал я например массив кнопок btn[1..10]. А как с ними действия производить, например нажатие мышкой? Очень прошу подробный пример, а то уже голова болит, да и в инете я много денег прожрал из-за поиска этой информации.
Заранее ОГРОМНОЕ СПАСИБО!!!
Shrek (2002-09-29 15:59:00) [1]Tag
Алексей Смирнов (2002-09-29 15:52:00) [2]Большое всем спасибо. Все заработало, но возникла еще проблема: возьмем к примеру игру сапер: четыре изображения содержат соответсвенно не нажатую, нажатую, с флагом и с миной картинку.
Как мне сравнить мой массив кнопок с той из четырех, вернее по какому свойству? Такая инструкция не работает:
if TImage(sender).Picture:=ImgOn.Picture; где ImgOn - изображение с нажатой кнопкой. И вообще по какому параметру можно сравнивать полученный массив кнопок с кнопками изначально расположенными на форме?
Еще раз всем спасибо.
P.S. На ссылке, что указал Юрий Зотов я ответ на этот вопрос не нашел.
Arnold (2002-09-29 11:55:00) [3]Для новичков можно ещё так
var
Btn: array[1..n] of TButton;
//Создаёшь любую процедуру с параметрами точно повторяющие //параметры события которого ты хочешь вызвать.
procedure TForm1.CClick(Sender:TObject);
begin
with (Sender as TButton)
begin
end;
end;
for i:=1 to n do
begin
Btn[I]:=TButton.Create(Form1);
........
Btn[I].OnClick:=CClick;
Btn[I].Parent:=Form1;
end;
Separator (2002-09-28 21:28:00) [4]лавное не забуть отобразить кнопки в нужно тебе месте
Юрий Зотов (2002-09-28 21:18:00) [5]Объявляем:
var
Btn: array[1..10] of TButton;
И далее работаем с каждым элементом массива, как с обычной кнопкой. Например.
for i := 1 to 10 do
begin
Btn[i] := TButton.Create(Self);
with Btn[i] do
begin
Parent := Panel1;
SetBounds(...);
OnClick := MyOnClickHandler;
...
end
end;
Все подробности здесь:
http://www.delphikingdom.com/helloworld/runtime_comp.htm