Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2014, 12:01   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию Заливка региона в Lazarus

Имеется два прямоугольника - маленький внутри большого. Как залить большой прямоугольник, не зацепив маленький?
у винды есть функции CombineRgn / FillRgn. А в лазалусе есть только класс TRegion и я не понимаю, как с ним работать. Гуглил - не осилил.
BLACK_RAIN вне форума Ответить с цитированием
Старый 07.12.2014, 15:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
  with Canvas do begin
   Brush.Style:=bsClear;
   Pen.Color:=clRed;
   Rectangle(10,10,200,200);
   Rectangle(50,40,100,80);
   Brush.Color:=clGreen;
   FloodFill(11,11,Pen.Color,fsBorder);
  end;
Не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2014, 12:41   #3
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Это понятно, но в таком случае большой рект заливается полностью и на нем рисуется маленький. Это приводит к мерцанию картинки при ее перемещении и ресайзе формы.
Нужно как-то скомбинировать два региона и залить область вокруг маленького ректа.
BLACK_RAIN вне форума Ответить с цитированием
Старый 08.12.2014, 14:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Это приводит к мерцанию картинки
А для этого делается двойная буфферизация. Рисуется на невидимой канве, которая потом отображается скопом на форме.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Перемещение региона мышью. kira_truelove Win Api 3 29.11.2012 09:51
Перекомпиляция программы(простой) Win Lazarus в Linux Lazarus Toxifer Фриланс 0 27.11.2012 22:46
выбор региона 6666 JavaScript, Ajax 3 02.02.2012 22:57
изменение размера региона adugent Win Api 0 19.12.2011 16:54
Создание и использование региона памяти. Maksim_27_10 Win Api 2 01.08.2010 23:42