Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 713

/ вопрос решён /

Здравствуйте, уважаемые эксперты!

rect(x1,y1,x2,y2);не работает
Classes в Uses указано
при наводе мыши на rect пишет: var unit1.rect:boolean unit1.pas(152)
Как это исправить?

Дмитрий С. - 1148 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Дмитрий С. - 1148 (статус: Посетитель)
Вопрос отправлен: 8 июля 2007, 20:50
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Градов Ю.М.

Здравствуйте, Дмитрий С.!
Вы используете rect(x1,y1,x2,y2);

Необходимо:
.....
var
Dest, Sour: TRect; // Источник и приемник
begin
//В Вашем случае Sour:=rect(x1,y1,x2,y2);
Sour := Rect(xold, yold, xold + ImageMask.Width, yold + ImageMask.Height);
with Image1.Canvas do
begin
CopyMode := cmSrcCopy;
CopyRect(Sour, ImageBackground.Canvas, Sour);
end;
......

Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 8 июля 2007, 21:49
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, Дмитрий С.!
Судя с текста ошибки, у вас в unit1 обявленна переменная rect:boolean; Делфи не телепат и не может разобрать где что надо. поэтому она использует простое правило - если есть две переменные (и/или функции) с однаковым именем, то она берёт ту, которая обявленна в последнем юните в списке uses.
Итак. В вашем случае нужно
Вариант 1) переименовать переменную rect.
Вариант 2) дать делфи понять, что вам в определённом месте нужна именно функция rect, для этого перед её именем нужно дописать имя модуля, тоесть где то так classes.rect(параметры)

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 июля 2007, 01:06
Оценка за ответ: 5

Комментарий к оценке: Я действительно назвал так переменную!Спасибо,в следующий раз буду внимательнее

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 8 июля 2007, 23:51; участников в обсуждении: 2.
Градов Ю.М.

Градов Ю.М. (статус: 8-ой класс), 8 июля 2007, 21:56 [#1]:

Uses
Types
Дмитрий С. - 1148

Дмитрий С. - 1148 (статус: Посетитель), 8 июля 2007, 23:51 [#2]:

Чегото не работает
Sour := Rect(xold, yold, xold + ImageMask.Width, yold + ImageMask.Height);вот тут опять ошибка.
с uses Types тоже.

У меня тут исходник проги одной,там вот чего:
image3.Picture.Bitmap.Canvas.CopyRect(rect(0,0,image3.Width,image3.Height),Image2.Picture.Bitmap.Canvas,rect(0,0,image3.Width,image3.Height));
И все работает.

31 января 2011, 19:27: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:02
Выполнено за 0.03 сек.