老周 发表于 2016-11-9 17:31:54

屏幕定位显示标签模块

基于程序运行中需要在不同位置显示文字的需求,我编制了一个名为 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); //定义纵坐标,单位像素
}
编译运行后如图所示,屏幕右上角显示了版本信息、当前货币对、程序状态以及买入卖出实时报价等内容。这是一个后续编程中最常用的模块。

页: [1]
查看完整版本: 屏幕定位显示标签模块