Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

Проблема со шрифтом.   Найти похожие ветки 

 
Андрей (Начинающий)   (2008-11-29 19:10) [0]

Есть шрифт TTF. В нем есть символ в виде фигуры. Как мне вывести его на DrawGrid заполненный своим цветом, а не только контур? Для примера
:
символ в виде контура звезды, как этот контур заполнить красным цветом?


 
{RASkov} ©   (2008-11-29 22:08) [1]

> [0] Андрей (Начинающий)   (29.11.08 19:10)

Как вариант искать каким либо образом внутренюю часть уже нарисованного на канве символа и использовать "инструмент" канвы FloodFill...
по FloodFill есть справка ....как обычно)


 
KilkennyCat ©   (2008-11-29 22:28) [2]

TShape


 
{RASkov} ©   (2008-11-29 23:04) [3]

> TShape

Не, там звезда нужна, тогда лучше Poligon использовать)


 
KilkennyCat ©   (2008-11-30 02:51) [4]

Мой TShape звезды рисует.


 
Андрей (начинающий)   (2008-11-30 10:49) [5]

Звезду я привел для примера. В шрифте много фигур, какие я хочу использовать, поэтому просто рисование меня не устраивает :) Надо организовать каким-либо образом заполнение цветом внутренней части.


 
KilkennyCat ©   (2008-11-30 11:59) [6]

Тогда используй первый ответ.


 
Андрей (Начинающий)   (2008-11-30 21:27) [7]


>  искать каким либо образом внутренюю часть уже нарисованного
> на канве символа

Каким образом узнать цвет обрамления нарисованного на канве символа? Свойство Pixels выдает цвет установленного Brush.Color канвы под символом.


 
Андрей (Начинающий)   (2008-11-30 21:57) [8]

подскажите, плиз, где у меня ошибка:

procedure TfrmProba.DrawGrid1DrawCell ....
var ...
begin
 with Sender as TDrawGrid, Canvas do begin
   canvas.Font.Name:="имя шрифта";
   font.Height:=Rect.Bottom-Rect.Top-10;
   Brush.Color := clGray;
// ...
   FillRect(CellRect(ACol,ARow));
// ...
   if ... then
     vfigure:="назначение символа шрифта";
   
   TextOut(Rect.Left + (Rect.Right - Rect.Left - TextWidth(vfigure)) div 2,
               Rect.Top + (Rect.Bottom - Rect.Top - TextHeight(vfigure)) div 2,
               vfigure);

     if vfigure="..." then begin  // попытка заполнения символа цветом
         Brush.Color:=clWhite;
         FloodFill(Rect.Right-Rect.Left+6,
                     Rect.Bottom-Rect.Top+6,
                     clBlack, fsBorder);
     end; // ***if vfigure="..." then
//...
 end; // ***with Sender as TDrawGrid, Canvas do
end;


 
KilkennyCat ©   (2008-11-30 23:52) [9]


> Каким образом узнать цвет обрамления нарисованного на канве
> символа?

Никаким.
Этот цвет известен до рисования.
Font.color


 
Андрей (Начинающий)   (2008-12-01 10:10) [10]

Я правильно понял: текст, написанный на канве не принадлежит ей и узнать расположение символа невозможно?


 
Anatoly Podgoretsky ©   (2008-12-01 10:25) [11]

На канве нет символов, только точки.


 
KilkennyCat ©   (2008-12-01 11:07) [12]


> Андрей (Начинающий)

Неправильно.
Все, что на канве - принадлежит ей, это не фотошоп со слоями.
Расположение символа известно ДО его написания.



Страницы: 1 вся ветка

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-1205380631
snake-as
2008-03-13 06:57
2009.01.11
Посылка письма


9-1176815377
ElectriC
2007-04-17 17:09
2009.01.11
Прозрачность CD3DFont текста


1-1205408707
Xmen
2008-03-13 14:45
2009.01.11
правильное закрытие документа Excel


15-1226484126
тимохов
2008-11-12 13:02
2009.01.11
Посоветуйте по Apache


15-1226589788
@!!ex
2008-11-13 18:23
2009.01.11
Вышел Red Alert 3.