Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заштриховать область [D2005, XP]


Евгений Р. ©   (2007-09-18 19:43:00) 

Существует ли процедура заштриховки области у tCanvas?


Однокамушкин   (2007-09-20 09:30:00) [1]


> Евгений Р.   (19.09.07 23:54) [10]
> Можно ли как-то поменять шаг (расстояние м-ду линиями) при
> заливке.
> По возможности, не используя Canvas.Brush.Bitmap.


Можно с помощью SelectClipRgn выбрать решион отсечения, а потом ручками нарисовать в прямоугольной или ещё какой области, целиком содержащей этот регион, линии с нужным шагом, наклоном, толщиной и стилем... Все части этих линий, которые не попадут в регион отсечения, не будут нарисованы, и в итоге вы получите свою фигуру, заштрихованную так, как вам нужно... Можно даже не линиями, а, например, разноцветными шариками или ещё как... Метод относительно трудоёмкий, но очень гибкий...


Германн   (2007-09-20 00:27:00) [2]


> Евгений Р.   (19.09.07 23:54) [10]
>
>
> > Германн ©   (19.09.07 02:59) [7]
>
>
> Не знаю, что к чему относится, но работает.
>

Да я и не сомневался. Совет то был по сути своей верный.


Инс   (2007-09-20 00:23:00) [3]


> [12] Евгений Р.   (20.09.07 00:20)

Да.


Евгений Р.   (2007-09-20 00:20:00) [4]

Если использовать Canvas.Brush.Bitmap., то Canvas.Brush.Style игнорируется?


Инс   (2007-09-19 23:57:00) [5]


> Можно ли как-то поменять шаг (расстояние м-ду линиями) при
> заливке.
> По возможности, не используя Canvas.Brush.Bitmap.

Либо использовать GDI+, либо все-таки Canvas.Brush.Bitmap :) Ограничение размера, о котором говорится в справке, по-моему только на Win9x


Евгений Р.   (2007-09-19 23:54:00) [6]


> Германн ©   (19.09.07 02:59) [7]


Не знаю, что к чему относится, но работает.
Спасибо Инс, познал регион, т.к. область не прямоугольная.

Использую FillRgn, аналогично FillRect(10,10,100,100).


Можно ли как-то поменять шаг (расстояние м-ду линиями) при заливке.
По возможности, не используя Canvas.Brush.Bitmap.


Инс   (2007-09-19 10:29:00) [7]


> Германн ©   (19.09.07 02:49) [6]

Почему же... У TCanvas хэндл есть, вроде как, какие проблемы. Ну и что что нет метода соответствующего. А вот уточнить что за область имеет в виду автор действительно стоило бы.


Ega23   (2007-09-19 09:18:00) [8]

TBrushStyle type  + F1

var
bs : TBrushStyle;
begin
 with Canvas do
  begin
    bs := Brush.Style;
    Brush.Style :=  bsDiagCross;
    FillRect(10,10,100,100);
    Brush.Style := bs;
  end;
end;


Как-то так... Писал прямо здесь, не проверял.


Германн   (2007-09-19 02:59:00) [9]

Пардон. И меня "старость лет" и "столь поздний час" подвели :)

> к компоненту TCanvas

нужно было написАть к классу TCanvas :(


Германн   (2007-09-19 02:49:00) [10]


> Инс © (18.09.07 20:03) [2]

Имхо, стоило бы уточнить, что к компоненту TCanvas сия процедура не относится. Как и две последующие.
Вопрос-то в "Начинающие".


Юрий Зотов   (2007-09-19 00:57:00) [11]

Brush.Style?


Евгений Р.   (2007-09-18 20:18:00) [12]


> Ручками, ручками...

Этот способ мне известен


> FillRgn

Спасибо, попробую разобраться


Инс   (2007-09-18 20:16:00) [13]

А еще FillPath и StrokeAndFillPath


Инс   (2007-09-18 20:03:00) [14]

FillRgn


Denis_   (2007-09-18 19:49:00) [15]

Ручками, ручками...


Наверх

Титульная страница Поиск, карта сайта Написать письмо