#property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #define OBJ_NAME "TestObjectFind" #define WND 0 //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- identificador do gráfico long chart_id=ChartID(); //--- se o objeto gráfico com o nome OBJ_NAME for encontrado no gráfico na janela com o número WND, //--- informamos isso e encerramos a execução ResetLastError(); if(ObjectFind(chart_id, OBJ_NAME)==WND) { PrintFormat("A graphic object named \"%s\" exists on chart with ID %I64d", OBJ_NAME, chart_id); return; } //--- se o objeto não for encontrado else { ///--- se o código do último erro não for 4202 ("Objeto gráfico não encontrado") ///--- informamos o erro e encerramos a execução if(GetLastError()!=ERR_OBJECT_NOT_FOUND) { Print("ObjectFind() failed. Error ", GetLastError()); return; } ///--- registramos no log que não há objeto com o nome OBJ_NAME no gráfico com o identificador chart_id PrintFormat("There is no graphic object named \"%s\" on the chart with ID #%I64d. Let's create it.", OBJ_NAME, chart_id); ///--- criaremos o objeto gráfico "linha vertical" com o nome OBJ_NAME na janela com o número WND ResetLastError(); if(!ObjectCreate(chart_id, OBJ_NAME, OBJ_VLINE, WND, TimeCurrent(), 0)) { Print("ObjectCreate() failed. Error ", GetLastError()); return; } ///--- redesenhamos o gráfico para exibir imediatamente as alterações ChartRedraw(chart_id); ///--- verificamos a existência do objeto criado if(ObjectFind(chart_id, OBJ_NAME)!=WND) { Print("ObjectFind() failed. Error ", GetLastError()); return; } ///--- se o objeto for criado, informamos isso no log, ///--- aguardamos um segundo e removemos o objeto gráfico criado PrintFormat("Now a graphic object named \"%s\" exists on the chart with ID #%I64d. Let's delete it.", OBJ_NAME, chart_id); Sleep(1000); ObjectDelete(chart_id, OBJ_NAME); ///--- redesenhamos o gráfico para exibir imediatamente as alterações ChartRedraw(chart_id); } /* Resultado: There is no graphic object named "TestObjectFind" on the chart with ID #133246248352168439. Let's create it. Now a graphic object named "TestObjectFind" exists on the chart with ID #133246248352168439. Let's delete it. */ } |