- Код: Выделить всё
program noguidemo;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF}
Interfaces, Classes, tachartlazaruspkg { you can add units after this },
FPCanvas, FPImage, FPImgCanv,
TAGraph, TASeries, TADrawerFPCanvas in '../../TADrawerFPCanvas.pas', TADrawerCanvas, TADrawUtils;
var
chart: TChart;
bs: TBarSeries;
img: TFPMemoryImage;
c: TFPImageCanvas;
d: IChartDrawer;
begin
chart := TChart.Create(nil);
chart.Width:=400;
chart.Height:=300;
chart.Title.Text.Add('здесь русский должен быть');
chart.Title.Font.Name:='FreeMono';
chart.Title.Font.Size:=12;
chart.Title.Visible:=true;
chart.LeftAxis.Marks.LabelFont.Name := 'FreeMono';
chart.LeftAxis.Marks.LabelFont.Size := 10;
chart.LeftAxis.Marks.LabelFont.Orientation := 450;
chart.LeftAxis.Marks.Frame.Visible := true;
chart.LeftAxis.Marks.Frame.Style := psSolid;
chart.LeftAxis.Marks.Frame.FPColor := colBlack;
chart.LeftAxis.Grid.FPColor := colDkGray;
chart.BottomAxis.Marks.Visible := false;
chart.BottomAxis.Grid.FPColor := colDkGray;
chart.Color := $FFA0A0;
chart.BackColor := $FFFFFF;
bs := TBarSeries.Create(nil);
chart.AddSeries(bs);
bs.AddXY(1, 10);
bs.AddXY(2, 7);
bs.AddXY(3, 8);
img := TFPMemoryImage.Create(chart.Width, chart.Height);
c := TFPImageCanvas.Create(img);
d := TFPCanvasDrawer.Create(c);
d.DoGetFontOrientation := @CanvasGetFontOrientationFunc;
chart.Draw(d, Rect(0, 0, chart.Width, chart.Height));
img.SaveToFile('test.png');
c.Free;
img.Free;
bs.Free;
chart.Free;
end.
Результат:
Пробовал разные шрифты, но русского языка так и не получил. Может кто знает как?
ЗЫ. Может важно: ОС debian 7.2, TAChart на форме - русский есть.
Добавлено спустя 1 час 42 минуты 38 секунд:
чуть не забыл: fpc 2.6.2, lazarus 1.0.12