تحرير تعليقك
How to Simulate ButtonClick in MQL
عضو منذ Oct 20, 2009
42 المشاركات
Jan 15, 2017 at 08:27
عضو منذ Oct 20, 2009
42 المشاركات
Hi ,
I am trying to Generate a mouse button click event in mql ..
if(!EventChartCustom(0, CHARTEVENT_CUSTOM+CHARTEVENT_OBJECT_CLICK,0,0,,btnName))
Print("Error ",GetLastError());
.. but no luck.
Would appreciate some ideas .. thanks a lot
I am trying to Generate a mouse button click event in mql ..
if(!EventChartCustom(0, CHARTEVENT_CUSTOM+CHARTEVENT_OBJECT_CLICK,0,0,,btnName))
Print("Error ",GetLastError());
.. but no luck.
Would appreciate some ideas .. thanks a lot
forex_trader_25447
عضو منذ Dec 21, 2010
127 المشاركات
Jan 17, 2017 at 04:54
عضو منذ Dec 21, 2010
127 المشاركات
You can NOT add two parameters, like you did with
CHARTEVENT_CUSTOM + CHARTEVENT_OBJECT_CLICK
This is error.
They have to be separated in two EventChartCustom()
CHARTEVENT_CUSTOM + CHARTEVENT_OBJECT_CLICK
This is error.
They have to be separated in two EventChartCustom()
عضو منذ Jul 18, 2013
1 المشاركات
Jan 17, 2017 at 06:59
عضو منذ Jul 18, 2013
1 المشاركات
in declaracion:
string btn_close_SELLS="btn_close_SELLS";
then in Void Ontick (void)
Create_Button(btn_close_SELLS,"CLOSE SELLS",85,18,110,420,LightSlateGray,White);
copy the following code at the end of your expert
void Create_Button(string but_name,string label,int xsize,int ysize,int xdist,int ydist,int bcolor,int fcolor)
{
if(ObjectFind(0,but_name)<0)
{
if(!ObjectCreate(0,but_name,OBJ_BUTTON,0,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return;
}
ObjectSetString(0,but_name,OBJPROP_TEXT,label);
ObjectSetInteger(0,but_name,OBJPROP_XSIZE,xsize);
ObjectSetInteger(0,but_name,OBJPROP_YSIZE,ysize);
ObjectSetInteger(0,but_name,OBJPROP_CORNER,1);
ObjectSetInteger(0,but_name,OBJPROP_XDISTANCE,xdist);
ObjectSetInteger(0,but_name,OBJPROP_YDISTANCE,ydist);
ObjectSetInteger(0,but_name,OBJPROP_BGCOLOR,bcolor);
ObjectSetInteger(0,but_name,OBJPROP_COLOR,fcolor);
ObjectSetInteger(0,but_name,OBJPROP_FONTSIZE,9);
ObjectSetInteger(0,but_name,OBJPROP_HIDDEN,true);
//ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND));
ObjectSetInteger(0,but_name,OBJPROP_BORDER_TYPE,BORDER_RAISED);
ChartRedraw();
}
}
and this also at the end of you expert
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(sparam==btn_close_SELLS)
{
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
{CloseAllShorts();}
ObjectSetInteger(0,btn_close_SELLS,OBJPROP_STATE,0);
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
ObjectDelete(btn_close_SELLS);
}
}
}
the function CloseAllShorts () you have to create youself or something else you want to do with that button
Good luck
string btn_close_SELLS="btn_close_SELLS";
then in Void Ontick (void)
Create_Button(btn_close_SELLS,"CLOSE SELLS",85,18,110,420,LightSlateGray,White);
copy the following code at the end of your expert
void Create_Button(string but_name,string label,int xsize,int ysize,int xdist,int ydist,int bcolor,int fcolor)
{
if(ObjectFind(0,but_name)<0)
{
if(!ObjectCreate(0,but_name,OBJ_BUTTON,0,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return;
}
ObjectSetString(0,but_name,OBJPROP_TEXT,label);
ObjectSetInteger(0,but_name,OBJPROP_XSIZE,xsize);
ObjectSetInteger(0,but_name,OBJPROP_YSIZE,ysize);
ObjectSetInteger(0,but_name,OBJPROP_CORNER,1);
ObjectSetInteger(0,but_name,OBJPROP_XDISTANCE,xdist);
ObjectSetInteger(0,but_name,OBJPROP_YDISTANCE,ydist);
ObjectSetInteger(0,but_name,OBJPROP_BGCOLOR,bcolor);
ObjectSetInteger(0,but_name,OBJPROP_COLOR,fcolor);
ObjectSetInteger(0,but_name,OBJPROP_FONTSIZE,9);
ObjectSetInteger(0,but_name,OBJPROP_HIDDEN,true);
//ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND));
ObjectSetInteger(0,but_name,OBJPROP_BORDER_TYPE,BORDER_RAISED);
ChartRedraw();
}
}
and this also at the end of you expert
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(sparam==btn_close_SELLS)
{
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
{CloseAllShorts();}
ObjectSetInteger(0,btn_close_SELLS,OBJPROP_STATE,0);
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
ObjectDelete(btn_close_SELLS);
}
}
}
the function CloseAllShorts () you have to create youself or something else you want to do with that button
Good luck
عضو منذ Jan 03, 2017
29 المشاركات
Jan 18, 2017 at 12:07
عضو منذ Jan 03, 2017
29 المشاركات
spijker posted:
in declaracion:
string btn_close_SELLS="btn_close_SELLS";
then in Void Ontick (void)
Create_Button(btn_close_SELLS,"CLOSE SELLS",85,18,110,420,LightSlateGray,White);
copy the following code at the end of your expert
void Create_Button(string but_name,string label,int xsize,int ysize,int xdist,int ydist,int bcolor,int fcolor)
{
if(ObjectFind(0,but_name)<0)
{
if(!ObjectCreate(0,but_name,OBJ_BUTTON,0,0,0))
{
Print(__FUNCTION__,
": failed to create the button! Error code = ",GetLastError());
return;
}
ObjectSetString(0,but_name,OBJPROP_TEXT,label);
ObjectSetInteger(0,but_name,OBJPROP_XSIZE,xsize);
ObjectSetInteger(0,but_name,OBJPROP_YSIZE,ysize);
ObjectSetInteger(0,but_name,OBJPROP_CORNER,1);
ObjectSetInteger(0,but_name,OBJPROP_XDISTANCE,xdist);
ObjectSetInteger(0,but_name,OBJPROP_YDISTANCE,ydist);
ObjectSetInteger(0,but_name,OBJPROP_BGCOLOR,bcolor);
ObjectSetInteger(0,but_name,OBJPROP_COLOR,fcolor);
ObjectSetInteger(0,but_name,OBJPROP_FONTSIZE,9);
ObjectSetInteger(0,but_name,OBJPROP_HIDDEN,true);
//ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND));
ObjectSetInteger(0,but_name,OBJPROP_BORDER_TYPE,BORDER_RAISED);
ChartRedraw();
}
}
and this also at the end of you expert
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(id==CHARTEVENT_OBJECT_CLICK)
{
if(sparam==btn_close_SELLS)
{
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
{CloseAllShorts();}
ObjectSetInteger(0,btn_close_SELLS,OBJPROP_STATE,0);
ObjectSetString(0,btn_close_SELLS,OBJPROP_TEXT,"Close SELLS");
ObjectDelete(btn_close_SELLS);
}
}
}
the function CloseAllShorts () you have to create youself or something else you want to do with that button
Good luck
Thanks for the sample code. I'm searching to make the button works too. Found it here
عضو منذ Oct 20, 2009
42 المشاركات
forex_trader_367321
عضو منذ Oct 08, 2016
44 المشاركات
Jan 23, 2017 at 21:29
(تم التعديل Jan 23, 2017 at 21:30)
عضو منذ Oct 08, 2016
44 المشاركات
write a c based dll.
if you cant get it done by writing a c based dll, it cant be done.
https://www.metatrader5.com/en/metaeditor/help/development/c_dll
if you dont have a c compiler, you could download devcpp.
https://www.bloodshed.net/dev/devcpp.html
if you cant get it done by writing a c based dll, it cant be done.
https://www.metatrader5.com/en/metaeditor/help/development/c_dll
if you dont have a c compiler, you could download devcpp.
https://www.bloodshed.net/dev/devcpp.html
*لن يتم التسامح مع الاستخدام التجاري والبريد العشوائي، وقد يؤدي ذلك إلى إنهاء الحساب.
نصيحة: نشر رابط صورة أو فيديو من YouTube سيضمّنها تلقائيًا في مشاركتك!
نصيحة: اكتب العلامة @ للإكمال التلقائي لاسم المستخدم المشارك في هذه المناقشة.