Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共51 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6]
[浏览完整版]

标题:怎样通过全局变量控制PLAYSOUND函数只播报一遍声音

1楼
轮回 发表于:2009/12/7 11:12:49
当K线满足触发条件时,打开声音播报,但这个条件要维持到这根K线周期走完声音才停止,如何控制声音只播报一遍?
[此贴子已经被admin于2009-12-7 11:24:38编辑过]
2楼
admin 发表于:2009/12/7 11:30:17

使用 EXTGBDATASET(S,X)EXTGBDATA(S) 来设置和读取全部变量.

金字塔的全局变量属于一个小型数据库,保存的变量值会一直保存下去,即便关了金字塔软件也会在下次启动时保存数据.

全局变量的管理在 工具->数据->全局变量 菜单项找到.

 

具体实现思路是:

EXTGBDATASET('LastBar',barpos);

lastbarpos:=EXTGBDATA(''LastBar'');

PLAYSOUND(COND AND lastbarpos != barpos,'e:\music.mp3');

3楼
轮回 发表于:2009/12/7 11:41:33
从原理上看这种思路并不能实现只报一遍的功能。
4楼
admin 发表于:2009/12/7 11:50:59

把你试过了不能实现的代码贴出来看看

5楼
轮回 发表于:2009/12/7 12:17:16

EXTGBDATASET('LastBar',barpos);    //存地址

lastbarpos:=EXTGBDATA(''LastBar'');  //取地址

PLAYSOUND(COND AND lastbarpos != barpos,'e:\music.mp3');  //这里lastbarpos永远是当前地址,所以lastbarpos != barpos条件永远不会成立,因此永远不会播报。

该问题我已解决。

[此贴子已经被作者于2009-12-7 12:18:11编辑过]
6楼
bhwhui 发表于:2009/12/7 12:35:38

怎么解决的?感兴趣,用Variable? 谢谢。

[此贴子已经被作者于2009-12-7 12:35:50编辑过]
7楼
轮回 发表于:2009/12/7 12:40:57
全局变量并不好用,应该有一些问题.即使使用字符型全局变量,也会使K图压缩变形,解决只报一遍的这个问题不需要使用全局变量.
8楼
bhwhui 发表于:2009/12/7 12:53:49

呵呵呵,您还是没说出来,估计有3个方法.

1:时钟控制

2:Variable 控制

3:信号跳变一瞬间控制。

 

“也会使K图压缩变形”,什么意思?不明白,谢谢。

9楼
轮回 发表于:2009/12/9 15:09:17
以下是引用bhwhui在2009-12-7 12:53:49的发言:

呵呵呵,您还是没说出来,估计有3个方法.

1:时钟控制

2:Variable 控制

3:信号跳变一瞬间控制。

 

“也会使K图压缩变形”,什么意思?不明白,谢谢。

呵呵,还在测试阶段,有时侯会在中间自动插入一个"叮当"的铃声,也有个别时候会报两遍,还在找原因.

10楼
dzfp2010 发表于:2010/3/18 12:16:43

可以实现的,加IF判断,代码如下:

 

'如果不是最后一根K线 

IF BarPos<>EXGBDATA("LastBar") THEN BEGIN

 

'播放音效文件

PLAYSOUND(1,'e:\music.mp3');   

 

'给自定义的全局变量重新赋值:

EXGBDATASET("LastBar",BarPos);

END

 

 

[此贴子已经被作者于2010-3-18 12:24:25编辑过]
共51 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 3 queries.