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

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

Двумерные массивы строк в качестве параметров процедур и функций [D7, Win2k]


Frosty ©   (2006-03-23 15:28:00) 

Вопрос вот в чем:
имеються различные (разного размера) двумерные массивы константы:

Const
с1=..;
с2=..;
с3=..;
с4=..;

caArray1     :array [0..C1-1, 0..c2-1+1] of string =
                  (    '0' ,   ***   ,  '1' ),
                                *
                                *
                                *
                  (    '1' ,   ***    ,  '1' ));
caArray2     :array [0..C3-1, 0..c4-1+1] of string =
                  (    '0' ,   ***   ,  '1' ),
                                *
                                *
                                *
                  (    '1' ,   ***    ,  '1' ));
***

И соответственно процедура иль функция
function  f1  (CompStateArray: array of string): boolean;

Как можно передать в эту функцию массивы описанные выше?
И как их юзать в теле функции? Как приведено здесь выдает ошибку Incompatible Types.
Можно конечно переменные инициализить константами, но хочеться прям в лоб передавать в функцею любой константный двумерный строковый массив. Может кто подскажет?


Старик   (2006-03-24 13:16:00) [1]

Anatoly Podgoretsky: Не все, еще нужен тип
Ну, это понятно, и, к тому же, было указано выше :)
Я просто привел пример на фразу "А хотелось бы разных" (C).


tesseract   (2006-03-24 12:17:00) [2]


> Не типа variant, а типа TVarRec.


Да есть такое.


Leonid Troyanovsky   (2006-03-24 09:29:00) [3]


> tesseract ©   (24.03.06 09:16) [5]

> массивы типа variant.


Не типа variant, а типа TVarRec.
Просто, название такое - variant open array parameters.

--
Regards, LVT.


tesseract   (2006-03-24 09:16:00) [4]

попробуй openarrays - они представляют собой динамические массивы типа variant.


function test(value:array of const):bolean;


Anatoly Podgoretsky   (2006-03-23 16:31:00) [5]

Не все, еще нужен тип.


Старик   (2006-03-23 16:21:00) [6]

Frosty:
Для этого есть динамические массивы.
Одномерный:
var ttt : array of integer/string/byte etc.
begin
SetLength(ttt, Num); где Num - это параметр, который определит размер твоего массива, т.е. количество его элементов.

С двумерными аналогично:
var ttt : array of array of integer/string/byte etc.
begin
SetLength(ttt, Width, Height); вот и все.


Frosty   (2006-03-23 15:51:00) [7]

Тогда я буду передавать в функцию массивы только одного размера.
А хотелось бы разных, как и было указано в вопросе.


Джо   (2006-03-23 15:32:00) [8]

type
 TCaArray1 = array [0..C1-1, 0..c2-1+1] of string;

const
 caArray1     : TCaArray1 = ...

function  f1  (CompStateArray: TCaArray1 ): boolean;

В таком духе.


Наверх

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