
07.09.2012, 10:25
|
 |
Профессионал
|
|
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
|
|
Цитата:
Сообщение от Stal12
Есть массивы константы:
WaitModem:array[0..1]of string=('Нет','Есть');
SyncTx:=array[0..2]of string=('Отсутствует','Внутренняя','Внешняя');
И т.п.
Как передать в подпрограмму такой массив, если у них различная длина?
Подпрограмма должна делать примерно следующее:
возвращает строку по нужному индексу:
Result:=NameArray[n]; //например - Внутренняя
Решение с открытыми массивами работает, но овчинка выделки не стоит.
Надо каждый раз задавать длину массива, инициализировать и т.п.
В итоге, куча "лишнего" текста... По длине получается, выгоднее иметь кучу специализированных подпрограмм.
|
Зачем каждый раз задавать длину массива и что-то там инициализировать?:
Код:
const
WaitModem:array[0..1]of string=('Нет','Есть');
function Func(A: array of String; Index: Integer): String;
begin
Result:=A[Index];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Func(WaitModem, 1));
end;
|