Lazarus、Codetyphon、Delphiの修正されたIgdiplusライブラリ。
Delphiの無料およびオープンソースライブラリ。これにより、自然なPascalに優しいコードで、複雑なGDI+アプリケーションの迅速かつ簡単な実装が可能になります。
著者:Boian Mitov
ホームページ:http://mitov.com/products/igdi+#overview
http://mitov.com/products/igdi+#license
このソフトウェアには、明示的または黙示的な保証なしで「AS-IS」が提供されます。いかなる場合でも、著者はこのソフトウェアの使用から生じる損害について責任を負いません。
商用アプリケーションを含むあらゆる目的のためにこのソフトウェアを使用し、それを変更して自由に再配布する許可が許可されます。
このソフトウェアの起源を誤って伝えてはなりません。元のソフトウェアを書いたと主張してはなりません。このソフトウェアを製品で使用する場合、製品ドキュメントの謝辞が高く評価されますが、必要ありません。
変更されたソースバージョンは、そのように明白にマークされている必要があり、元のソフトウェアであると誤って伝えてはなりません。
この通知は、ソース分布から削除または変更することはできません。
費用も制限なしで、必要なものを何でも私のコードで行うことができます。
IGDIPlusHelpers.pas 、 IGDIPlusAPI_FPC.inc 、 IGDIPlusAPI_DCC.inc 。LazarusでコンパイルされたオリジナルのIgdiplusデモアプリケーション。

追加のデモ - カラーホイール

デモ1主な手順。
procedure TForm1.FormPaint (Sender: TObject);
var
AGraphics : IGPGraphics;
AFont : IGPFont;
ALeftTopCorner : TPointF;
ARect : TIGPRectF;
ARect1 : TIGPRectF;
APath : IGPGraphicsPath;
begin
AGraphics := TIGPGraphics.Create( Canvas );
AGraphics.SmoothingMode := SmoothingModeAntiAlias;
AGraphics.TextRenderingHint := TextRenderingHintAntiAlias;
ALeftTopCorner := TPointF.Create( 20 , 20 );
AFont := TIGPFont.Create( ' Microsoft Sans Serif ' , 40 , [ fsBold ] );
ARect := AGraphics.GetStringBoundingBoxF( ' Welcome to IGDI+ ' , AFont, ALeftTopCorner );
ARect1 := GPInflateRectF( ARect, 10 , 10 );
// Draw a fancy rounded rectangle.
AGraphics.DrawRoundRectangleF(
TIGPPen.Create( TIGPLinearGradientBrush.Create( GPInflateRectF( ARect1, 2 , 2 ), aclRed, aclBlue, LinearGradientModeVertical ), 4 ),
TIGPPathGradientBrush.Create(
TIGPGraphicsPath.Create().AddRoundRectangleF( ARect1, TIGPSizeF.Create( 20 , 20 ) )
)
.SetInterpolationColorArrays( [ aclGreen, aclCyan, aclYellow ], [ 0 , 0.3 , 1 ] )
.SetCenterPointF( TPointF.Create( 250 , 50 ))
.SetFocusScales( 0.87 , 0.2 ),
ARect1, TIGPSizeF.Create( 20 , 20 ) );
// Draw a text with semitransparent shadow.
AGraphics.DrawStringF( ' Welcome to IGDI+ ' ,
AFont,
TPointF.Create( 23 , 23 ),
TIGPSolidBrush.Create( MakeARGBColor( 50 , aclBlack )) )
.DrawStringF( ' Welcome to IGDI+ ' ,
AFont,
ALeftTopCorner,
TIGPLinearGradientBrush.Create( ARect, aclRed, aclBlue, LinearGradientModeForwardDiagonal ));
// Draw a closed curve.
AGraphics.DrawClosedCurveF( TIGPPen.Create( aclRed, 3 ), TIGPSolidBrush.Create( aclBlue ),
[
TPointF.Create( 60 , 160 ),
TPointF.Create( 150 , 180 ),
TPointF.Create( 200 , 140 ),
TPointF.Create( 180 , 220 ),
TPointF.Create( 120 , 200 ),
TPointF.Create( 80 , 260 )
] );
// Draw a semitransparent star.
APath := TIGPGraphicsPath.Create();
APath.AddLinesF(
[
TPointF.Create( 75 , 0 ),
TPointF.Create( 100 , 50 ),
TPointF.Create( 150 , 50 ),
TPointF.Create( 112 , 75 ),
TPointF.Create( 150 , 150 ),
TPointF.Create( 75 , 100 ),
TPointF.Create( 0 , 150 ),
TPointF.Create( 37 , 75 ),
TPointF.Create( 0 , 50 ),
TPointF.Create( 50 , 50 )
] );
AGraphics.TranslateTransform( 420 , 30 )
.FillPath(
TIGPPathGradientBrush.Create( APath )
.SetCenterColor( MakeColor( 200 , 255 , 0 , 0 ))
.SetSurroundColors(
[
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 ),
MakeColor( 80 , 0 , 0 , 255 ),
MakeColor( 80 , 255 , 255 , 255 ),
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 ),
MakeColor( 80 , 0 , 0 , 255 ),
MakeColor( 80 , 255 , 255 , 255 ),
MakeColor( 80 , 0 , 0 , 0 ),
MakeColor( 80 , 0 , 255 , 0 )
] ),
APath );
// Draw rotated ellipse.
AGraphics.ResetTransform()
.TranslateTransform( 300 , 160 )
.RotateTransform( 30 )
.DrawEllipseF(
TIGPPen.Create( aclRed, 3 ),
TIGPLinearGradientBrush.Create( TPointF.Create( 0 , 0 ), TPointF.Create( 20 , 20 ), aclYellow, aclGreen )
.SetWrapMode( WrapModeTileFlipX ),
0 , 0 , 200 , 80 );
end ;パッケージディレクトリには、Delphi XE2-10.3 Rioのパッケージがあります。適切なパッケージ(DPKファイル)をインストールしてから、IDEオプションで、 IGDIPlus.pasファイルでライブラリパスディレクトリに追加します。
2つのオプションがあります。
packagesLazaruslazigdiplus.lpkパッケージを構築してインストールします。LazIGDIPlus追加します。IGDIPlus.pasファイルをコンパイラオプションに追加してディレクトリを追加します - >パス- >その他のユニットファイル。 Lazarusの場合と同様に、インストールパッケージのあるファイルのみがpackagesCodeTyphonlazigdiplus.ctpkgです。
23.01.2020
Delphi XE2およびXE3サポート。
Delphi XE2-10.3 Rioのパッケージを追加しました。
XE2のメインデモ、XE2およびXE7のカラーホイールデモを追加しました。
IgDiplushelpers:ハッチスタイル変換に関連するいくつかのヘルパールーチン。
19.01.2020
LazarusとCodeTyphonのパッケージを追加しました。
15.01.2020
無料のPascalサポートによる最初のリリース。