Главная страница
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.013 c
2-1228066081
Pavel
2008-11-30 20:28
2009.01.11
Как из пути извлечь имя последнего каталога?


15-1226583210
codemaster
2008-11-13 16:33
2009.01.11
Проигрыватель


11-1196634700
Koss (345-824-826)
2007-12-03 01:31
2009.01.11
Lazarus for WinCe как востоновить окно ???


15-1226277137
Abcdef123
2008-11-10 03:32
2009.01.11
Верно ли это?


2-1227864512
Golden
2008-11-28 12:28
2009.01.11
Позиция в таблице