Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизМассив комбиков Найти похожие ветки
← →
FANAT © (2005-05-24 11:01) [0]Облазил весь инет, ни как не могу понять как создать динамический массив 4х3 из комбиков...
Запросто получается... в одну строку или в один столбец вогнать все 12 комбиков.....
подскажите пожалуйста...
← →
Gero © (2005-05-24 11:07) [1]Зачем комбиков мучаешь, лучше делом займись.
← →
Юрий Зотов © (2005-05-24 11:10) [2]См. в справке "Multidimensional dynamic arrays".
var
A: array of array of TComboBox;
i, j: integer;
begin
SetLength(A, 4);
for i := 0 to 3 do
begin
SetLength(A[i], 3);
for j := 0 to 2 do
A[i, j] := TComboBox.Create(...)
end
end;
← →
Alx2 © (2005-05-24 11:14) [3]SetLength(A,4,3);
......
i = 0..3,
j = 0..2
A[i, j] := TComboBox.Create(...)
.......
← →
evvcom © (2005-05-24 11:44) [4]
> SetLength(A,4,3);
А сам пробовал?
← →
begin...end © (2005-05-24 11:45) [5]> evvcom © (24.05.05 11:44) [4]
А Вы?
← →
FANAT © (2005-05-24 11:52) [6]не получается.... :-(
procedure TForm1.Button1Click(Sender: TObject);
var
A: array of array of TComboBox;
i, j: integer;
begin
SetLength(A, 4);
for i := 0 to 3 do
begin
SetLength(A[i], 3);
for j := 0 to 2 do
A[i, j] := TComboBox.Create(self);
A[i, j].Parent:=Form1;
A[i, j].Name:="btn_"+IntToStr(i);
Caption:="кнопка";
Left:=i+80;
Top:=i+30;
Height:=25;
Width:=75;
end;
end;
end.
← →
Alx2 © (2005-05-24 11:54) [7]>evvcom © (24.05.05 11:44)
Да, конечно (у меня D6).
← →
evvcom © (2005-05-24 11:56) [8]
> begin...end © (24.05.05 11:45) [5]
> А Вы?
Опс. Можно и на ты. Действительно работает. Могли бы в справке вместо
procedure SetLength(var S; NewLength: Integer);
написать
procedure SetLength(var S; NewLength [, NewLength2, ...]: Integer);
Обычно на это обращаешь внимание и только когда что-то не выходит или пальцем ткнут, тогда на
For dynamic arrays, SetLength may take more than one length parameter (up to the number of array dimensions).
← →
FANAT © (2005-05-24 11:58) [9]блин...
везет вам вы тут между собой чирикаете... а я так и не понял...
извените.. я из начинающих...
может пальцем ткнете? как сделать то ... я написал код (выше)..
он не работает...
← →
Alx2 © (2005-05-24 12:02) [10]>FANAT © (24.05.05 11:58) [9]
procedure TForm1.Button1Click(Sender: TObject);
var
A: array of array of TComboBox;
i, j: integer;
begin
SetLength(A, 4);
for i := 0 to 3 do
begin
SetLength(A[i], 3);
for j := 0 to 2 do // Begin нужен
A[i, j] := TComboBox.Create(self);
A[i, j].Parent:=Form1;
A[i, j].Name:="btn_"+IntToStr(i);
Caption:="кнопка";
Left:=i+80; // Left, Top, Height, Width - чье все это?
Top:=i+30;
Height:=25;
Width:=75;
end;
end;
end.
← →
Gero © (2005-05-24 12:03) [11]
> FANAT © (24.05.05 11:58)
Откажись от использования этого решения, оно тебя явно не по зубам.
Создай для начала один «комбик».
Потом статический одномерный массив из пары «комбиков».
Потом динамический одномерный.
После этого поймешь без проблем и сделаешь все сам.
← →
evvcom © (2005-05-24 12:07) [12]var cb: TComboBox;
...
for ...
begin
cb := TComboBox.Create(self);
cb.Parent:=Form1;
cb.Name:="btn_"+IntToStr(i); // Это вообще лишнее
cb.Caption:="кнопка";
cb.SetBounds(i+80, i+30, 75, 25); // Так оптимальнее
A[i,j] := cb; // И так оптимальнее (через cb)
end;
← →
begin...end © (2005-05-24 12:09) [13]procedure TForm1.Button1Click(Sender: TObject);
var
A: array of array of TComboBox;
i, j: Integer;
begin
SetLength(A, 4, 3);
for i := 0 to 3 do
for j := 0 to 2 do
begin
A[i, j] := TComboBox.Create(Self);
A[i, j].Parent := Self;
A[i, j].SetBounds(i * 80, j * 30, 75, 25)
end
end
← →
FANAT © (2005-05-24 15:10) [14]cb.Name:="btn_"+IntToStr(i); // Это вообще лишнее
???
а почему лишнее?? как же я потом буду обращаться к этим комбикам?
← →
_1 (2005-05-24 15:15) [15]Не пойму зачем тут динамический..
← →
evvcom © (2005-05-24 15:36) [16]
> а почему лишнее??
А зачем оно?
> как же я потом буду обращаться к этим комбикам?
А зачем тебе тогда A[i,j]?
← →
ANB © (2005-05-24 15:40) [17]
> FANAT © (24.05.05 15:10) [14]
- а как ты собирался к ним обращаться ?
← →
FANAT © (2005-05-25 07:11) [18]как по имени конечно....
for i:=0 to ComponentCount-1 do
if (Components[i] is TButton) then
if TButton(Components[i]).Name=("btn_"+IntToStr(i)) then
.... ну и тут всякая белиберда...
← →
evvcom © (2005-05-25 08:36) [19]Допустим твои батоны с индексами в Components от 10 до 21. А при создании ты писал A[i, j].Name:="btn_"+IntToStr(i); где i от 0 до 3, причем по 3 раза пытаешься присвоить одно и то же имя (ошибку словил?) Ну и как ты думаешь, хоть один батон найдешь в своем цикле?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c