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

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

Как скопировать массив в массив? [D6]


ArhAngel2 ©   (2002-08-15 21:48:00) 

Создаю свой класс:
(Класс)=class
....
arr1: array of word;
....
public
....
procedure add;
....
end;
procedure (Класс)Add;
var
...
arr2: array of word;
begin
...
arr2:=arr1;
....
end;


Delphi говорит: Incompatible types Почему так
Заранее благодарен.


ArhAngel2   (2002-08-16 09:26:00) [1]

Спасибо, теперь буду знать.


Геннадий   (2002-08-15 22:44:00) [2]

Дело в том, что если несколько переменных объявлены в разных строчках кода, то они считаются разными по типу. То есть:
var
A : array of word;
B : array of word; // Разные типы (хотя структура одна)

и

var
A, B : array of word; // один и тот же тип

не одно и то же!

Если структура одинакова, то вообще-то можно делать приведение типов. Но удобнее делать так, как подсказал AlexSV ©. Объявить тип, а затем использовать его имя при объявлении переменных, тогда они считаются одного и того же типа.


AlexSV   (2002-08-15 22:07:00) [3]

Сперва объяви тип:

type
WordArray: array of word;

а потом:

(Класс)=class
....
arr1: WordArray;
....
public
....
procedure add;
....
end;
procedure (Класс)Add;
var
...
arr2: WordArray;
begin
...
arr2:=arr1;
....
end;


Наверх

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