powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Функция по Windows.RectVisible странно ведет себя
6 сообщений из 6, страница 1 из 1
Функция по Windows.RectVisible странно ведет себя
    #39626366
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

функция Windows.RectVisible - процедура, показывает, пересекается ли подсовываемый ей в параметрах Rect с... с кем? с canvas.cliprect? Если так, то почему-то частенько дает утвердительный ответ на два не пересекающиеся региона. Про отрицательный ответ на пересекающиеся - такого не замечал. С кем она сравнивает? Сижу, пошагово разглядываю функцию Paint стандартного грида, и наткнулся на такое вот безобразие.

Спасибо.
...
Рейтинг: 0 / 0
Функция по Windows.RectVisible странно ведет себя
    #39626390
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Функция по Windows.RectVisible странно ведет себя
    #39626392
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.Borzov,
Еще учти, что при двойной буферизации реальный ClipRect игнорируется.
...
Рейтинг: 0 / 0
Функция по Windows.RectVisible странно ведет себя
    #39626840
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd162908(v=vs.85).aspx
Получается тогда, описание функции в Дельфи и ее использование так

if (Where.Right > Where.Left) and RectVisible(Canvas.Handle, Where) then
begin

не соответствует ее правильному описанию? Возвращаться может много значений. И что там вернулось в результате (пример взят из модуля grids), еще не известно. Ну, то есть, доверять коду в таком виде нельзя, получается....

Соколинский БорисЕще учти, что при двойной буферизации реальный ClipRect игнорируется.
То есть вся прорисовка происходит каждый раз заново? но ClipRect все равно определен, даже если DoubleBuffered. Проверить пошагово только трудно, ибо на экране не увидишь результатов.
...
Рейтинг: 0 / 0
Функция по Windows.RectVisible странно ведет себя
    #39626852
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V.BorzovТо есть вся прорисовка происходит каждый раз заново?Вся вписанная в экран часть окна.

V.Borzov но ClipRect все равно определен, даже если DoubleBuffered. Он тупо соответствует всему см. выше.
Для пошаговой проверки есть специальное средство, называется "лог".
...
Рейтинг: 0 / 0
Функция по Windows.RectVisible странно ведет себя
    #39626891
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисДля пошаговой проверки есть специальное средство, называется "лог".
Лог, это как? Хочу посмотреть, как грид прорисовывает содержимое своих ячеек, пошагово. при DoubleBuffered = false это легко рассматривать, например.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Функция по Windows.RectVisible странно ведет себя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]