我在picture.loadfromfile(FFilename);
报错.
报错.
解决方案 »
- 请帮忙讲一下C_FieldList.ItemsEx.AddItem()用法,马上结贴
- 请教:急救,求FastReport3.0的帮助文档,中英文都可以。非常感谢!
- out of system resouse 错误,可能是由于什么原因引起的????
- 有关串口检测的问题
- 在主窗体中怎样知道那个子窗体创建或者关闭的消息,以及引用该窗体一些方法
- 天啊,两天没睡觉了,程序到底错在哪呀?
- 英巴卡迪诺,一个无耻的公司。。。大家小心。
- 部分成员不能在此发言
- 在DELPHI怎样创建一个目录?
- 送分,40分,先答先要分
- delphi中如何通过程序赋值的变量打开本地磁盘存在的文件?
- 关于过滤某些网页地址的程序(IE扩展)
begin
RegisterClass(TJPEGImage);
end;
MyImage:TAllImage;
MyLabel:TLabel;
SPos,i, j:integer;
NumOfDICOMFrame:integer;
FileBuf:TStringList;
ImageNum:Integer;
imgPath:string;
begin
for i := scbImageList.ComponentCount - 1 downto 0 do
scbImageList.Components[i].free;
//图象列表 // if CurrentExam.ImagePath[length(CurrentExam.ImagePath)]<>'\' then
// CurrentExam.ImagePath:=CurrentExam.ImagePath+'\'; //得到图像路径
//返回目录下所有文件名 ,数目
CurrentExam.ImagePath:='C:\pacs5.5\exe\backimg\';\\测试用
FileBuf:= tstringlist.Create();
FindFiles(CurrentExam.ImagePath,FileBuf,ImageNum);
//图象数目
j:=1;
for i := 1 to ImageNum do
begin
//为图像预留空间
MyImage := TAllImage.Create(scbImageList);
MyImage.Parent :=scbImageList;
MyImage.Hint := CurrentExam.ImagePath+FileBuf[i-1]; //图像的提示性文字是该图像的文件名
MyImage.Filename:=MyImage.Hint; SPos := scbImageList.VertScrollBar.ScrollPos;
MyImage.TOP := (j - 1) * 75+25*j -sPos;
MyImage.Left := 10;
MyImage.Height := 75;
MyImage.Width := 100;
MyImage.Stretch := true; MyImage.Filename:=MyImage.Hint;
MyImage.GetFirstFrame; MyImage.ShowHint := true;
MyImage.OnClick := OnImgClick; {---加图象到报表中---}
j:= j + 1; end; MyImage.Free;
================================
GetFirstFrame;定义在TAllImage中.
TAllImage = class(TImage)
private
{ Private declarations }
FFileName:string;
FFrameRate:integer;
FPlayLoop:boolean;
FFrameNum:integer;
pMemBegin,pMemPos:^Byte;
FCurrentFrame:integer;
FState:integer;
SysTimer:TTimer;
procedure SysTimerTick(Sender: TObject);
protected
{ Protected declarations }
procedure OpenBuffer(BufSize:integer);
procedure FreeBuffer;
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
destructor Destroy;override;
function GetFirstFrame:boolean;
procedure MP4Play;
procedure MP4Pause;
procedure MP4Stop;
procedure MP4Open;
procedure MP4Close;
published
{ Published declarations }
Property Height;
property Width;
property Top;
property Left;
property Filename:string read FFilename write FFilename;
property FrameRate:integer read FFrameRate write FFrameRate;
property PlayLoop:boolean read FPlayLoop write FPlayLoop;
end;
function TAllImage.GetFirstFrame:boolean;
var
// ShowFirstFrame:TGetFirstFrame;
// DllHandle:THandle;
exeStr:String;
bmp:TBitmap;
tag:boolean; fs:TMemoryStream;
Buffer:Pointer;
MyJpeg : TFastDIB;
// pDC:HWND;
ImgSize:integer;
DcmClass:TMyDicomClass;
T1:TBitmap;
pDC: HDC;
begin
if trim(FFilename)='' then
begin
result:=false;
exit;
end;
if not(Fileexists(FFilename)) then
begin
result:=false;
exit;
end;
exeStr:=ExtractFileExt(FFilename);
if LowerCase(exeStr)='.bmp' then //自动提取BMP图象
begin
picture.loadfromfile(FFilename);
result:=true;
exit;
end;
if LowerCase(exeStr)='.jpg' then //自动提取JPG图象
begin
picture.loadfromfile(FFilename);
result:=true;
exit;
end;
if LowerCase(exeStr)='.avi' then //自动提取JPG图象
begin
bmp:=TBitmap.Create;
try
tag:=GetAviFrame(FFilename,1,bmp);
picture.Bitmap.Assign(bmp);
finally
bmp.free;
end;
result:=true;
exit;
end;
begin
picture.loadfromfile(FFilename);
就出错.