A mesma solução. Mas isso não funcionaria para mim, porque depois de clicar naquela linha, preciso apagar a primeira linha, criar outra, e fazer com que ela siga o cursor e seja apagada depois de clicar nela também. Eu fiz isso:
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());
}
}
}
}
Também uma solução. Mas isto não vai funcionar para mim, porque depois de clicar nesta linha, preciso apagar a primeira linha, criar outra, e fazer com que ela siga o cursor e seja apagada depois de clicar nela também. Eu o fiz:
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 eu deixaria um cheque para o objeto antes de criar e apagar
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
não vê
Mas outros podem ver(CHARTEVENT_OBJECT_CLICK)
Tudo o que é brilhante é simples.
Eu o teria feito
Eu faria isso.
A mesma solução. Mas isso não funcionaria para mim, porque depois de clicar naquela linha, preciso apagar a primeira linha, criar outra, e fazer com que ela siga o cursor e seja apagada depois de clicar nela também. Eu fiz isso:
Botão pressionado - criar uma linha. Botão pressionado - apagar. É assim tão difícil de adivinhar?
Além disso, você pode mostrar e se esconder para não ter que criá-los e apagá-los o tempo todo.
Também uma solução. Mas isto não vai funcionar para mim, porque depois de clicar nesta linha, preciso apagar a primeira linha, criar outra, e fazer com que ela siga o cursor e seja apagada depois de clicar nela também. Eu o fiz:
E eu deixaria um cheque para o objeto antes de criar e apagar
alguma coisa deu errado) o sinal não está chegando em absoluto. 0 ofícios.
por que com o dobro?
minhas variáveis se parecem com isto:
talvez seja esse o problema?
alguma coisa deu errado) o sinal não está chegando em absoluto. 0 ofícios.
por que com o dobro?
minhas variáveis se parecem com isto:
talvez seja esse o problema?
Apague isso.
e no código, usePor que dobrar?
duplo - números decimais
int - inteiros
Apague isso!
E no código, useObrigado! O sinal desapareceu!
duplo - números decimais
int - inteiros
claramente