最好附上源码!
急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!急!
解决方案 »
- 互联上如何缩短TSocketConnection 连接时间
- 为什么 imageen 安装后 ,运行时说缺少 ieword.duc ????????????? 急!!!!!
- 哪里有delphi工作流图形源码下载,载完立刻给分!不够再开贴送分!
- 32位浮点数和10进制互相转换的问题(在线讨论)
- *****************高分求制作帮助文档的工具****************->100分
- 请问谁知道如何实现URL的这种表达方式,高分报答!
- 怎样得到毫秒级甚至更精确的系统时间?
- Delphi里如何将datetime变量转换成如下格式字符串:“20020724163009”
- 怎样新建一个表
- 中文字符串比较的问题,大神请进啊!
- Delphi 7的Web Service为什么不像Delphi6啊?痛苦.在线等待高手的解答!
- SQL语句?
1,新建一个工程
2,放上2个Label,和1个Button将Unit1全部替换以下代码:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; {获得flash影片的宽度和高度的函数组群的定义}
TSWFParser = class
private
SWFBuffer: DWORD;
SWFBufPos: Integer;
SWFFile: TFileStream;
procedure InitBuffer();
procedure GetByte();
function GetBits(n:Integer):DWORD;
function GetSBits(n:Integer):Longint; public
function GetSWFRect(FileName:String):TRect;
end;var
Form1: TForm1;implementation{$R *.DFM}{读取影片的宽度和高度的函数群}
procedure TSWFParser.InitBuffer;
begin
SWFBuffer:=0;
SWFBufPos:=0;
end;procedure TSWFParser.GetByte();
var
b:Byte;
begin
SWFFile.Read(b, 1);
SWFBuffer:=b;
SWFBufPos:=8;
end;function TSWFParser.GetBits(n: Integer): DWORD;
var
s:Integer;
v:DWORD;
begin
v:=0;
while true do
begin
s:=n-SWFBufPos;
if s>0 then
begin
v:=v or (SWFBuffer shl s);
n:=n-SWFBufPos;
GetByte;
end
else
begin
v:=v or (SWFBuffer shr -s);
SWFBufPos:=SWFBufPos-n;
SWFBuffer:=SWFBuffer and ($ff shr (8-SWFBufPos));
break;
end;
end;
Result:=v;
end;function TSWFParser.GetSBits(n: Integer): Longint;
var
v: Integer;
l: Longint;
begin
v:=Longint(GetBits(n));
l:=1;
if(v and (l shl (n-1))<>0) then
begin
l:=-1;
v:=v or (l shl n);
end;
Result:=v;
end;function TSWFParser.GetSWFRect(FileName:String):TRect;
var
r: TRect;
nBits: Integer;
SwfFileSize: Cardinal;
begin
SWFFile:=TFileStream.Create(FileName,fmOpenRead);
if ExtractFileExt(FileName) = '.exe' then
begin
SWFFile.Seek(- 2 * sizeof(integer), soFromEnd);
SWFFile.ReadBuffer(SwfFileSize, sizeof(integer));
SWFFile.ReadBuffer(SwfFileSize, sizeof(SwfFileSize));
SWFFile.Seek(- SwfFileSize - 2 * sizeof(integer), soFromEnd);
end;
SWFFile.Seek(8, soFromCurrent);
InitBuffer();
nBits:=GetBits(5);
r.Left:=GetSBits(nBits);
r.Right:=GetSBits(nBits);
r.Top:=GetSBits(nBits);
r.Bottom:=GetSBits(nBits);
SWFFile.Free;
Result:=r;
end;//结束{按钮点击事件}
procedure TForm1.Button1Click(Sender: TObject);
var
SWFRect: TRect;
p: TSWFParser;
begin
p:=TSWFParser.Create;
SWFRect:=p.GetSWFRect('F:\aaa.swf');//这里swf和exe文件都可以
Label1.Caption := IntToStr((SWFRect.Right-SWFRect.Left) div 20); //影片宽度
Label2.Caption := IntToStr((SWFRect.Bottom-SWFRect.Top) div 20); //影片高度
p.Free;
end;end.