Delphi和Flash交互

合集下载

flashtool强刷工具使用方法

flashtool强刷工具使用方法

flashtool强刷工具使用方法Flashtool是DELPHI公司自主研发的一款专门用于刷新Delphi 汽车电脑的应用软件。

下面是店铺为您带来的flashtool强刷工具使用方法,希望对大家有所帮助。

flashtool强刷工具使用方法1、首先将手机关机,但这时不要着急将手机与电脑连接,备好数据线待用。

2、将下载好的强刷工具解压,进入文件夹,如下图:3、双击exe文件,运行强刷软件,进入软件界面。

4、单击刷写按钮,出现菜单。

如下图所示。

5、在菜单的左侧选择你想要强刷的强刷包,这里小编就随便选择一个了。

选择完毕后右侧会出现这个强刷包中所有包含的刷机文件。

然后点击OK。

请等待。

出现的界面如下图。

6、等待一会儿,就会出现下一步操作提示。

如下图:7、此时拿出手机,千万不要开机。

按住“音量-”按键不放,再用数据线连接手机和计算机。

此时手机指示灯是常亮绿色。

如果是第一次使用计算机上会有提示安装驱动。

请按照帖子一开始的提示安装正确的驱动。

驱动安装错误会找不到设备。

请务必仔细安装。

8、当安装完驱动后,手机就开始自动刷写了。

刷写过程在flashtool主界面的最底部会有绿色进度条。

当走到最后面。

等一下主界面上会有提示“finished”和三句让你重启手机的提示。

9、把数据线从手机上拔掉,关闭flashtool工具。

给手机开机。

10、第一次开机会很慢,请不用担心。

第一次进入系统后建议恢复一次出厂设置。

需要说明的有一点,小编提供的软件下载与上文图中所示的有些不同,这是因为版本不同的原因,不过都可以正常使用。

以上就是安趣官网为大家带来的flashtool教程,帮助大家了解flashtool怎么用。

flashtool使用方法1、解压SP_Flash_T ool_Linux_v5.1336.00.100_Customer.zipsudo mkdir /opt/MTK/SP_Flash_T ool_Linux_v5.1336.00.100_Customer/ sudo cp SP_Flash_T ool_Linux_v5.1336.00.100_Customer.zip /opt/MTK/SP_Flash_T ool_Linux_v5.1336.00.100_Customer/ cd/opt/MTK/SP_Flash_T ool_Linux_v5.1336.00.100_Customer/ sudo unzip SP_Flash_T ool_Linux_v5.1336.00.100_Customer.zip2、配置驱动sudo gedit /etc/udev/rules.d/53-android.rules这个文件是用于adb调试的,在打开的文件中增加以下文本:SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"SUBSYSTEM=="usb", ATTR{idVendor}="0bb4", ATTR{idProduct}="0c03", SYMLINK+="android_adb"sudo gedit /etc/udev/rules.d/53-MTKinc.rules这个文件是用于下载的,在打开的文件中增加以下文本:SUBSYSTEM=="usb", SYSFS{idVendor}=="0e8d", MODE="0666"SUBSYSTEM=="usb", ATTR{idVendor}="0e8d", ATTR{idProduct}="2000", SYMLINK+="android_adb"KERNEL=="ttyACM*", MODE="0666"驱动重新加载:sudo chmod a+rx /etc/udev/rules.d/53-android.rulessudo chmod a+rx /etc/udev/rules.d/53-MTKinc.rulessudo /etc/init.d/udev restart备注:idVendor 与 idProduct的通过lsusb命令查看KERNEL=="ttyACM*", MODE="0666"是给flash_tool运行过程中生成的设备文件增加权限,这样不需要管理员权限即可运行。

推荐-Delphi 6程序设计及其应用开发第5章 多媒体与动画操作 精品

推荐-Delphi 6程序设计及其应用开发第5章 多媒体与动画操作 精品
DeviceType
False False
dtAutoSelect
Display
OleContainer1
TimeFormat
TfMilliSeconds
Visible
False
图5-6 Mediaplayer1控件布尔 值设置
图5-7 Mediaplayer1可播 放的设备类型
表5-7 TimeFormat部分取值及意义
向前跳过一帧
btBack
向后跳过一帧
btRecord 开始录音
btEject
弹出媒体文件(比如说弹出光盘)
表5-6 MediaPlayer1的属性设置
属性
属性值
AutoEnase
AutoRewind
True
EnableButtons. btRecord EnableButtons. btEject
返回本节
5.2 多媒体控件MediaPlayer的使用
5.2.1 多媒体控件MediaPlayer功能简介 5.2.2 使用MediaPlayer控件制作一个VCD
播放程序
返回本章首页
5.2.1 多媒体控件MediaPlayer功能简介
MediaPlayer控件不仅可以播放AVI文件,还可 以通过MCI播放很多媒体文件,比如WAV, MIDI,CD音乐文件和DAT文件。它位于控 件板的System页中,如图5-3所示。
图5-1 Animate控件的位置
返回本节
5.1.2 使用Animate控件实现动画播放的实例程序
1.向设计窗体中添加控件
如图5-2所示,在窗体的上半部分添加三个 TGroupBox控件、一个TOpenDialog控件、七 个TButton控件、三个TLabel控件、三个 TSpinEdit控件,在窗体下半部分添加一个 TListBox控件和一个Animate控件。其中, Animate控件的位置应根据运行程序时,需 要出现的位置来放置。

Delphi程序与Html界面的交互方法

Delphi程序与Html界面的交互方法

Delphi程序与Html界面的交互方法Delphi程序与Html界面的交互方法在用Delphi、Visual Basic等可视化快速开发工具编写Windows 应用程序时,常会遇到这样几个问题:1) 希望程序界面美观。

在Delphi中,开发人员通常使用各种控件来实现界面的风格化,但缺点是造成应用程序体积较大,且在升级时常会被控件版本与Delphi版本不兼容带来的问题所困扰。

2) 希望应用程序在功能不变的情况下具有不同的界面风格。

这常常通过换“皮肤“的技术来实现,但一般实现“换肤“功能的控件体积都较大,且界面反应速度比较慢,而且“皮肤“的制作比较麻烦。

3) 程序界面的维护困难。

为了使界面与代码实现相分离而获得“换肤“等灵活性,通常要用到一些设计模式的技术,这对于不熟悉设计模式的开发人员来说比较困难。

微软在 Windows xp 之后的产品,包括 Vista, Windows 7 的应用程序的结构及部署将有重大变革,其中一项就是应用程序的界面完全以XML的一个扩展集XAML语言来描述,以便达到界面的高度可定制性。

其中Silverlight 就是一个典型的应用。

从中或许我们可以得到一些启示。

在Delphi 中类似的解决方案就是使用浏览器控件加载HTML 页面。

微软的网页浏览器 Internet Explorer 的核心被设计为可以嵌入到应用程序中重用的ActiveX组件,它有极强的可编程能力和与容器交互的能力,使得开发人员能够快速地开发出功能强劲的应用程序。

我们平常运行的 iexplorer.exe 其实只是一个外壳程序,真正的浏览网页、记录历史等工作是由嵌入其窗口的封装在shdocvw.dll 中的WebBrowser Control 来完成的。

Shdocvw.dll 的功能则是调用 mshtml.dll 来解析网页,以及在它的窗口中嵌入其它活动文档组件(如Microsoft Office、Adobe Acrobat 等应用程序的文档都可以嵌入到浏览器窗口中查看)。

js与flash交互 Word 文档

js与flash交互 Word 文档

js与flash交互一js与flash交互操作//flash里传送值'<param name="flashvars" value="' + this.getFlashVars() + '" />'//flash里获取值this.uploadURL=root.loaderinfo.parameters.uploadURLSWFUpload.prototype.getFlashVars = function () {// Build a string from the post param objectvar paramString = this.buildParamString();var httpSuccessString = this.settings.http_success.join(",");// Build the parameter stringreturn ["movieName=", encodeURIComponent(this.movieName),"&amp;uploadURL=", encodeURIComponent(this.settings.upload_url),"&amp;useQueryString=", encodeURIComponent(e_query_string),"&amp;requeueOnError=", encodeURIComponent(this.settings.requeue_on_error),"&amp;httpSuccess=", encodeURIComponent(httpSuccessString),"&amp;assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout),"&amp;params=", encodeURIComponent(paramString),"&amp;filePostName=", encodeURIComponent(this.settings.file_post_name),"&amp;fileTypes=", encodeURIComponent(this.settings.file_types),"&amp;fileTypesDescription=", encodeURIComponent(this.settings.file_types_description),"&amp;fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit),"&amp;fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit),"&amp;fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit),"&amp;debugEnabled=", encodeURIComponent(this.settings.debug_enabled),"&amp;buttonImageURL=", encodeURIComponent(this.settings.button_image_url),"&amp;buttonWidth=", encodeURIComponent(this.settings.button_width),"&amp;buttonHeight=", encodeURIComponent(this.settings.button_height),"&amp;buttonT ext=", encodeURIComponent(this.settings.button_text),"&amp;buttonT extTopPadding=", encodeURIComponent(this.settings.button_text_top_padding),"&amp;buttonT extLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding),"&amp;buttonT extStyle=", encodeURIComponent(this.settings.button_text_style),"&amp;buttonAction=", encodeURIComponent(this.settings.button_action),"&amp;buttonDisabled=", encodeURIComponent(this.settings.button_disabled),"&amp;buttonCursor=", encodeURIComponent(this.settings.button_cursor)].join("");};//js调用flash中的方法SWFUpload.prototype.callFlash = function (functionName, argumentArray) {argumentArray = argumentArray || [];var movieElement = this.getMovieElement();var returnValue, returnString;// Flash's method if calling ExternalInterface methods (code adapted from MooTools). try {returnString = movieElement.CallFunction('<invoke name="' + functionName +'" returntype="javascript">' + __flash__argumentsT oXML(argumentArray, 0) + '</invoke>');returnValue = eval(returnString);} catch (ex) {throw "Call to " + functionName + " failed";}// Unescape file post param valuesif (returnValue != undefined && typeof returnValue.post === "object") {returnValue = this.unescapeFilePostParams(returnValue);}return returnValue;};//调用SWFUpload.prototype.getStats = function () {return this.callFlash("GetStats");};SWFUpload.prototype.getFile = function (fileID) {if (typeof(fileID) === "number") {return this.callFlash("GetFileByIndex", [fileID]);} else {return this.callFlash("GetFile", [fileID]);}};SWFUpload.prototype.addFileParam = function (fileID, name, value) {return this.callFlash("AddFileParam", [fileID, name, value]);};SWFUpload.prototype.getMovieElement = function () {if (this.movieElement == undefined) {//this.movieName就是flash object的id this.movieElement = document.getElementById(this.movieName);}if (this.movieElement === null) {throw "Could not find Flash element";}return this.movieElement;};二JS-和 flash 交互(参考资料)1) JS 中往SWF中传值:在HTML中嵌入SWF时就通过get方式传入:$str = "chatOnline.swf". "?psd=".$psd."&myid=".$id."&otherid=".$otherid."&flag=".$flag;<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="/pub/shockwave/cabs/flash/swflash.cab#version=8, 0,0,0" width="900" height="600" id="chatOnline" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="<?=$str?>" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="<?=$str?>" quality="high" bgcolor="#ffffff" width="900" height="600" name="chatOnline" align="middle" allowScriptAccess="never" allowNetworking="internal" autostart="0" type="application/x-shockwave-flash"pluginspage="/go/getflashplayer" /></object>2) SWF 调用JS 事件:a: getURL();这个方法实际上是在SWF中打开一个新的窗口;传入的是窗口的URL.但我们知道在游览器的地址栏中可以如下调用JS事件:javascript:alert(3);所以我们也可以在SWF中这样调用: getURL("javascript:showDetail('3');");b: call();import flash.external.*;ExternalInterface.call("up", value1,value2);<script>function up(val1,val2){//do someThing!}</script>3) JS 调用SWF 事件;转到的帧数:<input type="text" id="gotoFrame"onKeyUp="javascript:sample.GotoFrame(this.value)"/>传递给Flash的值:<input type="text" id="setVari"onKeyUp="javascript:sample.SetVariable('myvar',this.value);"/><a href="javascript:sample.Play();">播放</a><a href="javascript:sample.Stop();">停止</a><a href="javascript:sample.Rewind();">返回第一帧</a><a href="javascript:sample.Zoom(50);">放大</a><a href="javascript:sample.Zoom(200);">缩小</a><script type="text/javascript">function F(){showFrame.innerHTML="播放帧数:"+sample.CurrentFrame()+"/"+sample.TotalFrames; isPlaying.innerHTML="是否处于播放状态:"+sample.IsPlaying();}setInterval(F,100);</script><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="/pub/shockwave/cabs/flash/swflash.cab#version=8, 0,0,0" width="400" height="140" id="sample" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="sample.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="sample.swf" quality="high" bgcolor="#ffffff" width="400" height="140" name="sample" align="middle" allowScriptAccess="never" allowNetworking="internal" autostart="0" type="application/x-shockwave-flash"pluginspage="/go/getflashplayer" /></object>在sample.swf 内的舞台上有一文本框,它的属性里的Var值是:myvar三JS与flash交互遇到的问题一、由于嵌入标记以及浏览器等原因,导致JS无法调用FLASH中的方法使用swfobject来嵌入你的FLASH它的优点有:•简单简洁,再也不那COPY那一大段的标记了•支持指定FLASH版本,如果版本不够可自动升级二、FLASH调用JS的时候,JS对象还不存在由于大部分脚本是放到页面最底部的(这样做的原因是让浏览器先渲染出界面,因为载入脚本时会停止渲染页面),所以如果在脚本导入之前就嵌入了FLASH,并且FLASH尝试调用JS 方法,此时可能JS对象所在的脚本还未执行。

Delphi调用外部程序详解[宝典]

Delphi调用外部程序详解[宝典]

Delphi调用外部程序详解Delphi调用外部程序详解(Shellexecute,Winexec)2008-10-0411:27Delphi调用外部程序详解WinExec主要运行EXE文件。

如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW);ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。

首先必须引用shellapi.pas单元:uses ShellAPI;1.标准用法ShellExecute函数原型及参数含义如下:function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;●hWnd:用于指定父窗口句柄。

当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。

例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。

●Operation:用于指定要进行的操作。

其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。

当参数设为nil时,表示执行默认操作“open”。

●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。

●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。

●Directory:用于指定默认目录。

●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。

delphi tms 用法

delphi tms 用法

delphi tms 用法Delphi是一种面向对象的编程语言,TMS是一套广泛使用的Delphi组件库。

本文将逐步介绍Delphi TMS组件库的用法,帮助您更好地理解如何使用它们来开发强大的应用程序。

第一步:安装和设置TMS组件库首先,我们需要下载和安装TMS组件库。

您可以在TMS软件官方网站上找到最新版本的组件库,并按照他们的安装向导进行安装。

安装完成后,启动Delphi集成开发环境(IDE)。

接下来,我们需要在Delphi IDE中设置TMS组件库。

打开Delphi IDE,点击“Tools”菜单,选择“TMS Web Update”选项。

在弹出的对话框中,点击“Add”按钮,然后选择您安装TMS组件库的目录。

点击“Close”按钮保存设置。

第二步:添加TMS组件到窗体现在,我们可以将TMS组件添加到我们的窗体上。

打开一个新的窗体,确保“Form Designer”处于活动状态。

在IDE中,可以在“Tool Palette”工具箱中找到TMS组件。

单击鼠标右键,选择“Add/Remove Items”选项,然后在弹出的对话框中选择“TMS Software”选项卡。

选择您所需的TMS组件,并点击“OK”按钮。

一旦您添加了TMS组件到工具箱中,您可以在工具箱中找到它们,并将其拖放到窗体上。

TMS组件将自动与窗体相关联,并显示在“Object Inspector”属性窗口中,您可以在这里设置它们的属性和事件。

第三步:使用TMS组件进行界面设计TMS组件库提供了许多强大的组件,例如TAdvStringGrid、TAdvSmoothListBox、TAdvSmoothSlider等。

您可以使用这些组件来创建交互式的用户界面。

拖放组件到窗体上时,您可以调整它们的大小和位置,以适应您的设计需求。

在“Object Inspector”窗口中,您可以设置组件的属性,例如外观、行为和数据绑定等。

通过设置这些属性,您可以定制组件的外观和行为,以满足您的特定需求。

Delphi实现窗体内嵌其他应用程序窗体

Delphi实现窗体内嵌其他应用程序窗体

Delphi实现窗体内嵌其他应用程序窗体[代码]Delphi实现窗体内嵌其他应用程序窗体实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果。

本文实现的是内嵌一个记事本程序,如下图:在实现细节上需要注意几点:1.为了美化程序的嵌入效果,需要隐藏其标题栏2.在外部窗体大小变化时,需要内嵌的窗体也随之变化大小3.外部程序退出时,内嵌的程序也要退出下面是例子程序。

新建窗体,上面放置一个Panel控件,名为pnlApp,然后按下面代码编写:unit frmTestEmbedApp;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls;typeTForm1 = class(TForm)pnlApp: TPanel;procedure FormCreate(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure FormResize(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;hWin: HWND = 0;implementation{$R *.dfm}type// 存储窗体信息PProcessWindow = ^TProcessWindow;TProcessWindow = recordProcessID: Cardinal;FoundWindow: hWnd;end;// 窗体枚举函数function EnumWindowsProc(Wnd: HWND; ProcWndInfo: PProcessWindow): BOOL; stdcall;varWndProcessID: Cardinal;beginGetWindowThreadProcessId(Wnd, @WndProcessID);if WndProcessID = ProcWndInfo^.ProcessID then beginProcWndInfo^.FoundWindow := Wnd;Result := False; // 已找到,故停止EnumWindowsendelseResult := True; // 继续查找end;// 由 ProcessID 查找窗体 Handlefunction GetProcessWindow(ProcessID: Cardinal): HWND;varProcWndInfo: TProcessWindow;beginProcWndInfo.ProcessID := ProcessID;ProcWndInfo.FoundWindow := 0;EnumWindows(@EnumWindowsProc,Integer(@ProcWndInfo)); // 查找窗体Result := ProcWndInfo.FoundWindow;end;// 在 Panel 上内嵌运行程序function RunAppInPanel(const AppFileName: string; ParentHandle: HWND; var WinHandle: HWND): Boolean;varsi: STARTUPINFO;pi: TProcessInformation;beginResult := False;// 启动进程FillChar(si, SizeOf(si), 0);si.cb := SizeOf(si);si.wShowWindow := SW_SHOW;if not CreateProcess(nil, PChar(AppFileName), nil, nil, true,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, si, pi) then Exit;// 等待进程启动WaitForInputIdle(pi.hProcess, 10000);// 取得进程的 HandleWinHandle := GetProcessWindow(pi.dwProcessID);if WinHandle > 0 then begin// 设定父窗体Windows.SetParent(WinHandle, ParentHandle);// 设定窗体位置SetWindowPos(WinHandle, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOZORDER);// 去掉标题栏SetWindowLong(WinHandle, GWL_STYLE, GetWindowLong(WinHandle, GWL_STYLE)and (not WS_CAPTION) and (not WS_BORDER) and (not WS_THICKFRAME));Result := True;end;// 释放 HandleCloseHandle(pi.hProcess);CloseHandle(pi.hThread);end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin// 退出时向内嵌程序发关闭消息if hWin > 0 then PostMessage(hWin, WM_CLOSE, 0, 0);end;procedure TForm1.FormCreate(Sender: TObject);constApp = 'C:\Windows\Notepad.exe';beginpnlApp.Align := alClient;// 启动内嵌程序if not RunAppInPanel(App, pnlApp.Handle, hWin) then ShowMessage('App not found');end;procedure TForm1.FormResize(Sender: TObject);begin// 保持内嵌程序充满 pnlAppif hWin <> 0 then MoveWindow(hWin, 0, 0, pnlApp.ClientWidth, pnlApp.ClientHeight, True);end;end.这种方式也存在几个问题:问题1:如果程序有Splash窗体先显示,则实际窗体无法内嵌,因为仅将Splash窗体的父窗体设定为本程序的控件句柄,后续窗体无法设定。

flash与vc交互

flash与vc交互

利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢?^_^,其实,要做到这点也不难。

在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。

我们分为两步来走:一、将flash动画嵌入自己的程序中,这一点比较简单,使用shockwave flash object控件就可以实现。

这个控件在安装flash的时候就装到你的系统上了,flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx,在系统目录里面应该可以找得到;二、在flash动画和自己的程序中传递消息进行交互。

这一点也是要通过控件来实现,不过得在flash动画和自己的程序中做些处理。

下面我们来具体说明操作过程:一、将flash动画嵌入自己的程序中。

所有在windows平台上的支持ocx控件的软件开发工具都可以做到这一点。

我使用的是vc++6.0,就以这个的做法来介绍。

1、检查你的系统上是否有shockwave flash object控件并已注册。

如果你的系统上装有flash,则就有这个控件,否则的话,可以到网上下载一个过来安装。

2、新建一个MFC对话框应用程序,假设命名为PlayFlash。

3、添加shockwave flash object控件。

建立对话框应用程序后,在主菜单里选择“工程->添加工程->components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++components。

选择第一文件夹后会出现一系列系统上已注册过的activex控件。

在里面选择shockwave flash object(如果你系统上没这个控件,这里面就找不到了,可以去download个下来安装),点击insert将它插入工程。

ShockwaveFlashObjects

ShockwaveFlashObjects

unit ShockwaveFlashObjects_TLB;// ************************************************************************ //// WARNING// -------// The types declared in this file were generated from data read from a// Type Library. If this type library is explicitly or indirectly (via// another type library referring to this type library) re-imported, or the// 'Refresh' command of the Type Library Editor activated while editing the// Type Library, the contents of this file will be regenerated and all// manual modifications will be lost.// ************************************************************************ //// PASTLWTR : 1.2// File generated on 2011-8-21 PM 06:58:15 from Type Library described below.// ************************************************************************ // // Type Lib: C:\WINDOWS\system32\Macromed\Flash\Flash10p.ocx (1)// LIBID: {D27CDB6B-AE6D-11CF-96B8-444553540000}// LCID: 0// Helpfile:// HelpString: Shockwave Flash// DepndLst:// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)// Errors:// Hint: Parameter 'label' of IShockwaveFlash.TGotoLabel changed to 'label_'// Hint: Parameter 'property' of IShockwaveFlash.TSetProperty changed to 'property_'// Hint: Parameter 'property' of IShockwaveFlash.TGetProperty changed to 'property_'// Hint: Parameter 'label' of IShockwaveFlash.TCallLabel changed to 'label_'// Hint: Parameter 'property' of IShockwaveFlash.TSetPropertyNum changed to 'property_'// Hint: Parameter 'property' of IShockwaveFlash.TGetPropertyNum changed to 'property_'// Hint: Parameter 'property' of IShockwaveFlash.TGetPropertyAsNumber changed to 'property_'// ************************************************************************ // {$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. {$WARN SYMBOL_PLATFORM OFF}{$WRITEABLECONST ON}{$V ARPROPSETTER ON}interfaceuses Windows, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants;// GUIDS declared in the TypeLibrary. Following prefixes are used:// Type Libraries : LIBID_xxxx// CoClasses : CLASS_xxxx// DISPInterfaces : DIID_xxxx// Non-DISP interfaces: IID_xxxx// *********************************************************************//const// TypeLibrary Major and minor versionsShockwaveFlashObjectsMajorVersion = 1;ShockwaveFlashObjectsMinorVersion = 0;LIBID_ShockwaveFlashObjects: TGUID = '{D27CDB6B-AE6D-11CF-96B8-444553540000}';IID_IShockwaveFlash: TGUID = '{D27CDB6C-AE6D-11CF-96B8-444553540000}';IID_ICanHandleException: TGUID = '{C5598E60-B307-11D1-B27D-006008C3FBFB}'; DIID__IShockwaveFlashEvents: TGUID = '{D27CDB6D-AE6D-11CF-96B8-444553540000}'; CLASS_ShockwaveFlash: TGUID = '{D27CDB6E-AE6D-11CF-96B8-444553540000}';IID_IFlashFactory: TGUID = '{D27CDB70-AE6D-11CF-96B8-444553540000}';IID_IDispatchEx: TGUID = '{A6EF9860-C720-11D0-9337-00A0C90DCAA9}';IID_IFlashObjectInterface: TGUID = '{D27CDB72-AE6D-11CF-96B8-444553540000}';IID_IServiceProvider: TGUID = '{6D5140C1-7436-11CE-8034-00AA006009FA}';CLASS_FlashObjectInterface: TGUID = '{D27CDB71-AE6D-11CF-96B8-444553540000}'; IID_IFlashObject: TGUID = '{86230738-D762-4C50-A2DE-A753E5B1686F}';CLASS_FlashObject: TGUID = '{E0920E11-6B65-4D5D-9C58-B1FC5C07DC43}';type// *********************************************************************//// Forward declaration of types defined in TypeLibrary// *********************************************************************// IShockwaveFlash = interface;IShockwaveFlashDisp = dispinterface;ICanHandleException = interface;_IShockwaveFlashEvents = dispinterface;IFlashFactory = interface;IDispatchEx = interface;IFlashObjectInterface = interface;IServiceProvider = interface;IFlashObject = interface;IFlashObjectDisp = dispinterface;// *********************************************************************//// Declaration of CoClasses defined in Type Library// (NOTE: Here we map each CoClass to its Default Interface)ShockwaveFlash = IShockwaveFlash;FlashObjectInterface = IFlashObjectInterface;FlashObject = IFlashObject;// *********************************************************************//// Declaration of structures, unions and aliases.// *********************************************************************// PUserType1 = ^EXCEPINFO; {*}POleVariant1 = ^OleVariant; {*}PUserType2 = ^DISPPARAMS; {*}PSYSUINT1 = ^SYSUINT; {*}PUserType3 = ^TGUID; {*}// *********************************************************************//// Interface: IShockwaveFlash// Flags: (4416) Dual OleAutomation Dispatchable// GUID: {D27CDB6C-AE6D-11CF-96B8-444553540000}// *********************************************************************// IShockwaveFlash = interface(IDispatch)['{D27CDB6C-AE6D-11CF-96B8-444553540000}']function Get_ReadyState: Integer; safecall;function Get_TotalFrames: Integer; safecall;function Get_Playing: WordBool; safecall;procedure Set_Playing(pVal: WordBool); safecall;function Get_Quality: SYSINT; safecall;procedure Set_Quality(pVal: SYSINT); safecall;function Get_ScaleMode: SYSINT; safecall;procedure Set_ScaleMode(pVal: SYSINT); safecall;function Get_AlignMode: SYSINT; safecall;procedure Set_AlignMode(pVal: SYSINT); safecall;function Get_BackgroundColor: Integer; safecall;procedure Set_BackgroundColor(pVal: Integer); safecall;function Get_Loop: WordBool; safecall;procedure Set_Loop(pV al: WordBool); safecall;function Get_Movie: WideString; safecall;procedure Set_Movie(const pVal: WideString); safecall;function Get_FrameNum: Integer; safecall;procedure Set_FrameNum(pVal: Integer); safecall;procedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer); safecall;procedure Zoom(factor: SYSINT); safecall;procedure Pan(x: Integer; y: Integer; mode: SYSINT); safecall;procedure Play; safecall;procedure Stop; safecall;procedure Back; safecall;procedure Forward; safecall;procedure Rewind; safecall;procedure StopPlay; safecall;procedure GotoFrame(FrameNum: Integer); safecall;function CurrentFrame: Integer; safecall;function IsPlaying: WordBool; safecall;function PercentLoaded: Integer; safecall;function FrameLoaded(FrameNum: Integer): WordBool; safecall;function FlashVersion: Integer; safecall;function Get_WMode: WideString; safecall;procedure Set_WMode(const pVal: WideString); safecall;function Get_SAlign: WideString; safecall;procedure Set_SAlign(const pVal: WideString); safecall;function Get_Menu: WordBool; safecall;procedure Set_Menu(pVal: WordBool); safecall;function Get_Base: WideString; safecall;procedure Set_Base(const pVal: WideString); safecall;function Get_Scale: WideString; safecall;procedure Set_Scale(const pVal: WideString); safecall;function Get_DeviceFont: WordBool; safecall;procedure Set_DeviceFont(pVal: WordBool); safecall;function Get_EmbedMovie: WordBool; safecall;procedure Set_EmbedMovie(pVal: WordBool); safecall;function Get_BGColor: WideString; safecall;procedure Set_BGColor(const pVal: WideString); safecall;function Get_Quality2: WideString; safecall;procedure Set_Quality2(const pVal: WideString); safecall;procedure LoadMovie(layer: SYSINT; const url: WideString); safecall;procedure TGotoFrame(const target: WideString; FrameNum: Integer); safecall;procedure TGotoLabel(const target: WideString; const label_: WideString); safecall;function TCurrentFrame(const target: WideString): Integer; safecall;function TCurrentLabel(const target: WideString): WideString; safecall;procedure TPlay(const target: WideString); safecall;procedure TStopPlay(const target: WideString); safecall;procedure SetVariable(const name: WideString; const value: WideString); safecall;function GetVariable(const name: WideString): WideString; safecall;procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString); safecall;function TGetProperty(const target: WideString; property_: SYSINT): WideString; safecall;procedure TCallFrame(const target: WideString; FrameNum: SYSINT); safecall;procedure TCallLabel(const target: WideString; const label_: WideString); safecall;procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double); safecall;function TGetPropertyNum(const target: WideString; property_: SYSINT): Double; safecall;function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double; safecall;function Get_SWRemote: WideString; safecall;procedure Set_SWRemote(const pVal: WideString); safecall;function Get_FlashVars: WideString; safecall;procedure Set_FlashVars(const pVal: WideString); safecall;function Get_AllowScriptAccess: WideString; safecall;procedure Set_AllowScriptAccess(const pVal: WideString); safecall;function Get_MovieData: WideString; safecall;procedure Set_MovieData(const pVal: WideString); safecall;function Get_InlineData: IUnknown; safecall;procedure Set_InlineData(const ppIUnknown: IUnknown); safecall;function Get_SeamlessTabbing: WordBool; safecall;procedure Set_SeamlessTabbing(pVal: WordBool); safecall;procedure EnforceLocalSecurity; safecall;function Get_Profile: WordBool; safecall;procedure Set_Profile(pVal: WordBool); safecall;function Get_ProfileAddress: WideString; safecall;procedure Set_ProfileAddress(const pV al: WideString); safecall;function Get_ProfilePort: Integer; safecall;procedure Set_ProfilePort(pVal: Integer); safecall;function CallFunction(const request: WideString): WideString; safecall;procedure SetReturnValue(const returnValue: WideString); safecall;procedure DisableLocalSecurity; safecall;function Get_AllowNetworking: WideString; safecall;procedure Set_AllowNetworking(const pVal: WideString); safecall;function Get_AllowFullScreen: WideString; safecall;procedure Set_AllowFullScreen(const pVal: WideString); safecall;property ReadyState: Integer read Get_ReadyState;property TotalFrames: Integer read Get_TotalFrames;property Playing: WordBool read Get_Playing write Set_Playing;property Quality: SYSINT read Get_Quality write Set_Quality;property ScaleMode: SYSINT read Get_ScaleMode write Set_ScaleMode;property AlignMode: SYSINT read Get_AlignMode write Set_AlignMode;property BackgroundColor: Integer read Get_BackgroundColor write Set_BackgroundColor;property Loop: WordBool read Get_Loop write Set_Loop;property Movie: WideString read Get_Movie write Set_Movie;property FrameNum: Integer read Get_FrameNum write Set_FrameNum;property WMode: WideString read Get_WMode write Set_WMode;property SAlign: WideString read Get_SAlign write Set_SAlign;property Menu: WordBool read Get_Menu write Set_Menu;property Base: WideString read Get_Base write Set_Base;property Scale: WideString read Get_Scale write Set_Scale;property DeviceFont: WordBool read Get_DeviceFont write Set_DeviceFont;property EmbedMovie: WordBool read Get_EmbedMovie write Set_EmbedMovie;property BGColor: WideString read Get_BGColor write Set_BGColor;property Quality2: WideString read Get_Quality2 write Set_Quality2;property SWRemote: WideString read Get_SWRemote write Set_SWRemote;property FlashVars: WideString read Get_FlashVars write Set_FlashVars;property AllowScriptAccess: WideString read Get_AllowScriptAccess write Set_AllowScriptAccess;property MovieData: WideString read Get_MovieData write Set_MovieData;property InlineData: IUnknown read Get_InlineData write Set_InlineData;property SeamlessTabbing: WordBool read Get_SeamlessTabbing write Set_SeamlessTabbing;property Profile: WordBool read Get_Profile write Set_Profile;property ProfileAddress: WideString read Get_ProfileAddress write Set_ProfileAddress;property ProfilePort: Integer read Get_ProfilePort write Set_ProfilePort;property AllowNetworking: WideString read Get_AllowNetworking write Set_AllowNetworking;property AllowFullScreen: WideString read Get_AllowFullScreen write Set_AllowFullScreen;end;// *********************************************************************//// DispIntf: IShockwaveFlashDisp// Flags: (4416) Dual OleAutomation Dispatchable// GUID: {D27CDB6C-AE6D-11CF-96B8-444553540000}// *********************************************************************// IShockwaveFlashDisp = dispinterface['{D27CDB6C-AE6D-11CF-96B8-444553540000}']property ReadyState: Integer readonly dispid -525;property TotalFrames: Integer readonly dispid 124;property Playing: WordBool dispid 125;property Quality: SYSINT dispid 105;property ScaleMode: SYSINT dispid 120;property AlignMode: SYSINT dispid 121;property BackgroundColor: Integer dispid 123;property Loop: WordBool dispid 106;property Movie: WideString dispid 102;property FrameNum: Integer dispid 107;procedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer); dispid 109;procedure Zoom(factor: SYSINT); dispid 118;procedure Pan(x: Integer; y: Integer; mode: SYSINT); dispid 119;procedure Play; dispid 112;procedure Stop; dispid 113;procedure Back; dispid 114;procedure Forward; dispid 115;procedure Rewind; dispid 116;procedure StopPlay; dispid 126;procedure GotoFrame(FrameNum: Integer); dispid 127;function CurrentFrame: Integer; dispid 128;function IsPlaying: WordBool; dispid 129;function PercentLoaded: Integer; dispid 130;function FrameLoaded(FrameNum: Integer): WordBool; dispid 131;function FlashVersion: Integer; dispid 132;property WMode: WideString dispid 133;property SAlign: WideString dispid 134;property Menu: WordBool dispid 135;property Base: WideString dispid 136;property Scale: WideString dispid 137;property DeviceFont: WordBool dispid 138;property EmbedMovie: WordBool dispid 139;property BGColor: WideString dispid 140;property Quality2: WideString dispid 141;procedure LoadMovie(layer: SYSINT; const url: WideString); dispid 142;procedure TGotoFrame(const target: WideString; FrameNum: Integer); dispid 143;procedure TGotoLabel(const target: WideString; const label_: WideString); dispid 144;function TCurrentFrame(const target: WideString): Integer; dispid 145;function TCurrentLabel(const target: WideString): WideString; dispid 146;procedure TPlay(const target: WideString); dispid 147;procedure TStopPlay(const target: WideString); dispid 148;procedure SetVariable(const name: WideString; const value: WideString); dispid 151;function GetVariable(const name: WideString): WideString; dispid 152;procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString); dispid 153;function TGetProperty(const target: WideString; property_: SYSINT): WideString; dispid 154;procedure TCallFrame(const target: WideString; FrameNum: SYSINT); dispid 155;procedure TCallLabel(const target: WideString; const label_: WideString); dispid 156;procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double); dispid 157;function TGetPropertyNum(const target: WideString; property_: SYSINT): Double; dispid 158;function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double; dispid 172;property SWRemote: WideString dispid 159;property FlashVars: WideString dispid 170;property AllowScriptAccess: WideString dispid 171;property MovieData: WideString dispid 190;property InlineData: IUnknown dispid 191;property SeamlessTabbing: WordBool dispid 192;procedure EnforceLocalSecurity; dispid 193;property Profile: WordBool dispid 194;property ProfileAddress: WideString dispid 195;property ProfilePort: Integer dispid 196;function CallFunction(const request: WideString): WideString; dispid 198;procedure SetReturnValue(const returnValue: WideString); dispid 199;procedure DisableLocalSecurity; dispid 200;property AllowNetworking: WideString dispid 201;property AllowFullScreen: WideString dispid 202;end;// *********************************************************************//// Interface: ICanHandleException// Flags: (0)// GUID: {C5598E60-B307-11D1-B27D-006008C3FBFB}// *********************************************************************// ICanHandleException = interface(IUnknown)['{C5598E60-B307-11D1-B27D-006008C3FBFB}']function CanHandleException(var pExcepInfo: EXCEPINFO; var pvar: OleVariant): HResult; stdcall;end;// *********************************************************************//// DispIntf: _IShockwaveFlashEvents// Flags: (4112) Hidden Dispatchable// GUID: {D27CDB6D-AE6D-11CF-96B8-444553540000}// *********************************************************************//_IShockwaveFlashEvents = dispinterface['{D27CDB6D-AE6D-11CF-96B8-444553540000}']procedure OnReadyStateChange(newState: Integer); dispid -609;procedure OnProgress(percentDone: Integer); dispid 1958;procedure FSCommand(const command: WideString; const args: WideString); dispid 150;procedure FlashCall(const request: WideString); dispid 197;end;// *********************************************************************//// Interface: IFlashFactory// Flags: (0)// GUID: {D27CDB70-AE6D-11CF-96B8-444553540000}// *********************************************************************//IFlashFactory = interface(IUnknown)['{D27CDB70-AE6D-11CF-96B8-444553540000}']end;// *********************************************************************//// Interface: IDispatchEx// Flags: (4096) Dispatchable// GUID: {A6EF9860-C720-11D0-9337-00A0C90DCAA9}// *********************************************************************// IDispatchEx = interface(IDispatch)['{A6EF9860-C720-11D0-9337-00A0C90DCAA9}']function GetDispID(const bstrName: WideString; grfdex: LongWord; out pid: Integer): HResult; stdcall;function RemoteInvokeEx(id: Integer; lcid: LongWord; dwFlags: LongWord; var pdp: DISPPARAMS;out pvarRes: OleVariant; out pei: EXCEPINFO;const pspCaller: IServiceProvider; cvarRefArg: SYSUINT;var rgiRefArg: SYSUINT; var rgvarRefArg: OleVariant): HResult; stdcall;function DeleteMemberByName(const bstrName: WideString; grfdex: LongWord): HResult; stdcall;function DeleteMemberByDispID(id: Integer): HResult; stdcall;function GetMemberProperties(id: Integer; grfdexFetch: LongWord; out pgrfdex: LongWord): HResult; stdcall;function GetMemberName(id: Integer; out pbstrName: WideString): HResult; stdcall;function GetNextDispID(grfdex: LongWord; id: Integer; out pid: Integer): HResult; stdcall;function GetNameSpaceParent(out ppunk: IUnknown): HResult; stdcall;end;// *********************************************************************//// Interface: IFlashObjectInterface// Flags: (4096) Dispatchable// GUID: {D27CDB72-AE6D-11CF-96B8-444553540000}// *********************************************************************// IFlashObjectInterface = interface(IDispatchEx)['{D27CDB72-AE6D-11CF-96B8-444553540000}']end;// *********************************************************************//// Interface: IServiceProvider// Flags: (0)// GUID: {6D5140C1-7436-11CE-8034-00AA006009FA}// *********************************************************************// IServiceProvider = interface(IUnknown)['{6D5140C1-7436-11CE-8034-00AA006009FA}']function RemoteQueryService(var guidService: TGUID; var riid: TGUID; out ppvObject: IUnknown): HResult; stdcall;end;// *********************************************************************//// Interface: IFlashObject// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable// GUID: {86230738-D762-4C50-A2DE-A753E5B1686F}// *********************************************************************// IFlashObject = interface(IDispatchEx)['{86230738-D762-4C50-A2DE-A753E5B1686F}']end;// *********************************************************************//// DispIntf: IFlashObjectDisp// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable// GUID: {86230738-D762-4C50-A2DE-A753E5B1686F}// *********************************************************************// IFlashObjectDisp = dispinterface['{86230738-D762-4C50-A2DE-A753E5B1686F}']procedure GetDispID(const bstrName: WideString; grfdex: LongWord; out pid: Integer); dispid 1610743808;procedure RemoteInvokeEx(id: Integer; lcid: LongWord; dwFlags: LongWord;var pdp: {??DISPPARAMS}OleVariant; out pvarRes: OleVariant;out pei: {??EXCEPINFO}OleVariant; const pspCaller: IServiceProvider;cvarRefArg: SYSUINT; var rgiRefArg: SYSUINT;var rgvarRefArg: OleVariant); dispid 1610743809;procedure DeleteMemberByName(const bstrName: WideString; grfdex: LongWord); dispid 1610743810;procedure DeleteMemberByDispID(id: Integer); dispid 1610743811;procedure GetMemberProperties(id: Integer; grfdexFetch: LongWord; out pgrfdex: LongWord); dispid 1610743812;procedure GetMemberName(id: Integer; out pbstrName: WideString); dispid 1610743813;procedure GetNextDispID(grfdex: LongWord; id: Integer; out pid: Integer); dispid 1610743814;procedure GetNameSpaceParent(out ppunk: IUnknown); dispid 1610743815;end;// *********************************************************************//// OLE Control Proxy class declaration// Control Name : TShockwaveFlash// Help String : Shockwave Flash// Default Interface: IShockwaveFlash// Def. Intf. DISP? : No// Event Interface: _IShockwaveFlashEvents// TypeFlags : (2) CanCreate// *********************************************************************// TShockwaveFlashOnReadyStateChange = procedure(ASender: TObject; newState: Integer) of object;TShockwaveFlashOnProgress = procedure(ASender: TObject; percentDone: Integer) of object; TShockwaveFlashFSCommand = procedure(ASender: TObject; const command: WideString;const args: WideString) of object;TShockwaveFlashFlashCall = procedure(ASender: TObject; const request: WideString) of object;TShockwaveFlash = class(TOleControl)privateFOnReadyStateChange: TShockwaveFlashOnReadyStateChange;FOnProgress: TShockwaveFlashOnProgress;FOnFSCommand: TShockwaveFlashFSCommand;FOnFlashCall: TShockwaveFlashFlashCall;FIntf: IShockwaveFlash;function GetControlInterface: IShockwaveFlash;protectedprocedure CreateControl;procedure InitControlData; override;function Get_InlineData: IUnknown;procedure Set_InlineData(const ppIUnknown: IUnknown);publicprocedure SetZoomRect(left: Integer; top: Integer; right: Integer; bottom: Integer);procedure Zoom(factor: SYSINT);procedure Pan(x: Integer; y: Integer; mode: SYSINT);procedure Play;procedure Stop;procedure Back;procedure Forward;procedure Rewind;procedure StopPlay;procedure GotoFrame(FrameNum: Integer);function CurrentFrame: Integer;function IsPlaying: WordBool;function PercentLoaded: Integer;function FrameLoaded(FrameNum: Integer): WordBool;function FlashVersion: Integer;procedure LoadMovie(layer: SYSINT; const url: WideString);procedure TGotoFrame(const target: WideString; FrameNum: Integer);procedure TGotoLabel(const target: WideString; const label_: WideString);function TCurrentFrame(const target: WideString): Integer;function TCurrentLabel(const target: WideString): WideString;procedure TPlay(const target: WideString);procedure TStopPlay(const target: WideString);procedure SetVariable(const name: WideString; const value: WideString);function GetVariable(const name: WideString): WideString;procedure TSetProperty(const target: WideString; property_: SYSINT; const value: WideString);function TGetProperty(const target: WideString; property_: SYSINT): WideString;procedure TCallFrame(const target: WideString; FrameNum: SYSINT);procedure TCallLabel(const target: WideString; const label_: WideString);procedure TSetPropertyNum(const target: WideString; property_: SYSINT; value: Double);function TGetPropertyNum(const target: WideString; property_: SYSINT): Double;function TGetPropertyAsNumber(const target: WideString; property_: SYSINT): Double;procedure EnforceLocalSecurity;function CallFunction(const request: WideString): WideString;procedure SetReturnValue(const returnValue: WideString);procedure DisableLocalSecurity;property ControlInterface: IShockwaveFlash read GetControlInterface;property DefaultInterface: IShockwaveFlash read GetControlInterface;property ReadyState: Integer index -525 read GetIntegerProp;property TotalFrames: Integer index 124 read GetIntegerProp;property InlineData: IUnknown index 191 read GetIUnknownProp write SetIUnknownProp; publishedproperty Anchors;property TabStop;property Align;property DragCursor;property DragMode;property ParentShowHint;property PopupMenu;property ShowHint;property TabOrder;property Visible;property OnDragDrop;property OnDragOver;property OnEndDrag;property OnEnter;property OnExit;property OnStartDrag;property Playing: WordBool index 125 read GetWordBoolProp write SetWordBoolProp stored False;property Quality: Integer index 105 read GetIntegerProp write SetIntegerProp stored False;property ScaleMode: Integer index 120 read GetIntegerProp write SetIntegerProp stored False;property AlignMode: Integer index 121 read GetIntegerProp write SetIntegerProp stored False;property BackgroundColor: Integer index 123 read GetIntegerProp write SetIntegerProp stored False;property Loop: WordBool index 106 read GetWordBoolProp write SetWordBoolProp stored False;property Movie: WideString index 102 read GetWideStringProp write SetWideStringProp stored False;property FrameNum: Integer index 107 read GetIntegerProp write SetIntegerProp stored False;property WMode: WideString index 133 read GetWideStringProp write SetWideStringProp stored False;property SAlign: WideString index 134 read GetWideStringProp write SetWideStringProp stored False;property Menu: WordBool index 135 read GetWordBoolProp write SetWordBoolProp stored False;property Base: WideString index 136 read GetWideStringProp write SetWideStringProp stored False;property Scale: WideString index 137 read GetWideStringProp write SetWideStringProp stored False;property DeviceFont: WordBool index 138 read GetWordBoolProp write SetWordBoolProp stored False;property EmbedMovie: WordBool index 139 read GetWordBoolProp write SetWordBoolProp stored False;property BGColor: WideString index 140 read GetWideStringProp write SetWideStringProp stored False;property Quality2: WideString index 141 read GetWideStringProp write SetWideStringProp stored False;property SWRemote: WideString index 159 read GetWideStringProp write SetWideStringProp stored False;property FlashVars: WideString index 170 read GetWideStringProp write SetWideStringProp stored False;property AllowScriptAccess: WideString index 171 read GetWideStringProp write SetWideStringProp stored False;property MovieData: WideString index 190 read GetWideStringProp write SetWideStringProp stored False;property SeamlessTabbing: WordBool index 192 read GetWordBoolProp write SetWordBoolProp stored False;property Profile: WordBool index 194 read GetWordBoolProp write SetWordBoolProp stored。

Flash与数据库交互帮助文档

Flash与数据库交互帮助文档

Flash与数据库交互技术的帮助文档——作者:王禹稼、李寅前言:该项技术对于个人的要求不是很高,简单的应用无需团队合作,但是作为一种现存的技术还是有必要了解一下它的,它本身并不是单独存在的,而是依靠多个技术结合而成的,主要涉及到的技术有Flash动画制作、ActionScript3.0编程、JSP、Servlet、HTML、XML、JDBC、JavaSE中dom4j类的使用。

总体来说技术含量一般,但是比较麻烦的是涉及的技术比较多,协调开发就会遇到许多意想不到的障碍,为了解决这些问题,才编撰了这篇文档。

网上有几种方式,本文档只是列举一种,只完成一次交互工作,仅供参考。

开发意义:Flash与数据库的进行数据交互有其存在的意义,例如:在有些项目中,一些应用需要动态的展示某种过程变化,或是想让画面看起来更美观人性化并且还需要显示底层数据。

面对这种要求我们就需要考虑使用这项技术了,首先Flash动画制作对个人的要求并不是很高,因为Adobe公司的Flash已经经历了数个版本的更新,无论是从功能上还是操作的人性化上来说都已经十分的成熟了,因此学习起来不会花费很多的时间;如果Flash想要与外界交流,单靠本身的ActionScript脚本语言是不够的,因为ActionScript3.0目前对数据库的支持还是不够好,所以就要考虑间接地方式了。

正文:一、开发流程总览:Flash与数据库交互的方式有很多,本文档只选择一种:Flash通过ActionScript解析XML文件获取数据,而XML文件则是由Servlet生成在服务器端的工程路径下,该XML文件的内容就是通过JDBC查出来的数据,而ActionScript访问XML文件的URL 是JSP页面动态的给Flash以参数的形式传入的。

根据以上说明,开发就可以分工进行了,美工主要负责Flash的制作,AcrionScript 的编写视情况而定,美工本身有能力的可以全权负责,这样便于开发,再者就可以让程序员来完成,只需要获得的美工提供动态显示数据的元件的实例名称即可,再有就是HTML页面的编写,视情况而定,也不是必须的;程序员主要是负责Servlet、JDBC以及JSP页面的编写工作。

DELPHI+Flash组合下多媒体CAI开发的特性与技巧

DELPHI+Flash组合下多媒体CAI开发的特性与技巧

略谈DELPHI+Flash组合下多媒体CAI开发的特性与技巧提纲:一、windows平台下最优多媒体制作工具组合DELPHI+FLASH1、基于脚本的多媒体编辑工具2、基于流程的多媒体编辑工具3、基于时序的多媒体编辑工具4、基于可视化编程语言的编辑软件二、Delphi+Flash平台实现多媒体CAI制作的一些新特性1、交互界面的实现2、图像过渡的实现3、 Gif、AVI、MOV、MP3、Mpeg等多媒体元素的引用4、 MsAgent技术的应用5、 TTS技术的应用6、 swf控制宿主程序的行为(1) 宿主程序控制SWF的播放(2) swf控制宿主程序的行为(3) 宿主程序和swf互相传递变量7、最好的解决方案三、处理多媒体CAI的一些技巧1、让多媒体CAI适应不同的屏幕2、声音处理的技巧(1)怎样录音(2)避免使用MIDI(3)必须使用MP3吗?(4)如何将其他文件转为WAV文件?(5)实现多声道3、更加直观的拖动操作4、更高效的动画实现方案:Moho+Flash四、多媒体CAI制作中需要注意的一些问题1、界面要有亲和性2、要重视美工在多媒体制作中的作用3、脚本比制作更重要4、注释、文档要完备5、要注意版本控制6、提高所创作素材的重用率7、测试、测试、再测试多媒体(MULTIMEDIUM)是利用计算机或者其他电子手段传递的文本、图形、声音、动画、图像和视频信息的组合,多媒体CAI 就是多媒体环境下的CAI课件,它功能更强,适用于个体化教学环境,他所提供的教学环境更能激发学生学习的主动性和积极性,提高教学效率,改善教学效果。

多媒体CAI最显著的特点是集成性和交互性。

下面,结合作者制作多媒体CAI的经历,谈一谈WINDOW平台下多媒体制作工具的选择以及使用DELPHI+Flash工具组合下制作多媒体CAI的一些技巧以及需要注意的问题。

一、windows平台下最优多媒体制作工具组合DELPHI+FLASH制作多媒体CAI的著作工具(编辑软件)是一种高级的软件程序或者命令集合。

2024版Delphi程序设计[1]

2024版Delphi程序设计[1]

数据库性能。
21
05
Delphi网络编程
Hale Waihona Puke 2024/1/2922
网络通信原理简介
客户端/服务器模型
网络通信通常采用客户端/服务器模型,其中 客户端发送请求,服务器响应请求并返回数据。
2024/1/29
套接字编程
网络通信基于套接字(socket)进行,套接字是不同 计算机之间进行通信的端点。
传输协议
常见的传输协议包括TCP和UDP。TCP提供可 靠的、面向连接的通信服务,而UDP提供无 连接的、不可靠的通信服务。
23
TCP/IP协议在Delphi中实现
2024/1/29
使用WinSock控件
Delphi中可以使用WinSock控件实现TCP/IP协议,通过设置控件 属性并调用相关方法即可建立客户端或服务器应用程序。
熟悉窗体的事件处理机制,如加载、关闭、大小改变 等事件。
2024/1/29
13
常用控件介绍
基本控件
学习Delphi中常用的基本控件,如按钮、标签、 文本框等。
高级控件
了解高级控件的使用,如列表框、树形视图、 表格等。
2024/1/29
控件属性与事件
掌握控件的常用属性和事件,如控件的名称、大小、颜色、单击事件等。
编译器异常
编译时检测到的错误,如语法错误或类型不匹配。通过编译器提 示信息进行修复。
自定义异常
用户自定义的异常类型,用于特定业务逻辑的错误处理。通过创 建自定义异常类实现。
33
自定义异常处理机制
创建自定义异常类
继承自Exception类或其子类,添加自定义 属性和方法。
抛出自定义异常
在适当的位置使用raise语句抛出异常,并传 递异常实例。

2024版Delphi程序设计实用教程第2版

2024版Delphi程序设计实用教程第2版

Delphi程序设计实用教程第2版•Delphi程序设计概述•Delphi语言基础•面向对象编程基础•窗体和控件应用•文件操作与数据库访问技术•网络编程技术•调试、优化和发布部署•实战项目:XXX系统设计与实现Delphi程序设计概述Delphi是一种高级编程语言,由Borland公司开发,以Object Pascal为基础。

Delphi支持面向对象的程序设计,具有丰富的组件库和强大的开发环境。

Delphi广泛应用于Windows桌面应用程序、Web应用程序、数据库应用程序等开发领域。

Delphi语言简介下载并安装Delphi开发环境,选择合适的版本和组件库。

配置开发环境,包括设置编译器选项、调试器选项、代码编辑器风格等。

安装和配置数据库连接驱动,以便在Delphi中访问数据库。

Delphi开发环境安装与配置第一个Delphi程序创建一个新的Delphi项目,选择适当编译和运行程序,查看程序执行结果。

的项目类型和模板。

在代码编辑器中编写程序代码,实现简单的功能,如输出“HelloWorld”。

010204 Delphi程序结构Delphi程序由项目文件、单元文件和窗体文件等组成。

项目文件包含程序的整体设置和引用单元的信息。

单元文件包含程序中的代码和数据,是实现程序功能的基本单元。

窗体文件包含程序中的界面元素和事件处理代码,是实现用户交互的重要部分。

03Delphi语言基础包括Integer 、Boolean 、Char 、String 、Float 等常用类型。

标准数据类型如数组、记录、集合、文件等复合数据类型。

构造类型用于访问内存地址的特殊数据类型。

指针类型可存储不同类型数据的灵活数据类型。

变体类型Delphi 数据类型介绍如何在Delphi 中声明变量并为其赋值。

变量声明与赋值讲解常量的概念、定义方法及在程序中的应用。

常量定义与使用阐述局部变量、全局变量的概念及其作用范围。

变量作用域变量与常量运算符与表达式算术运算符介绍加、减、乘、除等基本算术运算。

delphi与网页交互

delphi与网页交互
pDisp: IDispatch; var URL: OleVariant);
var
hr: HResult;
CustDoc: ICustomDoc;
begin
hr := WebBrowser1.Document.QueryInterface(ICustomDoc, CustDoc);
if hr = S_OK then
了解了这些特点,我们就可以在实际应用开发中,适时地选择HTML技术。下面举个例子:
一种仪器的管理程序,需要显示该仪器的操作方法文档,包含文字和图片,并要求可以隐藏或显示文档,并能安要求打印。
这个应用中,图文显示、隐藏/显示部分文档、图文打印等需求,都是HTML界面所擅长的,用传统的表单控件实现几乎无法想像。
begin
ShowMessage('成功从HTML中调用Delphi的过程。');
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
Form1: TForm1;
FDocHostUIHandler: TDocHostUIHandler;
...
implementation
...
procedure TForm1.FormCreate(Sender: TObject);
begin
FDocHostUIHandler := TDocHostUIHandler.Create;
var
Doc : IHTMLDocument2;

delphi ActiveX使用方法

delphi ActiveX使用方法

ActiveX 和Web在Windows 操作系统下,有一个重要的机制,就是OLE ,就是可以让某个应用程序(OLE Controller)访问其它应用程序(OLE Server)所提供的功能,这样做的好处是,如果已经有了完成某项功能的程序,你就不必再为某项功能编写特定的应用程序,可以直接通过OLE 调用。

一、制作用Web 调用的ActiveX首先设置一个虚拟目录,定名为Delphi1)进入Delphi,Close all2)New -> Other -> ActiveX -> ActiveX Form ->Name: MyActiveXOK3)出现一个普通的Form界面,放入TButtonTListBoxTEdit三个控件,设计目标是,点Button后ListBox添加一个Edit的内容。

4)Save all 到虚拟目录的ActiveX\Ac2\ 子目录下。

5)双击Button,在Button1Click事件程序下写:ListBox1.items.add(edit1.text);6)这就完成了,保存。

7)Porject -> Build All 编译8)Porject -〉Web Deployment Options 设置分发参数第一项:OCX保存的目录(虚拟目录\ActiveX\ac2\)第二项:OCX保存在哪个相对路径中(http://127.0.0.1/delphi/ActiveX/ac2/)第三项:Delphi产生的HTML 保存路径(虚拟目录\ActiveX\ac2\)Ok9)产生嵌入ActiveXForm的HTML文件Porject -〉Web Deploy现在保存这个工程然后退出观察效果打开IE浏览器,把网址写为:http://127.0.0.1/delphi/activex/ac2/就可以看到下面的文件列表:[To Parent Directory]2000年5月27日9:10 750 MyActiveImpl1.~dfm2000年5月27日9:11 9160 MyActiveImpl1.~pas2000年5月27日9:31 16936 MyActiveImpl1.dcu2000年5月27日9:16 51 MyActiveImpl1.ddp2000年5月27日9:14 778 MyActiveImpl1.dfm2000年5月27日9:15 9307 MyActiveImpl1.pas2000年5月27日9:11 334 MyActiveProj1.~dpr2000年5月27日9:11 6424 MyActiveProj1.~tlb2000年5月27日9:27 386 MyActiveProj1.cfg2000年5月27日9:27 1436 MyActiveProj1.dof2000年5月27日9:11 334 MyActiveProj1.dpr2000年5月27日9:29 382 MyActiveProj1.htm2000年5月27日9:31 477696 MyActiveProj1.ocx2000年5月27日9:27 1836 MyActiveProj1.res2000年5月27日9:11 6424 MyActiveProj1.tlb2000年5月27日9:11 15377 MyActiveProj1_TLB.~pas2000年5月27日9:31 11952 MyActiveProj1_TLB.dcu2000年5月27日9:11 15377 MyActiveProj1_TLB.pas其中:MyActiveProj1.htm 就是刚才内嵌的HTML文件,点击这个超级链接,就可以看到包含ActiveX的网页了。

利用DELPHI多线程机制实现PC机与PLC之间的串行通信

利用DELPHI多线程机制实现PC机与PLC之间的串行通信

利用DELPHI多线程机制实现PC机与PLC之间的串行通信在Delphi中实现PC机与PLC之间的串行通信可以利用Delphi的多线程机制来实现。

下面将介绍详细的步骤。

2. 将TIdSerialPort组件添加到窗体上。

TIdSerialPort是Delphi 中处理串行通信的组件,可以通过Indy控件库进行获取和使用。

3. 在窗体上添加一个Label控件,用于显示接收到的数据。

4. 在窗体上添加一个Edit控件,用于输入要发送的数据。

5. 添加一个Button控件,用于发送数据。

6. 双击Button控件,在OnClick事件中添加以下代码:```delphiprocedure TForm1.Button1Click(Sender: TObject);vardata: string;begindata := Edit1.Text;TThread.CreateAnonymousThreadprocedurebeginIdSerialPort1.WriteLn(data);.Startend;```上述代码创建了一个匿名线程,在线程中使用IdSerialPort1.WriteLn方法向串口发送数据。

7. 双击TIdSerialPort1的OnRxChar事件,在事件处理程序中添加以下代码:```delphiprocedure TForm1.IdSerialPort1RxChar(Sender: TObject; Count: Integer);vardata: string;begindata := IdSerialPort1.ReadLn;TThread.Queue(nil,procedurebeginLabel1.Caption := data;end```上述代码在串口接收到数据时,使用IdSerialPort1.ReadLn方法将接收到的数据读取到data变量中,并使用TThread.Queue方法将显示更新的代码放到主线程中执行,以避免主线程阻塞。

Delphi教程完整版

Delphi教程完整版

整理课件
20
(6)在Delphi集成开发环境中,通过【Help】 |【Customize】命令可以打开【Open Help】 窗口,在该窗口中可以对帮助文件进行管理, 其中包括帮助内容、帮助索引、链接位置和 帮助工程文件等的管理。
1.3 简单Delphi程序设计
Delphi 7编写应用程序包括新建应用程序、 设置窗体属性、添加组件、设置组件属性、 添加事件、编写事件响应代码、编译运行等
Delphi教程
清华大学出版社
整理课件
1
课程介绍
▪ Delphi是著名的Borland公司开发的可 视化软件开发环境,自1995年问世以 来,带来了程序设计中的一场重大变 化。Delphi作为第四代编程语言,具 有简单、高效和功能强大等特点,这 些特点使得它为广大程序开发者所青 睐。
整理课件
2
第1章 Delphi基础知识
1.1 Delphi简介
Delphi作为一种可视化的编程环境,经 历了7代产品的发展历程:
◆ Borland公司在1995年推出了基于 Windows平台的Delphi 1。
◆ Delphi 2新增加的主要功能是对32位编 程的支持。还增加了如数据模块等多种高
效的数据重用功能。
整理课件
3
◆Delphi 3对其组件库进行增强 ,完全支持 ActiveX组件及其创建 。
3.向窗体中添加组件
单击Standard选项卡上的Button组件,将鼠
标指向窗体中的任意位置(标题栏除外),
单击鼠标,即可把Button1组件放入窗体中。
或者直接双击组件面板上的Button组件,也
可以在窗体中添加一个Button1组件。
整理课件
22

amfphp与flash的交互详解

amfphp与flash的交互详解

Amfphp with flash2009-04-24 15:24Amfphp with flashflash连接数据必须透过一些语言例如:PHP,Java,ASP等等的方法,简称“Flash Remoting“,本篇只针对PHP(Amfphp是以PHP为主)。

以下为各种Remoting的官方网址:AMFPHP (方式:PHP , 网址: )OpenAMF(方式:Java , 网址: )WebORB(方式:.NET,Java,Ruby on Rails,网址: )Fluorine(方式:.NET,)简单的说说Flash如何与数据库通讯如下图:首先我们要先去下载AMFPHP的数据夹:网址:/project/showfiles.php?group_id=72483#files在这个地方我们主要是下载AMFPHP1.9,当然我们要下载AMFPHP1.2也可以,但是我不建议使用1.2,因为1.9的功能比1.2强太多了(待会会说),而且他们还有一些明显的差异。

下载好了以后,就把数据夹解压缩放在WebServer的根目录底下就OK了( 例如:Apache的www数据夹里),不需要安装任何东西,然后你只要在网址上输入http://localhost/amfphp/browser/ 你就会看到一个很特别的环境就是debug php的好地方XD,那么我就介绍一下这个环境:这工具debug非常好用,而且还是debug php,还能看到回传结果,而且还能仿真连接数据库接收和发送数据,不怕老实说PHP在Dreamweaver里是没有办法debug的,所以这工具能帮我们节省很多很多时间(要善用)。

那么我们要把写好的PHP放去哪里呢?只要放去amfphp数据夹里的services里面就OK了。

这样我们在上图的那个debug环境下就能看到写好的PHP了。

可是编写的PHP要有一定的规格,因为这是要和flash通讯的,首先第一个就是档案的名称要和里面的Class一样,格式一定要和以下一样:文件名称Counter //文件名称和Class一样class Counter {function() <—-要写的程序}但是在Amfphp1.2和Amfphp1.9有一个区别的地方那就是1.9版本不用在定义$this->methodTable,这个很重要,因为如果你要把1.2的PHP拿来1.9使用是必须把这个定义给拿掉。

delphi form中调用frame窗体内的控件 -回复

delphi form中调用frame窗体内的控件 -回复

delphi form中调用frame窗体内的控件-回复Delphi是一种基于对象的Pascal编程语言,用于开发Windows平台上的可视化应用程序。

其提供了许多方便的功能和组件,使开发者能够快速构建强大和复杂的界面。

在Delphi中,可以使用form窗体和frame窗体来组织和管理界面控件。

在Delphi中,form窗体和frame窗体都可以包含各种控件,例如按钮、标签和输入框等。

当我们需要在form窗体中调用frame窗体内的控件时,可以通过以下步骤完成。

第一步,创建一个新的Delphi应用程序项目。

在Delphi IDE中,选择“文件”菜单,然后选择“新建”->“项目”命令。

在弹出的对话框中,选择“应用程序”模板,然后点击“确定”按钮。

第二步,创建一个新的form窗体。

在项目资源管理器中,右键单击“项目名.dpr”文件(通常为项目名称后缀为.dpr的文件),然后选择“附加”->“新建”->“窗体”命令。

选择“窗体”模板,点击“确定”按钮。

第三步,创建一个新的frame窗体。

在项目资源管理器中,右键单击“项目名.dpr”文件,选择“附加”->“新建”->“框架”命令。

选择“框架”模板,点击“确定”按钮。

第四步,将frame窗体嵌入到form窗体中。

在form窗体的设计视图中,选择“项目”菜单,然后选择“附加”->“窗体”命令。

在弹出的对话框中,选择要嵌入的frame窗体,点击“确定”按钮。

第五步,在form窗体中调用frame窗体内的控件。

在form窗体的代码视图中,找到frame窗体的实例化代码。

通常情况下,Delphi会自动生成一个以“TFrame名”为名字的变量。

例如,如果frame窗体的名称为“Frame1”,则会生成一个名为“Frame1: TFrame1”的变量。

使用这个变量,可以通过以下方式访问frame窗体内的控件:delphiFrame1.控件名.属性:= 值;例如,假设frame窗体内有一个名为“Button1”的按钮,我们可以使用以下代码在form窗体中设置该按钮的可见性:delphiFrame1.Button1.Visible := False;当然,还可以调用按钮的其他属性和方法,例如单击事件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

delphi与flash通信交互的文本简单实现
2008-05-02 16:54
delphi与flash通信交互的文本简单实现
delphi与flash交互通信的优点在于:开发delphi应用程序时充分发挥flash表现力强的特点,只要运用得当,flash开发的色彩斑斓的界面就会出现在delphi应用程序当中,且无需delphi程序员去堆放大量浪费资源的控件。

delphi与flash交互具体存在两个问题:
1、如何能让delphi应用程序接收到flash发来的消息,并处理;
2、怎样能从delphi应用程序向flash传递命令,控制.swf文件的运行。

以下逐一解决
注:我使用的时delphi 7+flash 8, 控件使用原生的TShockwaveFlash(此控件的安装,请参见其它资料),
一、flash向delphi发送消息:
flash向delphi发送消息其实很简单,只需要运用flash中自带的fscommand命令即可,此命令在作者能见到的各版flash中都存在,
尽管后期版本从安全角度考虑不提倡使用它,但在这里此命令我们仍可以大加利用。

例如(在qqp_528flash.swf中):
//flash中的代码
on (click){
fscommand("qqp_528","flash向delphi程序发消息了");
}
------------------
OK,以上代表flash中某一元件的单击事件会触发fscommand命令了,其中参数“qqp_528”是命令,后面的就是命令的值。

以下为在delphi中使用的接收代码:
procedure TFrmMain.Flash1FSCommand(Sender: TObject; const command,
args: WideString);
begin
If Command='qqp_528' Then
Begin
ShowMessage(args);
End;
end;
简单吧,在TShockwaveFlash控件中已经存在了专门接收命令的事件了"OnFSCommand",其它的就很清楚了。

二、delphi向flash传递指令:
delphi方面,执行代码如下:
Flash1.SetVariable('qqp_528toflash','这是delphi向flash传的');
从这一句代码可见,被执行的flash中必需存在变量名为"qqp_528toflash"的元件,应为文本元件(必须),后面是传递的内容。

执行后会在flash中名为qqp_528toflash的文本元件中显示传入的“这是delphi向flash传的”这段内容。

另外注意,以上只是代码的片段,在执行以上代码之前千万别忘了在delphi应用程序中播放flash呀,
播放代码为:
Flash1.LoadMovie(0,'qqp_528flash.swf');
Flash1.Play;
flash与delphi间的通信
2008-07-02 23:39:08| 分类:Flash | 标签:|字号大中小订阅
Author:luhui PublishTime:2005-09-02
flash与delphi间的通信
flash的优势在于图形表现方面,但他不能对系统进行直接的底层操作。

delphi能,但他的界面一般都是灰突突的,想要开发出玫慕缑妗U媸且恍倪垦呐丁?
尤其是在善变的客户面前。

如果两者结合呢?自己想吧。

首先我们还是考虑怎样实现,原理的东西你在delphi中搞懂了,在vb,c#等是一样的。

(1)在delphi中安装控件
swflash.ocx,要能在其他环境中运行flash,一定少不了他。

你可以
在Win98的$Windows\System\Macromed \Flash中或在Win2000中的$Winnt\System32\
Macromed\Flash中找到它。

运行Delphi后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX 文件进行安装。

安装完成后,ActiveX面板里出现TShockwaveFlash控件,这是Delphi对SWFlash.OCX的封装.使你能够在delphi环境中使用delphi的语言控制flash.相关截图:
图片如下:
图片如下:
图片如下:
(2)flash调用delphi
安装好后,你可以把flash控件放到窗体上,做好了把?好,现在讨论怎样通过flash调用delphi中的代码?在flash中有一个函数fscommand()他的说明是这样的:使SWF 文件能够与Flash Player 或承载Flash Player 的程序(如Web 浏览器)进行通讯。

还可使用fscommand 动作将消息传递给Macromedia Director,或者传递给Visual Basic、Visual C++ 和其它可承载ActiveX 控件的
程序。

呵呵,也就是说可以向包含swflash.ocx的外部程序传递参数。

图片如下:
fscommand("mycommand", "msg");中的两个参数可以任意修改,然后你在delphi中判断。

具体代表什么意思只有你知道。

(3)delphi调用flash
可以利用SetVariable('myinfo','val')函数,第一个参数是flash中主场景第一桢可见的变量,第二个参数是你要为变量附的值。

在delphi中如下,设置flash中的一个名为myinfo的变量值为字符串“val”
self.ShockwaveFlash1.SetVariable('myinfo','val');
这个有一个问题需要注意:
当向flash附值的时候,flash怎样知道变量的值已经改变了呢?
一般的做法是通过一个循环不断的检测变量值是否已经改变,这个显然效率很低。

一个更好的做法是
var myval = "";
this.onmyvalchange = function(prop, oldval, newval, userData) {
trace("delphi为myval附的新值为:"+newval);
};
_root.watch("myval", this.onmyvalchange);
利用变量的监视,如上。

(4)其他
开发过程中可能还会遇到很多问题,比如屏蔽右键菜单,在delphi中改变窗体大小flash不能自动刷新等,
//设_root下info变量
sf.SetVariable( '_ ', edtInfo.Text);
//调用_root第1帧这代码,可在其代码中设置值使起作用
sf.TCallFrame( '_root ', 0);
...
或者,edtText为动态文件变量名可试。

相关文档
最新文档