J
javesun
Unregistered / Unconfirmed
GUEST, unregistred user!
最近在用IMAGE时,发现有一个地方不太明白,还请大虾们点拨两下:
image1.picture---> TPicture;
在其导入图片时,无论bitmap,jpeg or icon都成功。
procedure TPicture.LoadFromFile(const Filename: string);
var
Ext: string;
NewGraphic: TGraphic;
GraphicClass: TGraphicClass;
begin
Ext := ExtractFileExt(Filename);
Delete(Ext, 1, 1);
GraphicClass := FileFormats.FindExt(Ext);
if GraphicClass = nil then
raise EInvalidGraphic.CreateFmt(SUnknownExtension, [Ext]);
NewGraphic := GraphicClass.Create;
try
NewGraphic.OnProgress := Progress;
NewGraphic.LoadFromFile(Filename);
except
NewGraphic.Free;
raise;
end;
FGraphic.Free;
FGraphic := NewGraphic;
FGraphic.OnChange := Changed;
Changed(Self);
end;
TGraphicClass= class of TGraphic
--->不明白
---------------------------------------------------------------
在此中:FGraphic := NewGraphic;
即TPicure.Graphic可以使用loadfromfile,不管是什么类型的,应该不出错。
但却出错了。
1、可能是我理解错了,希望能给偶说明一下。(或这里的NewGraphic.LoadFromFile(Filename);为什么会成功?)
2、解释一下Class of。
偶一菜菜,分不多,只好给100分了。
image1.picture---> TPicture;
在其导入图片时,无论bitmap,jpeg or icon都成功。
procedure TPicture.LoadFromFile(const Filename: string);
var
Ext: string;
NewGraphic: TGraphic;
GraphicClass: TGraphicClass;
begin
Ext := ExtractFileExt(Filename);
Delete(Ext, 1, 1);
GraphicClass := FileFormats.FindExt(Ext);
if GraphicClass = nil then
raise EInvalidGraphic.CreateFmt(SUnknownExtension, [Ext]);
NewGraphic := GraphicClass.Create;
try
NewGraphic.OnProgress := Progress;
NewGraphic.LoadFromFile(Filename);
except
NewGraphic.Free;
raise;
end;
FGraphic.Free;
FGraphic := NewGraphic;
FGraphic.OnChange := Changed;
Changed(Self);
end;
TGraphicClass= class of TGraphic
--->不明白
---------------------------------------------------------------
在此中:FGraphic := NewGraphic;
即TPicure.Graphic可以使用loadfromfile,不管是什么类型的,应该不出错。
但却出错了。
1、可能是我理解错了,希望能给偶说明一下。(或这里的NewGraphic.LoadFromFile(Filename);为什么会成功?)
2、解释一下Class of。
偶一菜菜,分不多,只好给100分了。