属性 |
类型 |
描述 |
public: |
|
|
CreatedBy |
UnicodeString |
图片的作者,只读属性。
图片的作者需要在创建图片的时候,用 TMetafileCanvas 的构造函数的参数指定图片的作者和描述【例1:创建 emf 文件,设定作者和描述,单位换算关系】 |
Description |
UnicodeString |
图片的描述,只读属性。
图片的描述需要在创建图片的时候,用 TMetafileCanvas 的构造函数的参数指定图片的作者和描述【例1:创建 emf 文件,设定作者和描述,单位换算关系】 |
Enhanced |
bool |
是否为 emf (Win32 Enhanced metafile),可读写属性。
true: emf (Win32 Enhanced metafile), false: wmf (Windows Metafile)
默认值为 true。 |
Handle |
NativeUInt |
图片 emf/wmf 的句柄,可读写属性,可以通过这个句柄使用 Windows API 函数来处理图片。 |
MMWidth |
int |
以 0.01mm 为单位的图片宽度,emf/wmf 始终使用这个值作为图片的宽度,显示或打印的时候,通过 DC 的分辨率计算出适合于这个 DC 的大小【例1:创建 emf 文件,设定作者和描述,单位换算关系】 |
MMHeight |
int |
以 0.01mm 为单位的图片高度,emf/wmf 始终使用这个值作为图片的高度,显示或打印的时候,通过 DC 的分辨率计算出适合于这个 DC 的大小【例1:创建 emf 文件,设定作者和描述,单位换算关系】 |
Inch |
Word |
这是已经废弃的过时的属性。早期的 wmf 文件使用这个属性保存图片的分辨率,单位为 DPI (每英寸点数)。目前的文件显示始终是根据 DC 的分辨率来计算合适的大小。 |
TGraphic:: |
|
从 TGraphic 继承过来的 |
Empty |
bool |
是否包含图像数据,只读。如果不包含图像数据,此属性为 true. |
Height |
int |
图像的高度,可读写,单位:像素 (pixels)
可以用 SetSize 方法同时修改宽度和高度 |
Modified |
bool |
图像是否被修改过。如果被修改过,此属性为 true. |
Palette |
HPALETTE |
调色板句柄,可读写。如果图片没有或者不需要调色板,此值为 NULL |
PaletteModified |
bool |
调色板是否被修改过,如果被修改过,此属性值为 true. |
Transparent |
bool |
图像是否存在透明部分,可读写。 |
Width |
int |
图像的宽度,可读写,单位:像素 (pixels)
可以用 SetSize 方法同时修改宽度和高度 |
SupportsPartialTransparency |
bool |
是否支持半透明或 Alpha 通道,只读属性。 |
方法 |
描述 |
public: |
|
TMetafile |
__fastcall virtual TMetafile(void);
构造函数 |
~TMetafile |
__fastcall virtual ~TMetafile(void);
析构函数 |
Clear |
void __fastcall Clear(void);
创建新的图像,并且增加引用计数,销毁原来的图像。 |
HandleAllocated |
bool __fastcall HandleAllocated(void);
返回 Handle 属性是否分配了一个有效的句柄。由于读取 Handle 属性的时候,如果 Handle 没有分配有效的句柄,会自动分配一个,如果想知道目前 Handle 属性究竟是否分配了句柄,就需要用 HandleAllocated 函数判断,这个函数不会创建新的句柄。 |
LoadFromStream |
virtual void __fastcall LoadFromStream(System::Classes::TStream* Stream);
从流加载图像。 |
SaveToFile |
virtual void __fastcall SaveToFile(const System::UnicodeString Filename);
把当前图像储存为文件。 |
SaveToStream |
virtual void __fastcall SaveToStream(System::Classes::TStream* Stream);
把图像数据保存到流。 |
LoadFromClipboardFormat |
virtual void __fastcall LoadFromClipboardFormat(System::Word AFormat, NativeUInt AData, HPALETTE APalette);
从剪贴板加载图像数据,AFormat 为剪贴板数据格式,例如 CF_BITMAP,AData 为图像数据,APalette 为调色板句柄。【请参考 TBitmap 的例子:从剪贴板加载位图】 |
SaveToClipboardFormat |
virtual void __fastcall SaveToClipboardFormat(System::Word &AFormat, NativeUInt &AData, HPALETTE &APalette);
把当前的图像数据转为剪贴板格式的数据,可以把这些数据放入剪贴板。
【请参考 TBitmap 的例子:把位图放在剪贴板里面】 |
Assign |
virtual void __fastcall Assign(System::Classes::TPersistent* Source);
把 Source 里面的图像赋值 (或类型格式转换) 到当前图像。 |
ReleaseHandle |
NativeUInt __fastcall ReleaseHandle(void);
把 Handle 属性置为 NULL,让这个句柄和 TMetafile 脱离关系,返回值为原先的 Handle 属性值。
在给 Handle 属性赋值之前,调用 ReleaseHandle 方法不会丢失原来句柄所关联的资源。 |
SetSize |
virtual void __fastcall SetSize(int AWidth, int AHeight);
修改图像的大小为:宽度 = AWidth,高度 = AHeight,单位为像素 (pixels)
由于创建 emf/wmf 文件,始终使用以 mm 为单位的 MMWidth 和 MMHeight,SetSize 这个函数并没有实际的意义。【例1:创建 emf 文件,设定作者和描述,单位换算关系】 |
TGraphic:: |
从 TGraphic 继承过来的 |
Equals |
virtual bool __fastcall Equals(System::TObject* Obj);
比较当前图像是否和 Obj 的图像数据相同。 |
LoadFromFile |
virtual void __fastcall LoadFromFile(const System::UnicodeString Filename);
从文件加载图像。 |
operator
_di_IStreamPersist() |
operator System::Classes::_di_IStreamPersist()
{
System::Classes::_di_IStreamPersist intf;
this->GetInterface(intf);
return intf;
}
类型转换操作符,转为 _di_IStreamPersist 类型。 |
protected: |
|
GetEmpty |
virtual bool __fastcall GetEmpty(void);
返回图像数据是否为空。 |
GetHeight |
virtual int __fastcall GetHeight(void);
返回图像的高度,单位:像素 (pixels)。 |
GetPalette |
virtual HPALETTE __fastcall GetPalette(void);
返回调色板句柄。 |
GetWidth |
virtual int __fastcall GetWidth(void);
返回图像的宽度,单位:像素 (pixels)。 |
Draw |
virtual void __fastcall Draw(TCanvas* ACanvas, const System::Types::TRect &Rect);
把当前图像数据显示到画布 ACanvas 的 Rect 位置。 |
ReadData |
virtual void __fastcall ReadData(System::Classes::TStream* Stream);
从 Stream 里面读取图像数据。 |
ReadEMFStream |
void __fastcall ReadEMFStream(System::Classes::TStream* Stream);
读取 emf 流 |
ReadWMFStream |
void __fastcall ReadWMFStream(System::Classes::TStream* Stream, int Length);
读取 wmf 流 |
SetHeight |
virtual void __fastcall SetHeight(int Value);
把图像高度修改为 Value,单位:像素 (pixels) |
SetTransparent |
virtual void __fastcall SetTransparent(bool Value);
设为是否需要把图像显示为透明。 |
SetWidth |
virtual void __fastcall SetWidth(int Value);
把图像宽度修改为 Value,单位:像素 (pixels) |
TestEMF |
bool __fastcall TestEMF(System::Classes::TStream* Stream);
检查流 Stream 里面的数据是否为 emf 数据,返回值:true: emf, false: wmf |
WriteData |
virtual void __fastcall WriteData(System::Classes::TStream* Stream);
把图像数据写到 Stream 里面 |
WriteEMFStream |
void __fastcall WriteEMFStream(System::Classes::TStream* Stream);
把图像数据写入 emf 流 |
WriteWMFStream |
void __fastcall WriteWMFStream(System::Classes::TStream* Stream);
把图像数据写入 wmf 流 |
TGraphic:: |
从 TGraphic 继承过来的 |
Changed |
virtual void __fastcall Changed(System::TObject* Sender);
当图像数据被修改的时候,会自动调用 Changed 方法。
Changed 方法会把 Modified 属性置为 true,并且触发 OnChange 事件。 |
DefineProperties |
virtual void __fastcall DefineProperties(System::Classes::TFiler* Filer);
重载 TPersistent 的 DefineProperties,用于 ReadData 和 WriteData 方法读写流图像数据。 |
DrawTransparent |
virtual void __fastcall DrawTransparent(TCanvas* ACanvas, const System::Types::TRect &Rect, System::Byte Opacity);
把当前图像数据显示到画布 ACanvas 的 Rect 位置,和画布 Rect 位置原来的显示内容混合在一起,Opacity 为混合的比例,用来实现图像的透明效果,即 Opacity 为图像不透明的程度。 |
Equals |
HIDESBASE virtual bool __fastcall Equals(TGraphic* Graphic)/* overload */;
比较当前图像是否和 Obj 的图像数据相同。 |
GetTransparent |
virtual bool __fastcall GetTransparent(void);
返回图像是否存在透明部分。 |
Progress |
DYNAMIC void __fastcall Progress(System::TObject* Sender, TProgressStage Stage, System::Byte PercentDone, bool RedrawNow, const System::Types::TRect &R, const System::UnicodeString Msg);
当图像改变时 (加载、存储、转换的过程中),会调用这个方法来触发 OnProgress 事件。 |
SetPalette |
virtual void __fastcall SetPalette(HPALETTE Value);
调色板改为使用 Value 句柄的调色板。 |
GetSupportsPartialTransparency |
virtual bool __fastcall GetSupportsPartialTransparency(void);
返回是否支持半透明或 Alpha 通道。 |