📄 gdipobj.pas
字号:
function GetAlignment: TStringAlignment;
function SetLineAlignment(align: TStringAlignment): TStatus;
function GetLineAlignment: TStringAlignment;
function SetHotkeyPrefix(hotkeyPrefix: THotkeyPrefix): TStatus;
function GetHotkeyPrefix: THotkeyPrefix;
function SetTabStops(firstTabOffset: Single; count: Integer; tabStops: PSingle): TStatus;
function GetTabStopCount: Integer;
function GetTabStops(count: Integer; firstTabOffset, tabStops: PSingle): TStatus;
function SetDigitSubstitution(language: LANGID; substitute: TStringDigitSubstitute): TStatus;
function GetDigitSubstitutionLanguage: LANGID;
function GetDigitSubstitutionMethod: TStringDigitSubstitute;
function SetTrimming(trimming: TStringTrimming): TStatus;
function GetTrimming: TStringTrimming;
function SetMeasurableCharacterRanges(rangeCount: Integer; ranges: PCharacterRange): TStatus;
function GetMeasurableCharacterRangeCount: Integer;
function GetLastStatus: TStatus;
end;
(**************************************************************************\
*
* GDI+ Graphics Path class
*
\**************************************************************************)
TGPGraphicsPath = class(TGdiplusBase)
protected
nativePath: GpPath;
lastResult: TStatus;
procedure SetNativePath(nativePath: GpPath);
function SetStatus(status: TStatus): TStatus;
constructor Create(nativePath: GpPath); reintroduce; overload;
public
constructor Create(path: TGPGraphicsPath); reintroduce; overload;
constructor Create(fillMode: TFillMode = FillModeAlternate); reintroduce; overload;
constructor Create(points: PGPPointF; types: PBYTE; count: Integer;
fillMode: TFillMode = FillModeAlternate); reintroduce; overload;
constructor Create(points: PGPPoint; types: PBYTE; count: Integer;
fillMode: TFillMode = FillModeAlternate); reintroduce; overload;
destructor destroy; override;
function Clone: TGPGraphicsPath;
// Reset the path object to empty (and fill mode to FillModeAlternate)
function Reset: TStatus;
function GetFillMode: TFillMode;
function SetFillMode(fillmode: TFillMode): TStatus;
function GetPathData(pathData: TPathData): TStatus;
function StartFigure: TStatus;
function CloseFigure: TStatus;
function CloseAllFigures: TStatus;
function SetMarker: TStatus;
function ClearMarkers: TStatus;
function Reverse: TStatus;
function GetLastPoint(out lastPoint: TGPPointF): TStatus;
function AddLine(const pt1, pt2: TGPPointF): TStatus; overload;
function AddLine(x1, y1, x2, y2: Single): TStatus; overload;
function AddLines(points: PGPPointF; count: Integer): TStatus; overload;
function AddLine(const pt1, pt2: TGPPoint): TStatus; overload;
function AddLine(x1, y1, x2, y2: Integer): TStatus; overload;
function AddLines(points: PGPPoint; count: Integer): TStatus; overload;
function AddArc(rect: TGPRectF; startAngle, sweepAngle: Single): TStatus; overload;
function AddArc(x, y, width, height, startAngle, sweepAngle: Single): TStatus; overload;
function AddArc(rect: TGPRect; startAngle, sweepAngle: Single): TStatus; overload;
function AddArc(x, y, width, height: Integer; startAngle, sweepAngle: Single): TStatus; overload;
function AddBezier(pt1, pt2, pt3, pt4: TGPPointF): TStatus; overload;
function AddBezier(x1, y1, x2, y2, x3, y3, x4, y4: Single): TStatus; overload;
function AddBeziers(points: PGPPointF; count: Integer): TStatus; overload;
function AddBezier(pt1, pt2, pt3, pt4: TGPPoint): TStatus; overload;
function AddBezier(x1, y1, x2, y2, x3, y3, x4, y4: Integer): TStatus; overload;
function AddBeziers(points: PGPPoint; count: Integer): TStatus; overload;
function AddCurve(points: PGPPointF; count: Integer): TStatus; overload;
function AddCurve(points: PGPPointF; count: Integer; tension: Single): TStatus; overload;
function AddCurve(points: PGPPointF; count, offset, numberOfSegments: Integer; tension: Single): TStatus; overload;
function AddCurve(points: PGPPoint; count: Integer): TStatus; overload;
function AddCurve(points: PGPPoint; count: Integer; tension: Single): TStatus; overload;
function AddCurve(points: PGPPoint; count, offset, numberOfSegments: Integer; tension: Single): TStatus; overload;
function AddClosedCurve(points: PGPPointF; count: Integer): TStatus; overload;
function AddClosedCurve(points: PGPPointF; count: Integer; tension: Single): TStatus; overload;
function AddClosedCurve(points: PGPPoint; count: Integer): TStatus; overload;
function AddClosedCurve(points: PGPPoint; count: Integer; tension: Single): TStatus; overload;
function AddRectangle(rect: TGPRectF): TStatus; overload;
function AddRectangles(rects: PGPRectF; count: Integer): TStatus; overload;
function AddRectangle(rect: TGPRect): TStatus; overload;
function AddRectangles(rects: PGPRect; count: Integer): TStatus; overload;
function AddEllipse(rect: TGPRectF): TStatus; overload;
function AddEllipse(x, y, width, height: Single): TStatus; overload;
function AddEllipse(rect: TGPRect): TStatus; overload;
function AddEllipse(x, y, width, height: Integer): TStatus; overload;
function AddPie(rect: TGPRectF; startAngle, sweepAngle: Single): TStatus; overload;
function AddPie(x, y, width, height, startAngle, sweepAngle: Single): TStatus; overload;
function AddPie(rect: TGPRect; startAngle, sweepAngle: Single): TStatus; overload;
function AddPie(x, y, width, height: Integer; startAngle, sweepAngle: Single): TStatus; overload;
function AddPolygon(points: PGPPointF; count: Integer): TStatus; overload;
function AddPolygon(points: PGPPoint; count: Integer): TStatus; overload;
function AddPath(addingPath: TGPGraphicsPath; connect: Bool): TStatus;
function AddString(string_: WideString; length: Integer; family : TGPFontFamily;
style : Integer; emSize : Single; origin : TGPPointF; format : TGPStringFormat): TStatus; overload;
function AddString(string_: WideString; length : Integer; family : TGPFontFamily;
style : Integer; emSize : Single; layoutRect: TGPRectF; format : TGPStringFormat): TStatus; overload;
function AddString(string_: WideString; length : Integer; family : TGPFontFamily;
style : Integer; emSize : Single; origin : TGPPoint; format : TGPStringFormat): TStatus; overload;
function AddString(string_: WideString; length : Integer; family : TGPFontFamily;
style : Integer; emSize : Single; layoutRect: TGPRect; format : TGPStringFormat): TStatus; overload;
function Transform(matrix: TGPMatrix): TStatus;
// This is not always the tightest bounds.
function GetBounds(out bounds: TGPRectF; matrix: TGPMatrix = nil; pen: TGPPen = nil): TStatus; overload;
function GetBounds(out bounds: TGPRect; matrix: TGPMatrix = nil; pen: TGPPen = nil): TStatus; overload;
// Once flattened, the resultant path is made of line segments and
// the original path information is lost. When matrix is NULL the
// identity matrix is assumed.
function Flatten(matrix: TGPMatrix = nil; flatness: Single = FlatnessDefault): TStatus;
function Widen(pen: TGPPen; matrix: TGPMatrix = nil; flatness: Single = FlatnessDefault): TStatus;
function Outline(matrix: TGPMatrix = nil; flatness: Single = FlatnessDefault): TStatus;
// Once this is called, the resultant path is made of line segments and
// the original path information is lost. When matrix is NULL, the
// identity matrix is assumed.
function Warp(destPoints: PGPPointF; count: Integer; srcRect: TGPRectF;
matrix: TGPMatrix = nil; warpMode: TWarpMode = WarpModePerspective;
flatness: Single = FlatnessDefault): TStatus;
function GetPointCount: Integer;
function GetPathTypes(types: PBYTE; count: Integer): TStatus;
function GetPathPoints(points: PGPPointF; count: Integer): TStatus; overload;
function GetPathPoints(points: PGPPoint; count: Integer): TStatus; overload;
function GetLastStatus: TStatus;
function IsVisible(point: TGPPointF; g: TGPGraphics = nil): BOOL; overload;
function IsVisible(x, y: Single; g: TGPGraphics = nil): BOOL; overload;
function IsVisible(point: TGPPoint; g : TGPGraphics = nil): BOOL; overload;
function IsVisible(x, y: Integer; g: TGPGraphics = nil): BOOL; overload;
function IsOutlineVisible(point: TGPPointF; pen: TGPPen; g: TGPGraphics = nil): BOOL; overload;
function IsOutlineVisible(x, y: Single; pen: TGPPen; g: TGPGraphics = nil): BOOL; overload;
function IsOutlineVisible(point: TGPPoint; pen: TGPPen; g: TGPGraphics = nil): BOOL; overload;
function IsOutlineVisible(x, y: Integer; pen: TGPPen; g: TGPGraphics = nil): BOOL; overload;
end;
//--------------------------------------------------------------------------
// GraphisPathIterator class
//--------------------------------------------------------------------------
TGPGraphicsPathIterator = class(TGdiplusBase)
protected
nativeIterator: GpPathIterator;
lastResult : TStatus;
procedure SetNativeIterator(nativeIterator: GpPathIterator);
function SetStatus(status: TStatus): TStatus;
public
constructor Create(path: TGPGraphicsPath); reintroduce;
destructor Destroy; override;
function NextSubpath(out startIndex, endIndex: Integer; out isClosed: bool): Integer; overload;
function NextSubpath(path: TGPGraphicsPath; out isClosed: BOOL): Integer; overload;
function NextPathType(out pathType: TPathPointType; out startIndex, endIndex: Integer): Integer;
function NextMarker(out startIndex, endIndex: Integer): Integer; overload;
function NextMarker(path: TGPGraphicsPath): Integer; overload;
function GetCount: Integer;
function GetSubpathCount: Integer;
function HasCurve: BOOL;
procedure Rewind;
function Enumerate(points: PGPPointF; types: PBYTE; count: Integer): Integer;
function CopyData(points: PGPPointF; types: PBYTE; startIndex, endIndex: Integer): Integer;
function GetLastStatus: TStatus;
end;
//--------------------------------------------------------------------------
// Path Gradient Brush
//--------------------------------------------------------------------------
TGPPathGradientBrush = class(TGPBrush)
public
constructor Create(points: PGPPointF; count: Integer;
wrapMode: TWrapMode = WrapModeClamp); reintroduce; overload;
constructor Create(points: PGPPoint; count: Integer;
wrapMode: TWrapMode = WrapModeClamp); reintroduce; overload;
constructor Create(path: TGPGraphicsPath); reintroduce; overload;
constructor Create; reintroduce; overload;
function GetCenterColor(out Color: TGPColor): TStatus;
function SetCenterColor(color: TGPColor): TStatus;
function GetPointCount: Integer;
function GetSurroundColorCount: Integer;
function GetSurroundColors(colors: PARGB; var count: Integer): TStatus;
function SetSurroundColors(colors: PARGB; var count: Integer): TStatus;
function GetGraphicsPath(path: TGPGraphicsPath): TStatus;
function SetGraphicsPath(path: TGPGraphicsPath): TStatus;
function GetCenterPoint(out point: TGPPointF): TStatus; overload;
function GetCenterPoint(out point: TGPPoint): TStatus; overload;
function SetCenterPoint(point: TGPPointF): TStatus; overload;
function SetCenterPoint(point: TGPPoint): TStatus; overload;
function GetRectangle(out rect: TGPRectF): TStatus; overload;
function GetRectangle(out rect: TGPRect): TStatus; overload;
function SetGammaCorrection(useGammaCorrection: BOOL): TStatus; overload;
function GetGammaCorrection: BOOL; overload;
function GetBlendCount: Integer;
function GetBlend(blendFactors, blendPositions: PSingle; count: Integer): TStatus;
function SetBlend(blendFactors, blendPositions: PSingle; count: Integer): TStatus;
function GetInterpolationColorCount: Integer;
function SetInterpolationColors(presetColors: PARGB; blendPositions: PSingle;
count: Integer): TStatus;
function GetInterpolationColors(presetColors: PARGB;
blendPositions: PSingle; count: Integer): TStatus;
function SetBlendBellShape(focus: Single; scale: Single = 1.0): TStatus;
function SetBlendTriangularShape(focus: Single; scale: Single = 1.0): TStatus;
function GetTransform(matrix: TGPMatrix): TStatus;
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 GetFocusScales(out xScale, yScale: Single): TStatus;
function SetFocusScales(xScale, yScale: Single): TStatus;
function GetWrapMode: TWrapMode;
function SetWrapMode(wrapMode: TWrapMode): TStatus;
end;
(**************************************************************************\
*
* GDI+ Graphics Object
*
\**************************************************************************)
TGPGraphics = class(TGdiplusBase)
protected
nativeGraphics: GpGraphics;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -