Имя интерфейса и имя файла должны совапдать?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
xterro
постоялец
Сообщения: 148
Зарегистрирован: 23.02.2014 13:49:33

Имя интерфейса и имя файла должны совапдать?

Сообщение xterro »

Доброго времени суток, добавил юнит, обозвал его TR_ColorInterface.pas прописал в нём заготовку интерефейса

Код: Выделить всё

unit TR_ColorInterface;
{$mode objfpc}{$H+}
interface
uses
    Classes, SysUtils;
type
    TR_ColorInterface = interface
        function Red() : byte;
    end;
implementation
end.


и файл назвал тем же именем что и интерефейс, при компиляции ругается
TR_ColorInterface.pas(11,25) Error: Duplicate identifier "TR_ColorInterface"

Хотя вроде нигде больше не объявлен, если имя интерфейса в файле поменять на другое, то норм. Чего ему надо не пойму, проясните пожалуйста :(
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Имя юнита не должно совпадать с именем переменной или типом. Дело в то,что в компиляторе это потом будет собрано в едином пространстве имен. И, соответственно, компилятор не может понять по контексту что программист имел ввиду. Убери, допустим, в имени типа нижнее подчеркивание или добавь букву Т.
xterro
постоялец
Сообщения: 148
Зарегистрирован: 23.02.2014 13:49:33

Сообщение xterro »

Спасибо, теперь понятно 8)
Ответить