Ошибка с overload

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

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

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

Ошибка с overload

Сообщение sign »

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

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

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;


Куда копать?
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Re: Ошибка с overload

Сообщение serbod »

FPC из trunk? Наверняка что-то поломали, откатись пока на stable.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Re: Ошибка с overload

Сообщение zub »

>>Куда копать
При "необъяснимых" ошибках копают всегда в одну сторону- минимальный пример воспроизведения. По пути проблема обычно решается
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Ошибка с overload

Сообщение sign »

Нашёл.

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

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

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

Но вам, zub, спасибо. После вашего замечания я стал проверять на минимальном примере и...
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Re: Ошибка с overload

Сообщение Mirage »

Если компилятор ругался не на то, то это тоже баг и стоит зарепортить.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Re: Ошибка с overload

Сообщение zub »

да, пишите репорт. только по возможности пример воспроизведения без сторонних зависимостей, иначе могут проигнорить
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Ошибка с overload

Сообщение sign »

Отправил на минимальном примере.
Ответить