📄 gdipapi.pas
字号:
{******************************************************************}
{ GDI+ API }
{ }
{ home page : http://www.progdigy.com }
{ email : hgourvest@progdigy.com }
{ }
{ date : 15-02-2002 }
{ }
{ The contents of this file are used with permission, subject to }
{ the Mozilla Public License Version 1.1 (the "License"); you may }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
{ implied. See the License for the specific language governing }
{ rights and limitations under the License. }
{ }
{ *****************************************************************}
unit GDIPAPI;
{$ALIGN ON}
{$MINENUMSIZE 4}
interface
(**************************************************************************\
*
* GDI+ public header file
*
\**************************************************************************)
uses
Windows,
ActiveX,
DirectDraw,
Math;
type
INT16 = type Smallint;
UINT16 = type Word;
PUINT16 = ^UINT16;
UINT32 = type Cardinal;
TSingleDynArray = array of Single;
(**************************************************************************\
*
* GDI+ Private Memory Management APIs
*
\**************************************************************************)
const WINGDIPDLL = 'gdiplus.dll';
//----------------------------------------------------------------------------
// Memory Allocation APIs
//----------------------------------------------------------------------------
{$EXTERNALSYM GdipAlloc}
function GdipAlloc(size: ULONG): pointer; stdcall;
{$EXTERNALSYM GdipFree}
procedure GdipFree(ptr: pointer); stdcall;
(**************************************************************************\
*
* GDI+ base memory allocation class
*
\**************************************************************************)
type
TGdiplusBase = class
public
class function NewInstance: TObject; override;
procedure FreeInstance; override;
end;
(**************************************************************************\
*
* GDI+ Enumeration Types
*
\**************************************************************************)
//--------------------------------------------------------------------------
// Default bezier flattening tolerance in device pixels.
//--------------------------------------------------------------------------
const
{$EXTERNALSYM FlatnessDefault}
FlatnessDefault = 0.25;
//--------------------------------------------------------------------------
// Graphics and Container State cookies
//--------------------------------------------------------------------------
type
{$EXTERNALSYM GraphicsState}
GraphicsState = UINT;
{$EXTERNALSYM GraphicsContainer}
GraphicsContainer = UINT;
//--------------------------------------------------------------------------
// Fill mode constants
//--------------------------------------------------------------------------
{$EXTERNALSYM FillMode}
FillMode = (
FillModeAlternate, // 0
FillModeWinding // 1
);
TFillMode = FillMode;
//--------------------------------------------------------------------------
// Quality mode constants
//--------------------------------------------------------------------------
{$IFDEF DELPHI6_UP}
{$EXTERNALSYM QualityMode}
QualityMode = (
QualityModeInvalid = -1,
QualityModeDefault = 0,
QualityModeLow = 1, // Best performance
QualityModeHigh = 2 // Best rendering quality
);
TQualityMode = QualityMode;
{$ELSE}
{$EXTERNALSYM QualityMode}
QualityMode = Integer;
const
QualityModeInvalid = -1;
QualityModeDefault = 0;
QualityModeLow = 1; // Best performance
QualityModeHigh = 2; // Best rendering quality
{$ENDIF}
//--------------------------------------------------------------------------
// Alpha Compositing mode constants
//--------------------------------------------------------------------------
type
{$EXTERNALSYM CompositingMode}
CompositingMode = (
CompositingModeSourceOver, // 0
CompositingModeSourceCopy // 1
);
TCompositingMode = CompositingMode;
//--------------------------------------------------------------------------
// Alpha Compositing quality constants
//--------------------------------------------------------------------------
{$IFDEF DELPHI6_UP}
{$EXTERNALSYM CompositingQuality}
CompositingQuality = (
CompositingQualityInvalid = ord(QualityModeInvalid),
CompositingQualityDefault = ord(QualityModeDefault),
CompositingQualityHighSpeed = ord(QualityModeLow),
CompositingQualityHighQuality = ord(QualityModeHigh),
CompositingQualityGammaCorrected,
CompositingQualityAssumeLinear
);
TCompositingQuality = CompositingQuality;
{$ELSE}
{$EXTERNALSYM CompositingQuality}
CompositingQuality = Integer;
const
CompositingQualityInvalid = QualityModeInvalid;
CompositingQualityDefault = QualityModeDefault;
CompositingQualityHighSpeed = QualityModeLow;
CompositingQualityHighQuality = QualityModeHigh;
CompositingQualityGammaCorrected = 3;
CompositingQualityAssumeLinear = 4;
type
TCompositingQuality = CompositingQuality;
{$ENDIF}
//--------------------------------------------------------------------------
// Unit constants
//--------------------------------------------------------------------------
// {$EXTERNALSYM Unit}
Unit_ = (
UnitWorld, // 0 -- World coordinate (non-physical unit)
UnitDisplay, // 1 -- Variable -- for PageTransform only
UnitPixel, // 2 -- Each unit is one device pixel.
UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch.
UnitInch, // 4 -- Each unit is 1 inch.
UnitDocument, // 5 -- Each unit is 1/300 inch.
UnitMillimeter // 6 -- Each unit is 1 millimeter.
);
TUnit = Unit_;
//--------------------------------------------------------------------------
// MetafileFrameUnit
//
// The frameRect for creating a metafile can be specified in any of these
// units. There is an extra frame unit value (MetafileFrameUnitGdi) so
// that units can be supplied in the same units that GDI expects for
// frame rects -- these units are in .01 (1/100ths) millimeter units
// as defined by GDI.
//--------------------------------------------------------------------------
{$IFDEF DELPHI6_UP}
{$EXTERNALSYM MetafileFrameUnit}
MetafileFrameUnit = (
MetafileFrameUnitPixel = ord(UnitPixel),
MetafileFrameUnitPoint = ord(UnitPoint),
MetafileFrameUnitInch = ord(UnitInch),
MetafileFrameUnitDocument = ord(UnitDocument),
MetafileFrameUnitMillimeter = ord(UnitMillimeter),
MetafileFrameUnitGdi // GDI compatible .01 MM units
);
TMetafileFrameUnit = MetafileFrameUnit;
{$ELSE}
{$EXTERNALSYM MetafileFrameUnit}
MetafileFrameUnit = Integer;
const
MetafileFrameUnitPixel = 2;
MetafileFrameUnitPoint = 3;
MetafileFrameUnitInch = 4;
MetafileFrameUnitDocument = 5;
MetafileFrameUnitMillimeter = 6;
MetafileFrameUnitGdi = 7; // GDI compatible .01 MM units
type
TMetafileFrameUnit = MetafileFrameUnit;
{$ENDIF}
//--------------------------------------------------------------------------
// Coordinate space identifiers
//--------------------------------------------------------------------------
{$EXTERNALSYM CoordinateSpace}
CoordinateSpace = (
CoordinateSpaceWorld, // 0
CoordinateSpacePage, // 1
CoordinateSpaceDevice // 2
);
TCoordinateSpace = CoordinateSpace;
//--------------------------------------------------------------------------
// Various wrap modes for brushes
//--------------------------------------------------------------------------
{$EXTERNALSYM WrapMode}
WrapMode = (
WrapModeTile, // 0
WrapModeTileFlipX, // 1
WrapModeTileFlipY, // 2
WrapModeTileFlipXY, // 3
WrapModeClamp // 4
);
TWrapMode = WrapMode;
//--------------------------------------------------------------------------
// Various hatch styles
//--------------------------------------------------------------------------
{$EXTERNALSYM HatchStyle}
HatchStyle = (
HatchStyleHorizontal, // = 0,
HatchStyleVertical, // = 1,
HatchStyleForwardDiagonal, // = 2,
HatchStyleBackwardDiagonal, // = 3,
HatchStyleCross, // = 4,
HatchStyleDiagonalCross, // = 5,
HatchStyle05Percent, // = 6,
HatchStyle10Percent, // = 7,
HatchStyle20Percent, // = 8,
HatchStyle25Percent, // = 9,
HatchStyle30Percent, // = 10,
HatchStyle40Percent, // = 11,
HatchStyle50Percent, // = 12,
HatchStyle60Percent, // = 13,
HatchStyle70Percent, // = 14,
HatchStyle75Percent, // = 15,
HatchStyle80Percent, // = 16,
HatchStyle90Percent, // = 17,
HatchStyleLightDownwardDiagonal, // = 18,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -