Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
6-1111560156
olorint
2005-03-23 09:42
2005.06.14
Ошибка при загрузки страницы в WebBrowser


8-1108553563
cuppykx
2005-02-16 14:32
2005.06.14
Пиксели цифровой камеры


3-1115113838
kyn66
2005-05-03 13:50
2005.06.14
Как закрыть базу Access (mdb) ?


14-1117005456
Igorek
2005-05-25 11:17
2005.06.14
Как установить на клавиатуру индикатор раскладки?


14-1116707198
Gamer
2005-05-22 00:26
2005.06.14
CD-ROM => CD-Player





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский