首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

向“阿发伯”(maozefa)问下关于Delphi GDI+相关有关问题

2012-02-03 
向“阿发伯”(maozefa)问下关于Delphi GDI+相关问题背景:之前承其他同事的项目,他使用Delphi 与 GDI+ ,对JPG

向“阿发伯”(maozefa)问下关于Delphi GDI+相关问题
背景:

  之前承其他同事的项目,他使用Delphi 与 GDI+ ,对JPG 进行叠加文字处理。使用了一个“IGDIPlus.pas”的库
  使用:IGpGraphics, IGPImage, IGpBitmap声明变量,但在下面,创建时,使用的是 TGpGraphics,TGPImage等
  
  代码:

Delphi(Pascal) code
var  ...  ...  oBmp: IGPImage;  oG: IGPGraphics;begin......    oBmp := TGPBitmap.Create(nW, nH);    oG := TGPGraphics.Create(oBmp);    oG.DrawImage(oImg, 0, 0, oImg.Width, oImg.Height);    oBmp.Save(sFileName, encoderClsid, @EParam);    oBmp := nil;......end;
 


之前有听说IGPGraphics是接口类,但不知其所以然,想请阿发伯,大概说说,IGPGraphics与TGPGraphics,I和T在操作上,是否有什么特别注意的地方。还有,之前项目,用到的是“IGDIPlus.pas”库,和阿发伯提供下载的“Gdiplus.pas, GdipTypes.pas, GdipUtil.pas, GdipExport.pas”,有所不同。
也请阿发伯介绍下,两种库的区别特点。

[解决办法]
接口与类的区别,弄清楚就明白了
[解决办法]
接口你用完它自己会释放,接口只是一个方法列表的声明,具体由类来实现
[解决办法]
接口实际就是一个方法表,类似于虚方法表,实际中用的不少,但开发接口基本不怎么接触,我觉得接口最大的好处就是多继承很容易,比如有2个类Tbmp和Tjpg分别操作bmp和jpg图片,现在想弄个新的类既能操作bmp也能操作jpg比如叫TPic,按照理解TPic完全可以通过继承Tbmp和Tjpg得来,可类是无法多继承的,这样是不行的
type
TPic = class(Tbmp, Tjpg);

但如果有Ibmp和Ijpg接口的就可以实现多继承了(Tbmp是Ibmp的实现,Tjpg是Ijpg的实现)
type
TPic = class(TInterfacedObject, Ibmp, Ijpg);
在类TPic里委托实现Ibmp和Ijpg就使TPic即可处理bmp又可处理jpg了。
[解决办法]
三言两语可说不清,自己看书吧,《Delphi高级应用开发教程》里有这方面的内容,接口是Delphi的一个重要功能。

热点排行