Ошибка в синтаксисе, или глюк компилятора?

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

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

Ответить
CynicRus
постоялец
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Ошибка в синтаксисе, или глюк компилятора?

Сообщение CynicRus »

Приветствую уважаемых форумчан. Есть следующий код:

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

  ExtBitmap := Bitmaps.GetBitmap(i);
          if fStretch then
             Bitmap.Canvas.stretchdraw(Rect(0, 0, Self.Width, Self.Height), ExtBitmap)
          else
            try
              with Bitmap.Canvas do begin
              Brush.Color := ExtBitmap.Canvas.Pixels[0, 0];
              Brush.Style := bsSolid;
              FillRect(TRect(Rect(0, 0, Bitmap.Width, Bitmap.Height)));
              draw(0, 0, ExtBitmap);
             end;
           except
            Bitmap.Canvas.stretchdraw(Rect(0, 0, Self.Width, Self.Height), ExtBitmap);
           end;

На строке

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

Bitmap.Canvas.stretchdraw(Rect(0, 0, Self.Width, Self.Height), ExtBitmap)
после if fStretch then - при попытке сборки компилятор истошно ругается:

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

aviwritter.pas(551,50) Fatal: Syntax error, ")" expected but "," found
Какая там синтаксическая ошибка? Я уже раз нцать наверное все доки к функциям пересмотрел, и чето ошибки в упор не вижу. Заранее благодарен за помощь.
PS: LAzarus 9.30.4 , Win 7 Pro.

Добавлено спустя 17 минут 2 секунды:
PPS: Ну а поменяв местами в Uses Graphics и windows, поставив первым - Graphics - заимел кучу ошибок плана aviwritter.pas(442,25) Error: Incompatible types: got "TBitmap" expected "BITMAP"
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>aviwritter.pas(551,50) Fatal: Syntax error, ")" expected but "," found
а как определена stretchdraw?
>>aviwritter.pas(442,25) Error: Incompatible types: got "TBitmap" expected "BITMAP"
видимо в этих юнитах имеются одноименные функции (или типы) с разными параметрами. uses windows вообще лучше выкинуть, не стоит мешать лцлные и апишные функции работы с графикой
CynicRus
постоялец
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Сообщение CynicRus »

stretchdraw опеределена как - procedure StretchDraw(const DestRect: TRect; SrcGraphic: TGraphic); virtual;

Добавлено спустя 4 минуты 6 секунд:
Я бы его с радостью выкинул, однако - там очень крутые завязки на WInApi, так что хоть попробовать совместить как-то - необходимость.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

а так проглатывает?:

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

Bitmap.Canvas.stretchdraw(classes.Rect(0, 0, Self.Width, Self.Height), ExtBitmap)
CynicRus
постоялец
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Сообщение CynicRus »

Проглотило, спасибо! А я с какого-то перепугу подставлял Graphics-))))
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

гдето сидит другой Rect который перебивает Сlasses.Rect
Ответить