Выпустил в свет первую версию GDI+ TCanvas.
На гит не стал выкладывать, т.к. в коде комментариев хоть и много, но исключительно на русском. Так много, что при мысли о переводе сразу очень хочется кушать и немедленно образуется множество неотложных дел.
А по правилам хорошего тона, должно быть на английском.
Является наследником TCanvas, имеет все те же свойства и методы, но умеет рисовать, используя возможности GDI+.
На каждое свойство, есть дубль, заточенный под GDI+. Свойство Pen имеет дубль IPPen, Brush – IPBrash, Font — IPFont. Свойства дублей синхронизированы. Глупо упускать возможности GDI+, поэтому IP-свойства, помимо стандартных, обладают намного большим кругом возможностей.
Режим антиалиаса включается вызовом SetAntiAlias, отключение ResetAntiAlias.
Режим GDI/GDI+ можно переключать «на ходу», внутри одного программного блока, используя свойство UseStandartGDI. Если «красоты» не нужны, то лучше использовать стандартный GDI.
Следующие методы в зависимости от состояния флага UseStandartGDI, будут работать либо стандартным для TCanvas образом, либо используя GDI+.
procedure MoveTo(X, Y: Integer); procedure LineTo(X, Y: Integer); procedure Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer); procedure Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer); procedure Rectangle(X1, Y1, X2, Y2: Integer); procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer); procedure FillRect(const Rect: TRect); procedure Ellipse(X1, Y1, X2, Y2: Integer); procedure Polygon(const Points: array of TPoint); procedure StretchDraw(const Rect: TRect; Graphic: TGraphic); procedure TextRect(var Rect: TRect; var Text: string; TextFormat: TTextFormat = []); procedure TextOut (x,y : Integer; const Text : string);
Документации пока не написал, поэтому лучше смотреть примеры и исходники, которые просто перегружены комментариями.
Обновления не за горами.
При написании активно использовал книгу Д. Осипов — Графика в проектах Delphi. В коде есть немало комментариев, текст которых беззастенчиво выдран из нее.