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

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

Проблема со шрифтом. [D7, XP]


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

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


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


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

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


Anatoly Podgoretsky   (2008-12-01 10:25:00) [2]

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


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

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


KilkennyCat   (2008-11-30 23:52:00) [4]


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

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


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

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

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;


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


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

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


KilkennyCat   (2008-11-30 11:59:00) [7]

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


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

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


KilkennyCat   (2008-11-30 02:51:00) [9]

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


{RASkov}   (2008-11-29 23:04:00) [10]

> TShape

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


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

TShape


{RASkov}   (2008-11-29 22:08:00) [12]

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

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


Наверх

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