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

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

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

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

Сообщение CynicRus » 28.06.2012 14:37:47

Приветствую уважаемых форумчан. Есть следующий код:
Код: Выделить всё
  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"
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

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

Сообщение zub » 28.06.2012 15:02:04

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

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

Сообщение CynicRus » 28.06.2012 15:36:25

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

Добавлено спустя 4 минуты 6 секунд:
Я бы его с радостью выкинул, однако - там очень крутые завязки на WInApi, так что хоть попробовать совместить как-то - необходимость.
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

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

Сообщение zub » 28.06.2012 15:55:21

а так проглатывает?:
Код: Выделить всё
Bitmap.Canvas.stretchdraw(classes.Rect(0, 0, Self.Width, Self.Height), ExtBitmap)
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение CynicRus » 28.06.2012 16:02:00

Проглотило, спасибо! А я с какого-то перепугу подставлял Graphics-))))
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

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

Сообщение zub » 28.06.2012 16:51:08

гдето сидит другой Rect который перебивает Сlasses.Rect
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 224

Рейтинг@Mail.ru