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

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

Динамические массивы в параметрах [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);
...


Наверх

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