Stessa soluzione. Ma questo non funzionerebbe per me, perché dopo aver cliccato su questa linea, ho bisogno di cancellare la prima linea, crearne un'altra, e fare in modo che segua il cursore e sia cancellata dopo aver cliccato anche su di essa. Ho fatto questo:
voidOnChartEvent(constint id, constlong &lparam, constdouble &dparam, conststring &sparam)
{
datetimestatic dt = 0;
doublestatic price = 0;
intstatic window = 0;
stringstatic line_name;
if(id==CHARTEVENT_OBJECT_CLICK){
}
//Нажатие кнопки создаёт line 1 if(sparam=="button"){
line_name = "line 1";
CreateLine(line_name, clrGreen);
}
//Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){
ObjectDelete(0,line_name);
line_name = "line 2";
CreateLine(line_name, clrRed);
}
//Нажатие на line 2 удаляет line 2if(sparam=="line 2"){
ObjectDelete(0,line_name);
}
}
if(ObjectGetInteger(0,"button",OBJPROP_STATE)){
int x = (int)lparam;
int y = (int)dparam;
if(ChartXYToTimePrice(0,x,y,window,dt,price)){
if(id == CHARTEVENT_MOUSE_MOVE){
if(ObjectMove(line_name,0,0,price))
ChartRedraw(ChartID());
}
}
}
}
Anche una soluzione. Ma questo non funziona per me, perché dopo aver cliccato su questa linea, ho bisogno di cancellare la prima linea, crearne un'altra, e fare in modo che segua il cursore e sia cancellata dopo aver cliccato anche su di essa. L'ho fatto:
voidOnChartEvent(constint id, constlong &lparam, constdouble &dparam, conststring &sparam)
{
datetimestatic dt = 0;
doublestatic price = 0;
intstatic window = 0;
stringstatic line_name;
if(id==CHARTEVENT_OBJECT_CLICK){
}
//Нажатие кнопки создаёт line 1 if(sparam=="button"){
line_name = "line 1";
CreateLine(line_name, clrGreen);
}
//Нажатие на line 1 удаляет line 1 и создаёт line 2 if(sparam=="line 1"){
line_name = "line 2";
ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
}
//Нажатие на line 2 удаляет line 2if(sparam=="line 2"){
ObjectDelete(0,line_name);
}
}
if(ObjectGetInteger(0,"button",OBJPROP_STATE)){
int x = (int)lparam;
int y = (int)dparam;
if(ChartXYToTimePrice(0,x,y,window,dt,price)){
if(id == CHARTEVENT_MOUSE_MOVE){
if(ObjectMove(line_name,0,0,price))
ChartRedraw(ChartID());
}
}
}
}
E lascerei un controllo dell'oggetto prima di creare e cancellare
non vedere
Ma altri possono vedere(CHARTEVENT_OBJECT_CLICK)
Tutto ciò che è brillante è semplice.
L'avrei fatto
Io lo farei.
Stessa soluzione. Ma questo non funzionerebbe per me, perché dopo aver cliccato su questa linea, ho bisogno di cancellare la prima linea, crearne un'altra, e fare in modo che segua il cursore e sia cancellata dopo aver cliccato anche su di essa. Ho fatto questo:
Pulsante premuto - crea una linea. Pulsante premuto - cancellare. È così difficile da indovinare?
Inoltre, è possibile mostrare e nascondere in modo da non doverli creare e cancellare di continuo.
Anche una soluzione. Ma questo non funziona per me, perché dopo aver cliccato su questa linea, ho bisogno di cancellare la prima linea, crearne un'altra, e fare in modo che segua il cursore e sia cancellata dopo aver cliccato anche su di essa. L'ho fatto:
E lascerei un controllo dell'oggetto prima di creare e cancellare
qualcosa è andato storto) il segnale non arriva affatto. 0 scambi.
perché con il doppio?
le mie variabili sono così:
forse è questo il problema?
qualcosa è andato storto) il segnale non arriva affatto. 0 scambi.
perché con il doppio?
le mie variabili sono così:
forse è questo il problema?
Cancella questo.
e nel codice, usarePerché il doppio?
doppio - numeri decimali
int - numeri interi
Cancellatelo!
E nel codice, usateGrazie, il segnale è sparito!
doppio - numeri decimali
int - numeri interi
chiaramente