Ошибка с overload

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ошибка с overload

Сообщение sign » 07.02.2019 11:58:03

Не раз используемая конструкция:

Код: Выделить всё
FBGRA.TextRect(TextR, TextR.Left, TextR.Top, Caption, VParam.TextStyle, VParam.BGRAColorText);

где

Код: Выделить всё
FBGRAColorText   : TBGRAPixel;
...
property BGRAColorText: TBGRAPixel read FBGRAColorText write FBGRAColorText;

Работает нормально везде, кроме последнего проекта.
Там это же, проcто тупо скопипастенное, с теми же (полностью) uses, выдаёт ошибку:

uicons.pas(119,123) Error: Incompatible type for arg no. 6: Got "TBGRAPixel", expected "IBGRAScanner"
bgradefaultbitmap.pas(4079,30) Hint: Found declaration: TextRect(TRect; LongInt; LongInt; AnsiString; TTextStyle; IBGRAScanner);
bgradefaultbitmap.pas(4072,30) Hint: Found declaration: TextRect(TRect; LongInt; LongInt; AnsiString; TTextStyle; TBGRAPixel);

в unit BGRADefaultBitmap:
Код: Выделить всё
    { Draw the UTF8 encoded string at the coordinate (x,y), clipped inside the rectangle ARect.
      Additional style information is provided by the style parameter.
      The color c or texture is used to fill the text. No rotation is applied. }
    procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; c: TBGRAPixel); overload; override;
    procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; texture: IBGRAScanner); overload; override;


Куда копать?
sign
энтузиаст
 
Сообщения: 1072
Зарегистрирован: 30.08.2009 09:20:53

Re: Ошибка с overload

Сообщение serbod » 07.02.2019 12:14:21

FPC из trunk? Наверняка что-то поломали, откатись пока на stable.
Аватара пользователя
serbod
постоялец
 
Сообщения: 400
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: Ошибка с overload

Сообщение zub » 07.02.2019 12:24:38

>>Куда копать
При "необъяснимых" ошибках копают всегда в одну сторону- минимальный пример воспроизведения. По пути проблема обычно решается
zub
долгожитель
 
Сообщения: 2495
Зарегистрирован: 14.11.2005 23:51:26

Re: Ошибка с overload

Сообщение sign » 07.02.2019 13:04:38

Нашёл.

Но почему компилятор не показал на настоящую ошибку?

Ошибка в том, что TextR должно быть TRect, а по факту оказалось ( :shock: ) TRectF.

Увидел, когда подставил вместо TBGRAPixel, IBGRAScanner и стал компилировать.
Вот тут компилятор заругался на тип переменной TextR.

Но вам, zub, спасибо. После вашего замечания я стал проверять на минимальном примере и...
sign
энтузиаст
 
Сообщения: 1072
Зарегистрирован: 30.08.2009 09:20:53

Re: Ошибка с overload

Сообщение Mirage » 08.02.2019 00:37:54

Если компилятор ругался не на то, то это тоже баг и стоит зарепортить.
Mirage
энтузиаст
 
Сообщения: 850
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Ошибка с overload

Сообщение zub » 08.02.2019 00:59:33

да, пишите репорт. только по возможности пример воспроизведения без сторонних зависимостей, иначе могут проигнорить
zub
долгожитель
 
Сообщения: 2495
Зарегистрирован: 14.11.2005 23:51:26

Re: Ошибка с overload

Сообщение sign » 08.02.2019 07:38:24

Отправил на минимальном примере.
sign
энтузиаст
 
Сообщения: 1072
Зарегистрирован: 30.08.2009 09:20:53


Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru