📄 gdipobj.pas
字号:
lastResult: TStatus;
procedure SetNativeGraphics(graphics: GpGraphics);
function SetStatus(status: TStatus): TStatus;
function GetNativeGraphics: GpGraphics;
function GetNativePen(pen: TGPPen): GpPen;
constructor Create(graphics: GpGraphics); reintroduce; overload;
public
function FromHDC(hdc: HDC): TGPGraphics; overload;
function FromHDC(hdc: HDC; hdevice: THANDLE): TGPGraphics; overload;
function FromHWND(hwnd: HWND; icm: BOOL = FALSE): TGPGraphics;
function FromImage(image: TGPImage): TGPGraphics;
constructor Create(hdc: HDC); reintroduce; overload;
constructor Create(hdc: HDC; hdevice: THANDLE); reintroduce; overload;
constructor Create(hwnd: HWND; icm: BOOL{ = FALSE}); reintroduce; overload;
constructor Create(image: TGPImage); reintroduce; overload;
destructor destroy; override;
procedure Flush(intention: TFlushIntention = FlushIntentionFlush);
//------------------------------------------------------------------------
// GDI Interop methods
//------------------------------------------------------------------------
// Locks the graphics until ReleaseDC is called
function GetHDC: HDC;
procedure ReleaseHDC(hdc: HDC);
//------------------------------------------------------------------------
// Rendering modes
//------------------------------------------------------------------------
function SetRenderingOrigin(x, y: Integer): TStatus;
function GetRenderingOrigin(out x, y: Integer): TStatus;
function SetCompositingMode(compositingMode: TCompositingMode): TStatus;
function GetCompositingMode: TCompositingMode;
function SetCompositingQuality(compositingQuality: TCompositingQuality): TStatus;
function GetCompositingQuality: TCompositingQuality;
function SetTextRenderingHint(newMode: TTextRenderingHint): TStatus;
function GetTextRenderingHint: TTextRenderingHint;
function SetTextContrast(contrast: UINT): TStatus; // 0..12
function GetTextContrast: UINT;
function GetInterpolationMode: TInterpolationMode;
function SetInterpolationMode(interpolationMode: TInterpolationMode): TStatus;
function GetSmoothingMode: TSmoothingMode;
function SetSmoothingMode(smoothingMode: TSmoothingMode): TStatus;
function GetPixelOffsetMode: TPixelOffsetMode;
function SetPixelOffsetMode(pixelOffsetMode: TPixelOffsetMode): TStatus;
//------------------------------------------------------------------------
// Manipulate current world transform
//------------------------------------------------------------------------
function SetTransform(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 GetTransform(matrix: TGPMatrix): TStatus;
function SetPageUnit(unit_: TUnit): TStatus;
function SetPageScale(scale: Single): TStatus;
function GetPageUnit: TUnit;
function GetPageScale: Single;
function GetDpiX: Single;
function GetDpiY: Single;
function TransformPoints(destSpace: TCoordinateSpace; srcSpace: TCoordinateSpace;
pts: PGPPointF; count: Integer): TStatus; overload;
function TransformPoints(destSpace: TCoordinateSpace; srcSpace: TCoordinateSpace;
pts: PGPPoint; count: Integer): TStatus; overload;
//------------------------------------------------------------------------
// GetNearestColor (for <= 8bpp surfaces). Note: Alpha is ignored.
//------------------------------------------------------------------------
function GetNearestColor(var color: TGPColor): TStatus;
// DrawLine(s)
function DrawLine(pen: TGPPen; x1, y1, x2, y2: Single): TStatus; overload;
function DrawLine(pen: TGPPen; const pt1, pt2: TGPPointF): TStatus; overload;
function DrawLines(pen: TGPPen; points: PGPPointF; count: Integer): TStatus; overload;
function DrawLine(pen: TGPPen; x1, y1, x2, y2: Integer): TStatus; overload;
function DrawLine(pen: TGPPen; const pt1, pt2: TGPPoint): TStatus; overload;
function DrawLines(pen: TGPPen; points: PGPPoint; count: Integer): TStatus; overload;
// DrawArc
function DrawArc(pen: TGPPen; x, y, width, height, startAngle, sweepAngle: Single): TStatus; overload;
function DrawArc(pen: TGPPen; const rect: TGPRectF; startAngle, sweepAngle: Single): TStatus; overload;
function DrawArc(pen: TGPPen; x, y, width, height: Integer; startAngle, sweepAngle: Single): TStatus; overload;
function DrawArc(pen: TGPPen; const rect: TGPRect; startAngle, sweepAngle: Single): TStatus; overload;
// DrawBezier(s)
function DrawBezier(pen: TGPPen; x1, y1, x2, y2, x3, y3, x4, y4: Single): TStatus; overload;
function DrawBezier(pen: TGPPen; const pt1, pt2, pt3, pt4: TGPPointF): TStatus; overload;
function DrawBeziers(pen: TGPPen; points: PGPPointF; count: Integer): TStatus; overload;
function DrawBezier(pen: TGPPen; x1, y1, x2, y2, x3, y3, x4, y4: Integer): TStatus; overload;
function DrawBezier(pen: TGPPen; const pt1, pt2, pt3, pt4: TGPPoint): TStatus; overload;
function DrawBeziers(pen: TGPPen; points: PGPPoint; count: Integer): TStatus; overload;
// DrawRectangle(s)
function DrawRectangle(pen: TGPPen; const rect: TGPRectF): TStatus; overload;
function DrawRectangle(pen: TGPPen; x, y, width, height: Single): TStatus; overload;
function DrawRectangles(pen: TGPPen; rects: PGPRectF; count: Integer): TStatus; overload;
function DrawRectangle(pen: TGPPen; const rect: TGPRect): TStatus; overload;
function DrawRectangle(pen: TGPPen; x, y, width, height: Integer): TStatus; overload;
function DrawRectangles(pen: TGPPen; rects: PGPRect; count: Integer): TStatus; overload;
// DrawEllipse
function DrawEllipse(pen: TGPPen; const rect: TGPRectF): TStatus; overload;
function DrawEllipse(pen: TGPPen; x, y, width, height: Single): TStatus; overload;
function DrawEllipse(pen: TGPPen; const rect: TGPRect): TStatus; overload;
function DrawEllipse(pen: TGPPen; x, y, width, height: Integer): TStatus; overload;
// DrawPie
function DrawPie(pen: TGPPen; const rect: TGPRectF; startAngle, sweepAngle: Single): TStatus; overload;
function DrawPie(pen: TGPPen; x, y, width, height, startAngle, sweepAngle: Single): TStatus; overload;
function DrawPie(pen: TGPPen; const rect: TGPRect; startAngle, sweepAngle: Single): TStatus; overload;
function DrawPie(pen: TGPPen; x, y, width, height: Integer; startAngle, sweepAngle: Single): TStatus; overload;
// DrawPolygon
function DrawPolygon(pen: TGPPen; points: PGPPointF; count: Integer): TStatus; overload;
function DrawPolygon(pen: TGPPen; points: PGPPoint; count: Integer): TStatus; overload;
// DrawPath
function DrawPath(pen: TGPPen; path: TGPGraphicsPath): TStatus;
// DrawCurve
function DrawCurve(pen: TGPPen; points: PGPPointF; count: Integer): TStatus; overload;
function DrawCurve(pen: TGPPen; points: PGPPointF; count: Integer; tension: Single): TStatus; overload;
function DrawCurve(pen: TGPPen; points: PGPPointF; count, offset,
numberOfSegments: Integer; tension: Single = 0.5): TStatus; overload;
function DrawCurve(pen: TGPPen; points: PGPPoint; count: Integer): TStatus; overload;
function DrawCurve(pen: TGPPen; points: PGPPoint; count: Integer; tension: Single): TStatus; overload;
function DrawCurve(pen: TGPPen; points: PGPPoint; count, offset, numberOfSegments: Integer;
tension: Single = 0.5): TStatus; overload;
// DrawClosedCurve
function DrawClosedCurve(pen: TGPPen; points: PGPPointF; count: Integer): TStatus; overload;
function DrawClosedCurve(pen: TGPPen; points: PGPPointF; count: Integer; tension: Single): TStatus; overload;
function DrawClosedCurve(pen: TGPPen; points: PGPPoint; count: Integer): TStatus; overload;
function DrawClosedCurve(pen: TGPPen; points: PGPPoint; count: Integer; tension: Single): TStatus; overload;
// Clear
function Clear(color: TGPColor): TStatus;
// FillRectangle(s)
function FillRectangle(brush: TGPBrush; const rect: TGPRectF): TStatus; overload;
function FillRectangle(brush: TGPBrush; x, y, width, height: Single): TStatus; overload;
function FillRectangles(brush: TGPBrush; rects: PGPRectF; count: Integer): TStatus; overload;
function FillRectangle(brush: TGPBrush; const rect: TGPRect): TStatus; overload;
function FillRectangle(brush: TGPBrush; x, y, width, height: Integer): TStatus; overload;
function FillRectangles(brush: TGPBrush; rects: PGPRect; count: Integer): TStatus; overload;
// FillPolygon
function FillPolygon(brush: TGPBrush; points: PGPPointF; count: Integer): TStatus; overload;
function FillPolygon(brush: TGPBrush; points: PGPPointF; count: Integer; fillMode: TFillMode): TStatus; overload;
function FillPolygon(brush: TGPBrush; points: PGPPoint; count: Integer): TStatus; overload;
function FillPolygon(brush: TGPBrush; points: PGPPoint; count: Integer; fillMode: TFillMode): TStatus; overload;
// FillEllipse
function FillEllipse(brush: TGPBrush; const rect: TGPRectF): TStatus; overload;
function FillEllipse(brush: TGPBrush; x, y, width, height: Single): TStatus; overload;
function FillEllipse(brush: TGPBrush; const rect: TGPRect): TStatus; overload;
function FillEllipse(brush: TGPBrush; x, y, width, height: Integer): TStatus; overload;
// FillPie
function FillPie(brush: TGPBrush; const rect: TGPRectF; startAngle, sweepAngle: Single): TStatus; overload;
function FillPie(brush: TGPBrush; x, y, width, height, startAngle, sweepAngle: Single): TStatus; overload;
function FillPie(brush: TGPBrush; const rect: TGPRect; startAngle, sweepAngle: Single): TStatus; overload;
function FillPie(brush: TGPBrush; x, y, width, height: Integer; startAngle, sweepAngle: Single): TStatus; overload;
// FillPath
function FillPath(brush: TGPBrush; path: TGPGraphicsPath): TStatus;
// FillClosedCurve
function FillClosedCurve(brush: TGPBrush; points: PGPPointF; count: Integer): TStatus; overload;
function FillClosedCurve(brush: TGPBrush; points: PGPPointF; count: Integer;
fillMode: TFillMode; tension: Single = 0.5 ): TStatus; overload;
function FillClosedCurve(brush: TGPBrush; points: PGPPoint; count: Integer): TStatus; overload;
function FillClosedCurve(brush: TGPBrush; points: PGPPoint; count: Integer;
fillMode: TFillMode; tension: Single = 0.5): TStatus; overload;
// FillRegion
function FillRegion(brush: TGPBrush; region: TGPRegion): TStatus;
// DrawString
function DrawString(string_: WideString; length: Integer; font: TGPFont;
const layoutRect: TGPRectF; stringFormat: TGPStringFormat; brush: TGPBrush): TStatus; overload;
function DrawString(string_: WideString; length: Integer; font: TGPFont;
const origin: TGPPointF; brush: TGPBrush): TStatus; overload;
function DrawString(string_: WideString; length: Integer; font: TGPFont;
const origin: TGPPointF; stringFormat: TGPStringFormat; brush: TGPBrush): TStatus; overload;
// MeasureString
function MeasureString(string_: WideString; length: Integer; font: TGPFont;
const layoutRect: TGPRectF; stringFormat: TGPStringFormat; out boundingBox: TGPRectF;
codepointsFitted: PInteger = nil; linesFilled: PInteger = nil): TStatus; overload;
function MeasureString(string_: WideString; length: Integer; font: TGPFont;
const layoutRectSize: TGPSizeF; stringFormat: TGPStringFormat; out size: TGPSizeF;
codepointsFitted: PInteger = nil; linesFilled: PInteger = nil): TStatus; overload;
function MeasureString(string_: WideString ; length: Integer; font: TGPFont;
const origin: TGPPointF; stringFormat: TGPStringFormat;
out boundingBox: TGPRectF): TStatus; overload;
function MeasureString(string_: WideString; length: Integer; font: TGPFont;
const layoutRect: TGPRectF; out boundingBox: TGPRectF): TStatus; overload;
function MeasureString(string_: WideString; length: Integer; font: TGPFont;
const origin: TGPPointF; out boundingBox: TGPRectF): TStatus; overload;
// MeasureCharacterRanges
function MeasureCharacterRanges(string_: WideString; length: Integer; font: TGPFont;
const layoutRect: TGPRectF; stringFormat: TGPStringFormat; regionCount: Integer;
const regions: array of TGPRegion): TStatus; overload;
// DrawDriverString
function DrawDriverString(text: PUINT16; length: Integer; font: TGPFont;
brush: TGPBrush; positions: PGPPointF; flags: Integer; matrix: TGPMatrix): TStatus;
// MeasureDriverString
function MeasureDriverString(text: PUINT16; length: Integer; font: TGPFont;
positions: PGPPointF; flags: Integer; matrix: TGPMatrix;
out boundingBox: TGPRectF): TStatus;
// Draw a cached bitmap on this graphics destination offset by
// x, y. Note this will fail with WrongState if the CachedBitmap
// native format differs from this Graphics.
function DrawCachedBitmap(cb: TGPCachedBitmap; x, y: Integer): TStatus;
function DrawImage(image: TGPImage; const point: TGPPointF): TStatus; overload;
function DrawImage(image: TGPImage; x, y: Single): TStatus; overload;
function DrawImage(image: TGPImage; const rect: TGPRectF): TStatus; overload;
function DrawImage(image: TGPImage; x, y, width, height: Single): TStatus; overload;
function DrawImage(image: TGPImage; const point: TGPPoint): TStatus; overload;
function DrawImage(image: TGPImage; x, y: Integer): TStatus; overload;
function DrawImage(image: TGPImage; const rect: TGPRect): TStatus; overload;
function DrawImage(image: TGPImage; x, y, width, height: Integer): TStatus; overload;
// Affine Draw Image
// destPoints.length = 3: rect => parallelogram
// destPoints[0] <=> top-left corner of the source rectangle
// destPoints[1] <=> top-right corner
// destPoints[2] <=> bottom-left corner
// destPoints.length = 4: rect => quad
// destPoints[3] <=> bottom-right corner
function DrawImage(image: TGPImage; destPoints: PGPPointF; count: Integer): TStatus; overload;
function DrawImage(image: TGPImage; destPoints: PGPPoint; count: Integer): TStatus; overload;
function DrawImage(image: TGPImage; x, y, srcx, srcy, srcwidth, srcheight: Single; srcUnit: TUnit): TStatus; overload;
function DrawImage(image: TGPImage; const destRect: TGPRectF; srcx, srcy,
srcwidth, srcheight: Single; srcUnit: TUnit;
imageAttributes: TGPImageAttrib
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -