Примеры Delphi и C# из жизни

Примеры программирования на языках Delphi, C#

 




Вывод обведенного (outlined) и заполненного (filled) текста с помощью GDI+ | Delphi

Задача: необходимо вывести обведенный (контурный) текст и заполнить его цветом.

Для решения данной задачи используется т.н. графический путь с его последующей обводкой и/или заполнением.
Ниже приведен код, который достаточно прокомментирован.

procedure TForm1.FormPaint(Sender: TObject);
var
 g: TGPGraphics;
 path: TGPGraphicsPath;
 pen: TGPPen;
 brush: TGPSolidBrush;
 font_family: TGPFontFamily;
 string_format: TGPStringFormat;
 text: WideString;
begin
 g := TGPGraphics.Create(Canvas.Handle);

 path := TGPGraphicsPath.Create(); // создаем графический путь
 pen := TGPPen.Create(aclRoyalBlue, 2); // определяем обтравочную линию шириной 2
 brush := TGPSolidBrush.Create(aclAqua); // определяем кисть для заполнения контура текста
 font_family := TGPFontFamily.Create('Arial'); // определяем шрифт
 string_format := TGPStringFormat.Create(); // формат отрисовки

 text := 'Йа креветко !';
 // добавляем к пути текст:
 // шрифт Arial, жирное начертание, размером 50, рисовать начинаем в позиции x:0, y:10
 // также можем задать формат отображения текста. К примеру для вертикальной отрисовки:
 // string_format := TGPStringFormat.Create(StringFormatFlagsDirectionVertical);
 path.AddString(text, -1, font_family, FontStyleBold, 50, MakePoint(0, 10), string_format);

 // заполняем контур
 g.FillPath(brush, path);
 // рисуем контур
 g.DrawPath(pen, path);

 string_format.Free;
 font_family.Free;
 pen.Free;
 path.Free;
 g.Free;
end;



контурный outlined и заполненный filled текст