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

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

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

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

Сообщение xterro » 12.04.2019 16:04:25

Доброго времени суток, добавил юнит, обозвал его 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"

Хотя вроде нигде больше не объявлен, если имя интерфейса в файле поменять на другое, то норм. Чего ему надо не пойму, проясните пожалуйста :(
xterro
постоялец
 
Сообщения: 148
Зарегистрирован: 23.02.2014 13:49:33

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

Сообщение Лекс Айрин » 12.04.2019 16:11:25

Имя юнита не должно совпадать с именем переменной или типом. Дело в то,что в компиляторе это потом будет собрано в едином пространстве имен. И, соответственно, компилятор не может понять по контексту что программист имел ввиду. Убери, допустим, в имени типа нижнее подчеркивание или добавь букву Т.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение xterro » 12.04.2019 16:12:41

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


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Alex2013 и гости: 30

Рейтинг@Mail.ru