Delphi操作XML是很方便的,主要有两种方法;
1.用TClientDataSet操作XML;TClientDataSet是个好东西,用它操作XML是很简单的事,不过缺点是只能操作固定格式的 XML,它适合操作表结构的数据,如果你需要把数据表导出成XML那用TClientDataSet是个好主意,比如下面是一个数据集导出成XML的方 法:
procedure ExportToXML(SrcDataSet:TDataSet;const XMLFileName:String);
var tmpCds:TClientDataSet;
i:integer;
NewField:TFieldDef;
begin
SrcDataSet.DisableControls;
tmpCds:=TClientDataSet.Create(nil);
try
for i:=0 to SrcDataSet.FieldCount-1 do
begin
NewField:=tmpCds.FieldDefs.AddFieldDef;
NewField.Name:=SrcDataSet.Fields[i].FieldName;
NewField.DataType:=SrcDataSet.fields[i].DataType;
NewField.Size:=SrcDataSet.Fields[i].Size;
end;
tmpCds.Cr ......
有时候我们需要可以高速检索的列表,自然会想到哈希表,平时我们可能想到用IniFiles单元里的THashedStringList,但 THashedStringList每次新增一个Item后都需要刷新一遍,数据多了可能会有点慢,感觉不太好,而TStringHash则只能存 Integer型的(虽然我们可以把别的东西强制转成整型存进去,但感觉不太好)。TStringHash已经实现了哈希表的全部功能,我们只需要改一下 就可以为自己所用了。
我主要做了下面一些修改:
1.为能更通用一些,把存储的值改为Pointer类型;
2.新增了FindKey方法用于判断表中是否存在某个Key了;
3.新增了StartEnum和EnumValue方法,用于遍历整个哈希表,比如:
var aItem:TIntfItem;
begin
FList.StartEnum;
while FList.EnumValue(Pointer(aItem)) do
begin
if aItem.Lifecycle=ilSys then
aItem.Free;
end;
end;
4.新增了OnDeletion事件,功能和TtreeView的OnDeletion一样,删除Item时触发,可以在这里释放些东西,比如:
procedure TIntfFactory.OnDeletion(var Value: Pointer);
begin
if assigned(Value) then
begin
TIntfItem(Value).Free;
&nb ......
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TDemoForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
GetButton: TBitBtn;
CloseButton: TBitBtn;
Bevel1: TBevel;
Label5: TLabel;
FLabel: TLabel;
MLabel: TLabel;
PLabel: TLabel;
SLabel: TLabel;
PValue: TLabel;
FValue: TLabel;
MValue: TLabel;
SValue: TLabel;
procedure GetButtonClick(Sender: TObject);
end;
var
DemoForm: TDemoForm;
implementation
{$R *.DFM}
const
ID_BIT = $200000; // EFLAGS ID bit
type
TCPUID = array[1..4] of Longint;
TVendor = array [0..11] of char;
function IsCPUID_Available : Boolean; register;
asm
PUSHFD {direct access to flags no possible, only via stack}
POP EAX {flags to EAX}
MOV EDX,EAX {save current flags}
XOR EAX,ID_B ......
flash是macromedia公司出品的,用在互联网上动态的、可互动的shockwave。它的优点是体积小,可边下载边播放,这样就避免了用户长时间的等待。
flash可以用其生成动画,还可在网页中加入声音。这样你就能生成多媒体的图形和界面,而使文件的体积却很小。
flash虽然不可以象一门语言一样进行编程,但用其内置的语句并结合 javascripe,您也可作出互动性很强的主页来。
flash另外一个特点就是必须安装插件plug-in,才能被浏览器所接受!当然这也避免了浏览器之间的差异,使之一视同仁!
但是你知道吗?在delphi中可以直接打开flash动画,并控制它播放和停止。你还可以得到它的总帧数,知道怎么实现的吗?请跟我来。
在delphi中的component|import activex contrals...中选中 "shockwave flash(version 1.0)",并单击install,会出现一个install窗口。
如果要把它添加到一个已经存在的包中,在"into existing package"对话框中的 "file name:"窗口中选择你想安装的路径,并单击"ok";会弹出一个确认的对话框,它问你"package dclusr50.bpl will be rebui ......
flash是macromedia公司出品的,用在互联网上动态的、可互动的shockwave。它的优点是体积小,可边下载边播放,这样就避免了用户长时间的等待。
flash可以用其生成动画,还可在网页中加入声音。这样你就能生成多媒体的图形和界面,而使文件的体积却很小。
flash虽然不可以象一门语言一样进行编程,但用其内置的语句并结合 javascripe,您也可作出互动性很强的主页来。
flash另外一个特点就是必须安装插件plug-in,才能被浏览器所接受!当然这也避免了浏览器之间的差异,使之一视同仁!
但是你知道吗?在delphi中可以直接打开flash动画,并控制它播放和停止。你还可以得到它的总帧数,知道怎么实现的吗?请跟我来。
在delphi中的component|import activex contrals...中选中 "shockwave flash(version 1.0)",并单击install,会出现一个install窗口。
如果要把它添加到一个已经存在的包中,在"into existing package"对话框中的 "file name:"窗口中选择你想安装的路径,并单击"ok";会弹出一个确认的对话框,它问你"package dclusr50.bpl will be rebui ......
要实现这一功能,首先要用到ActiveX控件中的TShockwaveFlash控件。
首先让我们来将TShockwaveFlash控件加入到Delphi的组件面板中(没有装Flash的朋友可以从网上下载一个Flash8.ocx文件来进行安装)
1.打开Delphi(本人用的是Delphi7.0)点击菜单中的Component->Import ActiveX Control...
2.在弹出的窗口中的Import ActiveX子窗口中找到Shockwave Flash(Version1.0),然后点击Install...按钮,根据提示执行就可以了
3.安装完成后,你可以发现TShockwaveFlash控件已经加入到Delphi的ActiveX面板中了。
在这里有必要跟大家讲一些关于TShockwaveFlash控件的属性与方法:
属性:
ReadState:读一个Flash文件时的状态。
TotalFrames:总帧数,只有当ReadyState=4时才能访问该属性。
FrameNum:当前播放的帧。
Playing:播放或暂停一个Flash。
Quality:指定当前渲染的质量,0=Low、1=High、2=AutoLow、3=AutoHigh。
ScaleMode:缩放模式,0=ShowAll、1=NoBorder、2=ExactFit。
AlignMode:对齐模式,Left=1、Right=2、Top=4、Bottom=8。
BackgroundColor:背景色,-1为默认颜色。
Loop:是否循环。
Movie:指定播放的Flash文件路径,可以为一个URL。
事件& ......
要实现这一功能,首先要用到ActiveX控件中的TShockwaveFlash控件。
首先让我们来将TShockwaveFlash控件加入到Delphi的组件面板中(没有装Flash的朋友可以从网上下载一个Flash8.ocx文件来进行安装)
1.打开Delphi(本人用的是Delphi7.0)点击菜单中的Component->Import ActiveX Control...
2.在弹出的窗口中的Import ActiveX子窗口中找到Shockwave Flash(Version1.0),然后点击Install...按钮,根据提示执行就可以了
3.安装完成后,你可以发现TShockwaveFlash控件已经加入到Delphi的ActiveX面板中了。
在这里有必要跟大家讲一些关于TShockwaveFlash控件的属性与方法:
属性:
ReadState:读一个Flash文件时的状态。
TotalFrames:总帧数,只有当ReadyState=4时才能访问该属性。
FrameNum:当前播放的帧。
Playing:播放或暂停一个Flash。
Quality:指定当前渲染的质量,0=Low、1=High、2=AutoLow、3=AutoHigh。
ScaleMode:缩放模式,0=ShowAll、1=NoBorder、2=ExactFit。
AlignMode:对齐模式,Left=1、Right=2、Top=4、Bottom=8。
BackgroundColor:背景色,-1为默认颜色。
Loop:是否循环。
Movie:指定播放的Flash文件路径,可以为一个URL。
事件& ......
显示一个GIF动画
procedure ShowGIF( GIFFileName : String );
var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring; begin TargetFrameName := '';{指定Frame的空字符串时,则在当前Frame中打开动画文件} PostData := false;{不发送数据} Heads := '';{Header信息为空} Flags := 0;{Flags设为0} URL := GIFFileName; with formGIF.webbrowser do{在指定窗口中的IE浏览器控件中显示动画} begin navigate(URL,Flags,TargetFrameName,PostData,Heads);{显示动画文件} end; end;
播放Flash
首先,你的机器里要装有 Flash 播放软件(你的 IE 能显示 Flash )。IE 之所以能显示 Flash 是安装了由 Macromedia 公司提供的 swflash.ocx 控件,我们可以在Win98 的 $Windows\System\Macromed\Flash 中或在 Win2000 中的 $Winnt\System32\ Macromed\Flash 中找到它。ActiveX 控件在 Windows 里是通用的,Delphi也同样支持。
运行 Delphi 后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。安装完成后,ActiveX 面板里出现 TShockwaveFlash控件,这是Delphi对SWFlash.OCX 的封装,现在我们就可以用这个控件来播放 ......
显示一个GIF动画
procedure ShowGIF( GIFFileName : String );
var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : widestring; begin TargetFrameName := '';{指定Frame的空字符串时,则在当前Frame中打开动画文件} PostData := false;{不发送数据} Heads := '';{Header信息为空} Flags := 0;{Flags设为0} URL := GIFFileName; with formGIF.webbrowser do{在指定窗口中的IE浏览器控件中显示动画} begin navigate(URL,Flags,TargetFrameName,PostData,Heads);{显示动画文件} end; end;
播放Flash
首先,你的机器里要装有 Flash 播放软件(你的 IE 能显示 Flash )。IE 之所以能显示 Flash 是安装了由 Macromedia 公司提供的 swflash.ocx 控件,我们可以在Win98 的 $Windows\System\Macromed\Flash 中或在 Win2000 中的 $Winnt\System32\ Macromed\Flash 中找到它。ActiveX 控件在 Windows 里是通用的,Delphi也同样支持。
运行 Delphi 后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。安装完成后,ActiveX 面板里出现 TShockwaveFlash控件,这是Delphi对SWFlash.OCX 的封装,现在我们就可以用这个控件来播放 ......