📄 gdipobj.pas
字号:
function GetElements(const m: TMatrixArray): TStatus;
function SetElements(m11, m12, m21, m22, dx, dy: Single): TStatus;
function OffsetX: Single;
function OffsetY: Single;
function Reset: TStatus;
function Multiply(matrix: TGPMatrix; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function Translate(offsetX, offsetY: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function Scale(scaleX, scaleY: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function Rotate(angle: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function RotateAt(angle: Single; const center: TGPPointF; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function Shear(shearX, shearY: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus; // ok
function Invert: TStatus; // ok
function TransformPoints(pts: PGPPointF; count: Integer = 1): TStatus; overload;
function TransformPoints(pts: PGPPoint; count: Integer = 1): TStatus; overload;
function TransformVectors(pts: PGPPointF; count: Integer = 1): TStatus; overload;
function TransformVectors(pts: PGPPoint; count: Integer = 1): TStatus; overload;
function IsInvertible: BOOL;
function IsIdentity: BOOL;
function Equals(matrix: TGPMatrix): BOOL;
function GetLastStatus: TStatus;
end;
(**************************************************************************\
*
* GDI+ Brush class
*
\**************************************************************************)
//--------------------------------------------------------------------------
// Abstract base class for various brush types
//--------------------------------------------------------------------------
TGPBrush = class(TGdiplusBase)
protected
nativeBrush: GpBrush;
lastResult: TStatus;
procedure SetNativeBrush(nativeBrush: GpBrush);
function SetStatus(status: TStatus): TStatus;
constructor Create(nativeBrush: GpBrush; status: TStatus); overload;
public
constructor Create; overload;
destructor Destroy; override;
function Clone: TGPBrush; virtual;
function GetType: TBrushType;
function GetLastStatus: TStatus;
end;
//--------------------------------------------------------------------------
// Solid Fill Brush Object
//--------------------------------------------------------------------------
TGPSolidBrush = class(TGPBrush)
public
constructor Create(color: TGPColor); reintroduce; overload;
constructor Create; reintroduce; overload;
function GetColor(out color: TGPColor): TStatus;
function SetColor(color: TGPColor): TStatus;
end;
//--------------------------------------------------------------------------
// Texture Brush Fill Object
//--------------------------------------------------------------------------
TGPTextureBrush = class(TGPBrush)
public
constructor Create(image: TGPImage; wrapMode: TWrapMode = WrapModeTile); reintroduce; overload;
constructor Create(image: TGPImage; wrapMode: TWrapMode; dstRect: TGPRectF); reintroduce; overload;
constructor Create(image: TGPImage; dstRect: TGPRectF; imageAttributes: TGPImageAttributes = nil); reintroduce; overload;
constructor Create(image: TGPImage; dstRect: TGPRect; imageAttributes: TGPImageAttributes = nil); reintroduce; overload;
constructor Create(image: TGPImage; wrapMode: TWrapMode; dstRect: TGPRect); reintroduce; overload;
constructor Create(image: TGPImage; wrapMode: TWrapMode; dstX, dstY, dstWidth,
dstHeight: Single); reintroduce; overload;
constructor Create(image: TGPImage; wrapMode: TWrapMode; dstX, dstY, dstWidth,
dstHeight: Integer); reintroduce; overload;
constructor Create; reintroduce; overload;
function SetTransform(matrix: TGPMatrix): TStatus;
function GetTransform(matrix: TGPMatrix): TStatus;
function ResetTransform: TStatus;
function MultiplyTransform(matrix: TGPMatrix; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function TranslateTransform(dx, dy: Single; order: MatrixOrder = MatrixOrderPrepend): TStatus;
function ScaleTransform(sx, sy: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function RotateTransform(angle: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function SetWrapMode(wrapMode: TWrapMode): TStatus;
function GetWrapMode: TWrapMode;
function GetImage: TGPImage;
end;
//--------------------------------------------------------------------------
// Linear Gradient Brush Object
//--------------------------------------------------------------------------
TGPLinearGradientBrush = class(TGPBrush)
public
constructor Create; reintroduce; overload;
constructor Create(const point1, point2: TGPPointF; color1,
color2: TGPColor); reintroduce; overload;
constructor Create(const point1, point2: TGPPoint; color1,
color2: TGPColor); reintroduce; overload;
constructor Create(rect: TGPRectF; color1, color2: TGPColor;
mode: TLinearGradientMode); reintroduce; overload;
constructor Create(rect: TGPRect; color1, color2: TGPColor;
mode: TLinearGradientMode); reintroduce; overload;
constructor Create(rect: TGPRectF; color1, color2: TGPColor; angle: Single;
isAngleScalable: BOOL = FALSE); overload;
constructor Create(rect: TGPRect; color1, color2: TGPColor; angle: Single;
isAngleScalable: BOOL = FALSE); overload;
function SetLinearColors(color1, color2: TGPColor): TStatus;
function GetLinearColors(out color1, color2: TGPColor): TStatus;
function GetRectangle(out rect: TGPRectF): TStatus; overload;
function GetRectangle(out rect: TGPRect): TStatus; overload;
function SetGammaCorrection(useGammaCorrection: BOOL): TStatus;
function GetGammaCorrection: BOOL;
function GetBlendCount: Integer;
function SetBlend(blendFactors, blendPositions: PSingle; count: Integer): TStatus;
function GetBlend(blendFactors, blendPositions: PSingle; count: Integer): TStatus;
function GetInterpolationColorCount: Integer;
function SetInterpolationColors(presetColors: PGPColor; blendPositions: PSingle; count: Integer): TStatus;
function GetInterpolationColors(presetColors: PGPColor; blendPositions: PSingle; count: Integer): TStatus;
function SetBlendBellShape(focus: Single; scale: Single = 1.0): TStatus;
function SetBlendTriangularShape(focus: Single; scale: Single = 1.0): TStatus;
function SetTransform(matrix: TGPMatrix): TStatus;
function GetTransform(matrix: TGPMatrix): TStatus;
function ResetTransform: TStatus;
function MultiplyTransform(matrix: TGPMatrix; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function TranslateTransform(dx, dy: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function ScaleTransform(sx, sy: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function RotateTransform(angle: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function SetWrapMode(wrapMode: TWrapMode): TStatus;
function GetWrapMode: TWrapMode;
end;
//--------------------------------------------------------------------------
// Hatch Brush Object
//--------------------------------------------------------------------------
TGPHatchBrush = class(TGPBrush)
public
constructor Create; reintroduce; overload;
constructor Create(hatchStyle: THatchStyle; foreColor: TGPColor; backColor: TGPColor = aclBlack); reintroduce; overload; // ok
function GetHatchStyle: THatchStyle;
function GetForegroundColor(out color: TGPColor): TStatus;
function GetBackgroundColor(out color: TGPColor): TStatus;
end;
(**************************************************************************\
*
* GDI+ Pen class
*
\**************************************************************************)
//--------------------------------------------------------------------------
// Pen class
//--------------------------------------------------------------------------
TGPPen = class(TGdiplusBase)
protected
nativePen: GpPen;
lastResult: TStatus;
procedure SetNativePen(nativePen: GpPen);
function SetStatus(status: TStatus): TStatus;
constructor Create(nativePen: GpPen; status: TStatus); reintroduce; overload;
public
constructor Create(color: TGPColor; width: Single = 1.0); reintroduce; overload;
constructor Create(brush: TGPBrush; width: Single = 1.0); reintroduce; overload;
destructor Destroy; override;
function Clone: TGPPen;
function SetWidth(width: Single): TStatus;
function GetWidth: Single;
// Set/get line caps: start, end, and dash
// Line cap and join APIs by using LineCap and LineJoin enums.
function SetLineCap(startCap, endCap: TLineCap; dashCap: TDashCap): TStatus;
function SetStartCap(startCap: TLineCap): TStatus;
function SetEndCap(endCap: TLineCap): TStatus;
function SetDashCap(dashCap: TDashCap): TStatus;
function GetStartCap: TLineCap;
function GetEndCap: TLineCap;
function GetDashCap: TDashCap;
function SetLineJoin(lineJoin: TLineJoin): TStatus;
function GetLineJoin: TLineJoin;
function SetCustomStartCap(customCap: TGPCustomLineCap): TStatus;
function GetCustomStartCap(customCap: TGPCustomLineCap): TStatus;
function SetCustomEndCap(customCap: TGPCustomLineCap): TStatus;
function GetCustomEndCap(customCap: TGPCustomLineCap): TStatus;
function SetMiterLimit(miterLimit: Single): TStatus;
function GetMiterLimit: Single;
function SetAlignment(penAlignment: TPenAlignment): TStatus;
function GetAlignment: TPenAlignment;
function SetTransform(matrix: TGPMatrix): TStatus;
function GetTransform(matrix: TGPMatrix): TStatus;
function ResetTransform: TStatus;
function MultiplyTransform(matrix: TGPMatrix; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function TranslateTransform(dx, dy: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function ScaleTransform(sx, sy: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function RotateTransform(angle: Single; order: TMatrixOrder = MatrixOrderPrepend): TStatus;
function GetPenType: TPenType;
function SetColor(color: TGPColor): TStatus;
function SetBrush(brush: TGPBrush): TStatus;
function GetColor(out Color: TGPColor): TStatus;
function GetBrush: TGPBrush;
function GetDashStyle: TDashStyle;
function SetDashStyle(dashStyle: TDashStyle): TStatus;
function GetDashOffset: Single;
function SetDashOffset(dashOffset: Single): TStatus;
function SetDashPattern(dashArray: PSingle; count: Integer): TStatus;
function GetDashPatternCount: Integer;
function GetDashPattern(dashArray: PSingle; count: Integer): TStatus;
function SetCompoundArray(compoundArray: PSingle; count: Integer): TStatus;
function GetCompoundArrayCount: Integer;
function GetCompoundArray(compoundArray: PSingle; count: Integer): TStatus;
function GetLastStatus: TStatus;
end;
(**************************************************************************\
*
* GDI+ StringFormat class
*
\**************************************************************************)
TGPStringFormat = class(TGdiplusBase)
protected
nativeFormat: GpStringFormat;
lastError: TStatus;
function SetStatus(newStatus: GpStatus): TStatus;
procedure Assign(source: TGPStringFormat);
constructor Create(clonedStringFormat: GpStringFormat; status: TStatus); reintroduce; overload;
public
constructor Create(formatFlags: Integer = 0; language: LANGID = LANG_NEUTRAL); reintroduce; overload;
constructor Create(format: TGPStringFormat); reintroduce; overload;
destructor Destroy; override;
class function GenericDefault: TGPStringFormat;
class function GenericTypographic: TGPStringFormat;
function Clone: TGPStringFormat;
function SetFormatFlags(flags: Integer): TStatus;
function GetFormatFlags: Integer;
function SetAlignment(align: TStringAlignment): TStatus;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -