Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как создать в цикле Array Of Const?


IGray ©   (2008-01-21 04:27:00) 

Hi! Есть процедура с параметром типа Array Of Const и мне нужно в цикле создать массив вариантов подходящий для передачи в эту процедуру.

Что-то типа:
создать массив нулевого размера (вероятно типа array of TVarRec?)
for бла-бла-бла begin
 увеличить размер массива на элемент
 заполнить последний элемент значением типа Variant
end;

Поделитесь примерчиком плииз!
Сорри если торможу мрачно..
Заранее спасибо!


oxffff   (2008-01-21 13:46:00) [1]


> Leonid Troyanovsky ©   (21.01.08 13:15) [7]


Это embedded Variant array в Array Of Const.
:)


Leonid Troyanovsky   (2008-01-21 13:15:00) [2]


> Плохиш ©   (21.01.08 12:21) [6]

> > Как создать в цикле Array Of Const?

> var
>    varSearch:  Variant;

Это ж не array of TVarRec.
Ему, видимо, нужен a[i].VType := vtVаriant; a[i].VVariant := @v;

--
Regards, LVT.


Плохиш   (2008-01-21 12:21:00) [3]


> Как создать в цикле Array Of Const?
>
> IGray   (21.01.08 04:27)


var
   varSearch:  Variant;
...
     varSearch := VarArrayCreate( [0, myCount], varVariant );
     for lCount := 0 to myCount do
       varSearch[lCount] := Random(myCount);
     MyProc(Variant(varSearch));
...


KilkennyCat   (2008-01-21 12:02:00) [4]

хз - тз...


Рамиль   (2008-01-21 11:47:00) [5]


> да он уже на самом деле оценен. его ж передавать будут таким,
>  чтоб подошел.

А зачем тогда в цикле увеличивать?


KilkennyCat   (2008-01-21 10:35:00) [6]


> Рамиль ©   (21.01.08 10:31) [2]

> Оцените массив,


да он уже на самом деле оценен. его ж передавать будут таким, чтоб подошел.


Рамиль   (2008-01-21 10:31:00) [7]


> IGray   (21.01.08 04:27)  

Вы думаете перевыделение памяти такая быстрая операция?
Оцените массив, выделите чуть больше памяти, потом обрежте.


KilkennyCat   (2008-01-21 05:50:00) [8]


> увеличить размер массива на элемент

SetLength(array, length(array) + 1);

> заполнить последний элемент значением типа Variant

array[high(array)] := ....


Наверх

Титульная страница Поиск, карта сайта Написать письмо