Странная фигня с TRect и функцией Rect

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

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

Ответить
salog
новенький
Сообщения: 15
Зарегистрирован: 19.11.2008 04:35:07

Странная фигня с TRect и функцией Rect

Сообщение salog »

Вот этот код:

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

procedure TGPanel.Paint;
var r: TRect;
begin
 r := rect(0,0,10,10);
end;       


порождает вот такую ошибку: formmain.pas(260,7) Error: Incompatible types: got "RECT" expected "TRect"

Кто нибудь сталкивался? Видимо какя то кривая настройка компилятора?
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

Похоже, что Rect переопределена в каком то модуле. Посмотрите на какой модуль она ссылается, должна быть из Classes. Попробуйте прописать этот модуль в списке uses первым.
salog
новенький
Сообщения: 15
Зарегистрирован: 19.11.2008 04:35:07

Сообщение salog »

Притом в Delphi 7 этот код компилируется прекрасно.

Вообще RECT это тип объявленный в модуле struct.ins. Но я его не включал в uses.

Еще скажу: делаю такой финт:

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

r := TRect(rect(0,0,10,10));
- срабатывает!

Далее вызываю!!!:

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

Canvas.CopyRect(r,sourceCanvas,r);


Компилятор опять ругается на третий параметр: Expected RECT got TRect.

Притом в исходниках этот TRect и функция Rect используется массово без всякиз обходных путей.

Что то видимо все таки с найстройкой компилятора... Почему то вызов функции он понимает как тип :-(.
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

Какой у Вас Lazarus?
У меня это компилируется без проблем. Покажите целиком код, где проявляется проблема.
salog
новенький
Сообщения: 15
Зарегистрирован: 19.11.2008 04:35:07

Сообщение salog »

Хы... шайтан.

Взял uses из некого исходного файла самого Lazarus:

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

  Classes, SysUtils, LResources,LMessages,Messages,
  Forms, Controls, Graphics, Dialogs,
  ExtCtrls, Buttons, StdCtrls,Menus,comctrls;


И все получилось... Шайтан!

Добавлено спустя 1 минуту 21 секунду:
Притом, к сожалению не сохранил предыдущий uses. Так бы хоть было бы понятно где я напакостил.
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

salog писал(а):Притом, к сожалению не сохранил предыдущий uses. Так бы хоть было бы понятно где я напакостил.

Да, очень интересно было узнать, с чем конфликтовало, а то мне что-то сразу и в голову не приходит, где еще Rect есть.
Ответить