![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте. Создаю программно массив компонентов( матрицой 4 Х 7). Как мне им присвоить тэги, чтобы было так:
0, 1, 2 ,3 4, 5, 6 , 7 и т.д? |
#2
|
||||
|
||||
![]() Цитата:
Нету такого понятия в матрицах. Есть индекс, номер, размерность, значение. Но не тег! |
#3
|
||||
|
||||
![]() Под словом матрица 4Х7 я имел ввиду форму расположения массива кнопок на форме, а не целочисленный массив
![]() |
#4
|
|||
|
|||
![]() т.е. вам надо каждой кнопке в ее свойство Tag прописать ее индекс? правильно понимаю?
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#5
|
||||
|
||||
![]() да, то есть:
0,1,2,3 4,5,6,7 8,9,10,11 и т.д., а не MyButton[i,j].Tag:= (i*j) Последний раз редактировалось Rick, 22.03.2011 в 10:11. |
#6
|
||||
|
||||
![]() Код создания ваших кнопок в студию, но скорее всего там типа такого:
Код:
Var X,Y,i: Integer; begin i := 0; for Y := 0 to 6 do for X := 0 to 3 do with TButton.Create(Self) do begin Inc(i); Top := Y * 30; Left := X * 30; Width := 30; Height := 30; Tag := i; Caption := IntToStr(i); Parent := Self; end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Rick (03.08.2012)
|
#7
|
||||
|
||||
![]() Вот код (пардон за формат). Поправка: количество строк в отличии от столбцов может меняться:
Код:
var arr3:array of array of TButton; //..................................................... procedure TForm1.Label1Click(Sender: TObject); var i, j: byte; n: integer; count:String; begin count:=inputbox('Введите клоичество вопросов',' ','10'); try n := StrToInt(count); except on EConvertError do ShowMessage('???'); end; setlength(arr3,n,4); for i:=0 to n-1 do for j:=0 to 3 do begin Arr3[i,j]:=Tbutton.Create(Self); Arr3[i,j].Parent := Self; Arr3[i,j].Top:=(i-1)*Arr3[i,j].Height+50; Arr3[i,j].Left:=(j-1)*Arr3[i,j].Width+800; Arr3[i,j].Width :=50; Arr3[i,j].tag:=(i+1)*(j+1); //чтобы обращаться к контролу по его тагу Arr3[i,j].caption :=IntToStr ((i+1)*(j+1)); TButton( Arr3[i,j]).onClick:=arr1Click;//присвоил обработчику процедуры OnClick обычной кнопки обработчик массива кнопок процедуру arr1Click, end; end; в итоге по тэгам выходит так: 1,2,3,4 2,4,6,8 3,6,9,12, а мне надо чтоб 1,2,3,4 5,6,7,8 Последний раз редактировалось Admin, 22.03.2011 в 11:35. |
#8
|
|||
|
|||
![]() Страдалецъ же тебе написал.
Код:
Var X,Y,i: Integer; begin i := 0; for Y := 0 to 6 do for X := 0 to 3 do with TButton.Create(Self) do begin Inc(i); Top := Y * 30; Left := X * 30; Width := 30; Height := 30; Tag := i; Caption := IntToStr(i); Parent := Self; end; end; ![]() Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#9
|
||||
|
||||
![]() ![]() ![]() |
#10
|
|||
|
|||
![]() Ваш код с исправлениями
Код:
procedure TForm1.Label1Click(Sender: TObject); var i, j: byte; n,k: integer; count:String; begin count:=inputbox('Введите клоичество вопросов',' ','10'); try n := StrToInt(count); except on EConvertError do ShowMessage('???'); end; setlength(arr3,n,4); k:=0; for i:=0 to n-1 do for j:=0 to 3 do begin inc(k); Arr3[i,j]:=Tbutton.Create(Self); Arr3[i,j].Parent := Self; Arr3[i,j].Top:=(i-1)*Arr3[i,j].Height+50; Arr3[i,j].Left:=(j-1)*Arr3[i,j].Width+800; Arr3[i,j].Width :=50; Arr3[i,j].tag:=k; //чтобы обращаться к контролу по его тагу Arr3[i,j].caption :=IntToStr ((i+1)*(j+1)); TButton( Arr3[i,j]).onClick:=arr1Click;//присвоил обработчику процедуры OnClick обычной кнопки обработчик массива кнопок процедуру arr1Click, end; end; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
Этот пользователь сказал Спасибо Black Raider за это полезное сообщение: | ||
Rick (03.08.2012)
|
#11
|
||||
|
||||
![]() Огромное спасибо!
|