您当前的位置:首页 > 互联网教程

急救,VFP编程。。

发布时间:2025-05-22 06:11:31    发布人:远客网络

急救,VFP编程。。

一、急救,VFP编程。。

在程序的编制过程中,适当地使用声音,可达到意想不到的效果,下面是在VFP中加入声音的几种方法:

用set bell to命令可以直接播放声音,此方法主要适用于给按钮加上声音效果,比如有一个“开始”按钮,要在按下它时能发声,可在其CLICK EVENT中加入如下代码:

其中sound.wav为要播放的声音文件。

Mplayer2.exe是Windows自带的媒体播放器,在VFP中,可使用如下命令来播放声音文件:

Run/n7 c:\progra~1\micros~2\mplayer2.exe"sound.wav"

若想在启动时播放声音,可将该语句放入表单的init事件中。这种方法适宜于用来播放背景音乐,其缺点是播放时,Windows工具栏上有一个最小化后的媒体播放器。

在表单中添加一个OLE对象可按如下顺序:

①新建一个表单,选中表单控件工具栏的OLEcontrol;

②在表单上按下鼠标左键,建立OLE对象,在出现的对话框中选择声音对象,选择以“create form file”方式插入;

③选择要插入的声音文件,确定退出;

④用Doverb方法来执行,其中Doverb(0)用来播放,Doverb(1)用来编辑。例如要在表单启动时同时启动声音,可在表单的init事件中加入如下语句:

thisform.olecontrol1.doverb(0)

4.使用Microsoft Media Player控件

在一个表单中加入声音的顺序如下:

①在VFP中,选择“工具”选单的“选项”;

②在出现的界面中选择“控件”,选中“ActiveX控件”,在选定对话框中选择“Microsoft media player”,确定退出该界面;

③在工具栏中选择“ActiveX控件”,选中“Microsoft media player”控件,在表单上单击鼠标左键,这样就创建了“Microsoft media player”对象;

thisform.olecontrol1.open(〃sound.wav〃)

playcount可用来控制播放的次数;

如想实现重复播放,可在EndOf Stream Event中加入语句:this.play。

这种方法也可以用来播放.avi、.mpeg等文件,只需把上面的“sound.wav”文件改为相应类型的文件即可。

MCI(media control interface:媒体控制接口)是多媒体设备和文件的标准接口。多媒体应用程序可以利用MCI控制各种各样的多媒体设备和文件。

下面通过一个例子说明如何用MCI实现对音频的控制:

①建立一个表单Form1,对表单作如下设置:

DECLARE LONG mciSendString IN C:\WINDOWS\SYSTEM\WINMM.DLL STRING sCom,STRING sReturnString,LONG lReturnLength,LONG lpWnd

DECLARE LONG mciExecute IN C:\WINDOWS\SYSTEM\ WINMM.DLL STRING sCommand

②新建四个按扭,其caption值分别为:“打开”,“播放”,“停止”,“关闭”,分别在各按扭的click事件中加入以下代码:

mciexecute("open c:\mywave\toolbird.wav alias cc")

=mcisendstring("play cc",@buffer,80,0)

=mcisendstring("stop cc",@buffer,80,0)

=mciSendString("close cc",@Buffer,80,0)

二、请问shell编程是什么请高手指点!

1、shell是一个命令处理器(command processor)——是一个读入并解释你输入的命令的程序。除了是一个命令中断器以外,shell还是一个程序设计语言。你可以编写shell可以解释的程序(被称为源程序),这些源程序可以包含shell程序设计命令等等。shell除了解释命令以外,还有其他工作,它也可以配置和编程。shell拥有自己的语言允许用户编写程序并以一种复杂方式运行。shell编程语言具有许多常用的编程语言的特征,例如:循环和控制结构等。用户可以生成像其他应用程序一样复杂的shell程序。

2、补充说明:简单的说: shell是一个交互性命令解释器。shell独立于操作系统,这种设计让用户可以灵活选择适合自己的shell。shell让你在命令行键入命令,经过shell解释后传送给操作系统(内核)执行。

3、查找命令的位置并且执行相关联的程序。

4、提供一个解释性的编程语言界面,包括tests、branches和loops等语句

三、想用delphi编一个闹钟程序

新建一个程序,并在窗体中加入以下元件:

而后在{$R*.DFM}下面加入这么一句{$R CLOCKSOU.RES}<--时钟的声音文件,

(注:CLOCKSOU.RES是先用windows的记事本新建一个文件,并加入以下几行

并存为文件 CLOCKSOU.RC然后在 DOS解面下用BRCC32.exe将 CLOCKSOU.RC编译

为 DELPHI格式的资源文件 CLOCOSOU.RES,当然,您如果嫌步骤太烦,那吗最简单的,

到我的主页 下载完整的程序代码)

OK,在完成上面的步骤后我们就可以在窗体的代码筐中输入以下代码。

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls,unit2, StdCtrls,inifiles,MMSystem, Menus;

procedure Timer1Timer(Sender: TObject);

procedure timdrow(tim:real;long,col:integer);

procedure FormCreate(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure pop1Click(Sender: TObject);

procedure pop2Click(Sender: TObject);

procedure pop4Click(Sender: TObject);

procedure pop5Click(Sender: TObject);

procedure pop3Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N1Click(Sender: TObject);

dtim,textdef,tmfilename:string;

timini:=TIniFile.Create(tmfilename);

WriteString('内容','文字',textdef);

Writestring('参数','时间',dtim);

WriteBool('参数','报时允许',pop1.checked);

WriteBool('参数','秒响允许',pop2.checked);

WriteBool('参数','定时允许',pop3.checked);

procedure tform1.timdrow(tim:real;long,col:integer);//指针的过程函数。

IF(TIM2=59) AND(TIM3=0) THEN TIM:=TIM-1;

if col=3 then VT:=TIM1*5+(TIM2/720)

vt:=Pi-pi*vt/30-2*pi*(vt-15);//得出指针末端的 Y坐标

vtt:=int(long*sin(vt))+45;//得出指针末端的 X坐标

xx:=strtoint(floattostr(vtt));

yy:=strtoint(floattostr(vtt));

case col of//判断所要画的指针是分针、秒针或时针

image1.Canvas.pen.Color:=clgray;

image1.Canvas.pen.Color:=clRed;

image1.Canvas.pen.color:=clblue;

image1.canvas.pen.color:=clgreen;

image1.canvas.pen.color:=clblack;

image1.canvas.pen.color:=clgray;

IMAGE1.Canvas.Ellipse(43,43,47,47);

procedure TForm1.Timer1Timer(Sender: TObject);

if str2=':' then pofse:=0 else pofse:=1;

EDIT1.TEXT:=''+DATETOSTR(DATE());//日期盘上的日期数据

if tim4<>tim3 then//判断是否到了移动指针的时间

if(tim3=0) or(tim3=15) or(tim3=30)

or(tim3=45) then timdrow(tim3,39,4) else timdrow(tim3,39,0);

if pop2.checked then PlaySound(PChar('CLICKBEL'),

hInstance, snd_ASync or snd_Resource);//秒针的“滴答”发声

IF(TIM3=0)AND(TIM2=59)THEN//判断是否到了发出整点报时“钟声”的时间

IF CLOCKBELL=0 THEN CLOCKBELL:=12;

IF CLOCKBELL>12 THEN CLOCKBELL:=CLOCKBELL-12;

IF(TIM2<>59) AND(TIM4<>0) THEN timdrow(tim1-1,26,3) ELSE TIMDROW(TIM1,26,3);

IF(CLOCKBELL<>0)and(pop2.checked) THEN

PlaySound(PChar('TIMEBELL'), hInstance,

snd_ASync or snd_Resource);//时钟的整点“钟声”发声

if(pop3.checked)and(strtotime(dtim)<=time()) then//判断是否到了定时的时间

form2.Button2.Caption:='取消';

form2.Show;//显示给自己的提示。

procedure TForm1.FormCreate(Sender: TObject);//读入程序开始的初始化设定

tmfilename:=ExtractFilePath(Application.EXEName)+'clock1.ini';

timini:=TIniFile.Create(tmfilename);

Textdef:=readString('内容','文字','在这里输入您给自己的提醒');

dtim:=readstring('参数','时间','23:59:59');

pop1.checked:=readBool('参数','报时允许',true);

pop2.checked:=readBool('参数','秒响允许',true);

pop3.checked:=readBool('参数','定时允许',false);

form1.Left:=readinteger('位置','X坐标',566);

form1.top:=readinteger('位置','Y坐标',8);

If str2=':' then pofse:=0 else pofse:=1;

image1.Canvas.BRUSH.COLOR:=CLBLACK;;

procedure TForm1.Image1Click(Sender: TObject);//表盘鼠标点击时的的处理

PopupMenu1.Popup(FORM1.LEFT+40,FORM1.TOP+150);

procedure TForm1.pop1Click(Sender: TObject);

if pop1.checked then pop1.checked:=false else pop1.checked:=true;

procedure TForm1.pop2Click(Sender: TObject);

if pop2.checked then pop2.checked:=false else pop2.checked:=true;

procedure TForm1.pop4Click(Sender: TObject);

procedure TForm1.pop5Click(Sender: TObject);

procedure TForm1.pop3Click(Sender: TObject);

form2.Button2.Caption:='取消';

form2.Button2.Caption:='关闭';

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

timini:=TIniFile.Create('tmfilename');

Writeinteger('位置','X坐标',form1.Left);//保存时钟窗口的初始 X坐标

Writeinteger('位置','Y坐标',form1.top);//保存时钟窗口的初始 Y坐标

procedure TForm1.N1Click(Sender: TObject);

showmessage('模拟闹钟 0.1,'+#13+' Copy(R)ight by Suye.2001');



相关内容FAQs: