基于程序运行中需要在不同位置显示文字的需求,我编制了一个名为 iDisplayInfo()的标准模块,准确输入参数就可以随意地、快速地显示信息了。下面是一个包含了该标准模块的程序调用范例。
- #property copyright "Copyright 2012, laoyee"
- #property link "http://www.docin.com"
- //新价格到达时运行一次
- int start()
- {
- iDisplayInfo("Author", "作者:老易 QQ:9217XX", 1, 18, 15, 8, "", SlateGray);
- iDisplayInfo("Symbol", Symbol(), 1, 25, 30, 14, "Arial Bold", DodgerBlue);
- iDisplayInfo("TradeInfo", "欢迎使用!", 1, 5, 50, 9, "", Olive);
- //显示买入组信息
- iDisplayInfo(Symbol()+"-BuyGroup", "买入组", 1, 70, 70, 12, "Arial", Red);
- iDisplayInfo(Symbol()+"-Ask", DoubleToStr(Ask, Digits), 1, 70, 90, 12, "Arial", Red);
- //显示卖出组信息
- iDisplayInfo(Symbol()+"-SellGroup", "卖出组", 1, 5, 70, 12, "Arial", Green);
- iDisplayInfo(Symbol()+"-Bid", DoubleToStr(Bid, Digits), 1, 5, 90, 12, "Arial", Green);
- return(0);
- }
- //程序加载时运行一次
- int init()
- {
- return(0);
- }
- //程序卸载时运行一次
- int deinit()
- {
- return(0);
- }
- /*
- 函 数:在屏幕上显示文字标签
- 输入参数:string LableName 标签名称,如果显示多个文本,名称不能相同
- string LableDoc 文本内容
- int Corner 文本显示角
- int LableX 标签 X 位置坐标
- int LableY 标签 Y 位置坐标
- int DocSize 文本字号
- string DocStyle 文本字体
- color DocColor 文本颜色
- 输出参数:在指定的位置(X,Y)按照指定的字号、字体及颜色显示指定的文本
- 算法说明:
- */
- void iDisplayInfo(string LableName,string LableDoc,int Corner,int LableX,int LableY,int DocSize,string DocStyle,color DocColor)
- {
- if (Corner == -1) return(0);
- ObjectCreate(LableName, OBJ_LABEL, 0, 0, 0); //建立标签对象
- ObjectSetText(LableName, LableDoc, DocSize, DocStyle,DocColor); //定义对象属性
- ObjectSet(LableName, OBJPROP_CORNER, Corner); //确定坐标原点,0-左上角,1-右上角,2-左下角,3-右下角,-1-不显示
- ObjectSet(LableName, OBJPROP_XDISTANCE, LableX); //定义横坐标,单位像素
- ObjectSet(LableName, OBJPROP_YDISTANCE, LableY); //定义纵坐标,单位像素
- }
复制代码
编译运行后如图所示,屏幕右上角显示了版本信息、当前货币对、程序状态以及买入卖出实时报价等内容。这是一个后续编程中最常用的模块。
|