Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

Двумерные массивы строк в качестве параметров процедур и функций   Найти похожие ветки 

 
Frosty ©   (2006-03-23 15:28) [0]

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

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-23 15:32) [1]

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

const
 caArray1     : TCaArray1 = ...

function  f1  (CompStateArray: TCaArray1 ): boolean;

В таком духе.


 
Frosty ©   (2006-03-23 15:51) [2]

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


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

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); вот и все.


 
Anatoly Podgoretsky ©   (2006-03-23 16:31) [4]

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


 
tesseract ©   (2006-03-24 09:16) [5]

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


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


 
Leonid Troyanovsky ©   (2006-03-24 09:29) [6]


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

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


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

--
Regards, LVT.


 
tesseract ©   (2006-03-24 12:17) [7]


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


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


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

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



Страницы: 1 вся ветка

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
15-1144544890
Бугага
2006-04-09 05:08
2006.04.30
Updates for Windows


2-1144762778
Иван2006
2006-04-11 17:39
2006.04.30
как отловить нажатие клавиши Insert


2-1144738583
STK
2006-04-11 10:56
2006.04.30
"Стирание" введённых данных с эдитов модального окна


9-1127503221
grouzd[E]v
2005-09-23 23:20
2006.04.30
64k intro testing


1-1143211551
Германн
2006-03-24 17:45
2006.04.30
Координаты SubItem в TListView