![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамические массивы в параметрах [D6]
FA © (2006-04-08 20:23:00)Почему в качестве параметров функции, нельзя передавать динамические массивы, элементы которых типа Char?
FA (2006-04-08 22:18:00) [1]
> F1
> Open array parameters
Читал, все-равно не понимаю почему Байту можно, а Чару нельзя..
Никто не объяснит?
Anatoly Podgoretsky (2006-04-08 22:18:00) [2]FA (08.04.06 21:23) [2]
Потому что это уже не динамический массив, а открытый.
Мефисто (2006-04-08 22:07:00) [3]F1
Open array parameters
FA (2006-04-08 21:54:00) [4]
> Мефисто (08.04.06 21:36) [4]
Вы не ответили на мой вопрос.
FA (2006-04-08 21:53:00) [5]
procedure Test(a : array of Char);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a : array of Char;
begin
Test(a); // error: incompatible types: array and dynamic array?
end;
Изменить на Byte – работает.
Мефисто (2006-04-08 21:36:00) [6]procedure xx(A: Array of Char);
begin
....
end;
....
xx(['s','b']);
Rial (2006-04-08 21:24:00) [7]Странно, но у меня, вопреки логике, вполне прекрасно работает следующее:
function Test(PC: Array of Char):Boolean;
begin
end;
> FA (08.04.06 20:23)
Приведи пример, мне интересно, что у тебя таки не работает ?..
FA (2006-04-08 21:23:00) [8]Так работает, это понятно. Но почему если не объявлять тип, а писать array стразу в параметрах, то ошибка: incompatible types: array and dynamic array?
С другими типами ошибка не возникает.
Мефисто (2006-04-08 21:11:00) [9]type
AF = array of char;
procedure Test(A: AF);
...