![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема со шрифтом. [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 есть справка ....как обычно)