photo

Fórum Forex Brasil

Lugar da Comunidade Forex

+ Responder ao Tópico
Resultados de 1 a 1 de 1

Thread: OBJ_BUTTON Objeto Botão.

  1. #1 Fechar a publicação
    Senior Member jssuser's Avatar jssuser's Avatar
    Data de afiliação
    Aug 2018
    Postagens
    1,503
    Obrigado
    209
    Agradecimentos 1,007 Tempos em 579 Postagens
    AssinarAssinar
    subscritar: 0

    OBJ_BUTTON Objeto Botão.

    Name:  objbutton.png
Views: 571
Size:  5.0 KB

    Observação

    Coordenadas do ponto de ancoragem são em pixels. Você pode selecionar o botão de ancoragem de canto a partir da ENUM_BASE_CORNER.

    Exemplo

    O seguinte script cria e move o objeto Botão no gráfico. Funções especiais têm sido desenvolvidas para criar e alterar as propriedades do objeto gráfico. Você pode utilizar estas funções "as is" em seus próprios aplicativos.

    //--- descrição
    #property description "Script cria o Botão no gráfico."
    //--- janela de exibição dos parâmetros de entrada durante inicialização do script
    #property script_show_inputs
    //--- entrada de parâmetros do script
    input string InpName="Button"; // Nome do Botão
    input ENUM_BASE_CORNER InpCorner=CORNER_LEFT_UPPER; // Canto do gráfico para ancoragem
    input string InpFont="Arial"; // Fonte
    input int InpFontSize=14; // Tamanho da fonte
    input color InpColor=clrBlack; // Cor do texto
    input color InpBackColor=C'236,233,216'; // Fundo da cor
    input color InpBorderColor=clrNONE; // Cor da Borda
    input bool InpState=false; // Pressionado/Liberado
    input bool InpBack=false; // Objeto de Fundo
    input bool InpSelection=false; // Destaque para mover
    input bool InpHidden=true; // Ocultar na lista de objeto
    input long InpZOrder=0; // Prioridade para clique do mouse
    //+------------------------------------------------------------------+
    //| Criar o botão |
    //+------------------------------------------------------------------+
    bool ButtonCreate(const long chart_ID=0, // ID do gráfico
    const string name="Button", // nome do botão
    const int sub_window=0, // índice da sub-janela
    const int x=0, // coordenada X
    const int y=0, // coordenada Y
    const int width=50, // largura do botão
    const int height=18, // altura do botão
    const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // canto do gráfico para ancoragem
    const string text="Button", // texto
    const string font="Arial", // fonte
    const int font_size=10, // tamanho da fonte
    const color clr=clrBlack, // cor do texto
    const color back_clr=C'236,233,216', // cor do fundo
    const color border_clr=clrNONE, // cor da borda
    const bool state=false, // pressionada/liberada
    const bool back=false, // no fundo
    const bool selection=false, // destaque para mover
    const bool hidden=true, // ocultar na lista de objeto
    const long z_order=0) // prioridade para clicar no mouse
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- criar o botão
    if(!ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_wind ow,0,0))
    {
    Print(__FUNCTION__,
    ": falha ao criar o botão! Código de erro = ",GetLastError());
    return(false);
    }
    //--- definir coordenadas do botão
    ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x );
    ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y );
    //--- definir tamanho do botão
    ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width );
    ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,heigh t);
    //--- determinar o canto do gráfico onde as coordenadas do ponto são definidas
    ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corn er);
    //--- definir o texto
    ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
    //--- definir o texto fonte
    ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
    //--- definir tamanho da fonte
    ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,fo nt_size);
    //--- definir a cor do texto
    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
    //--- definir a cor de fundo
    ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,bac k_clr);
    //--- definir a cor da borda
    ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLO R,border_clr);
    //--- exibir em primeiro plano (false) ou fundo (true)
    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
    //--- set button state
    ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state );
    //--- habilitar (true) ou desabilitar (false) o modo do movimento do botão com o mouse
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE, selection);
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,se lection);
    //--- ocultar (true) ou exibir (false) o nome do objeto gráfico na lista de objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidd en);
    //--- definir a prioridade para receber o evento com um clique do mouse no gráfico
    ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_or der);
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Mover o botão |
    //+------------------------------------------------------------------+
    bool ButtonMove(const long chart_ID=0, // ID do gráfico
    const string name="Button", // nome do botão
    const int x=0, // coordenada X
    const int y=0) // coordenada Y
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- mover o botão
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTAN CE,x))
    {
    Print(__FUNCTION__,
    ": falha para mover coordenada X do botão! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTAN CE,y))
    {
    Print(__FUNCTION__,
    ": falha para mover coordenada Y do botão! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar o tamanho do botão |
    //+------------------------------------------------------------------+
    bool ButtonChangeSize(const long chart_ID=0, // ID do gráfico
    const string name="Button", // nome do botão
    const int width=50, // largura do botão
    const int height=18) // altura do botão
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar o tamanho do botão
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,w idth))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a largura do botão! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,h eight))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a altura do botão! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar canto do gráfico para vinculação do botão |
    //+------------------------------------------------------------------+
    bool ButtonChangeCorner(const long chart_ID=0, // ID do gráfico
    const string name="Button", // nome do botão
    const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER) // canto do gráfico para ancoragem
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar canto de ancoragem
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_CORNER, corner))
    {
    Print(__FUNCTION__,
    ": falha ao alterar canto de ancoragem! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar texto do botão |
    //+------------------------------------------------------------------+
    bool ButtonTextChange(const long chart_ID=0, // ID do gráfico
    const string name="Button", // nome do botão
    const string text="Text") // texto
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar texto do objeto
    if(!ObjectSetString(chart_ID,name,OBJPROP_TEXT,tex t))
    {
    Print(__FUNCTION__,
    ": falha ao alterar texto! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Excluir o botão |
    //+------------------------------------------------------------------+
    bool ButtonDelete(const long chart_ID=0, // ID do gráfico
    const string name="Button") // nome do botão
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- excluir o botão
    if(!ObjectDelete(chart_ID,name))
    {
    Print(__FUNCTION__,
    ": falha ao excluir o botão! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Programa Script da função start (iniciar) |
    //+------------------------------------------------------------------+
    void OnStart()
    {
    //--- tamanho da janela do gráfico
    long x_distance;
    long y_distance;
    //--- definir tamanho da janela
    if(!ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,x_di stance))
    {
    Print("Falha ao obter a largura do gráfico! Código de erro = ",GetLastError());
    return;
    }
    if(!ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0,y_d istance))
    {
    Print("Falha ao obter a altura do gráfico! Código de erro = ",GetLastError());
    return;
    }
    //--- definir a etapa de alterar o tamanho do botão
    int x_step=(int)x_distance/32;
    int y_step=(int)y_distance/32;
    //--- definir as coordenadas botão e seu tamanho
    int x=(int)x_distance/32;
    int y=(int)y_distance/32;
    int x_size=(int)x_distance*15/16;
    int y_size=(int)y_distance*15/16;
    //--- criar o botão
    if(!ButtonCreate(0,InpName,0,x,y,x_size,y_size,Inp Corner,"Press",InpFont,InpFontSize,
    InpColor,InpBackColor,InpBorderColor,InpState,InpB ack,InpSelection,InpHidden,InpZOrder))
    {
    return;
    }
    //--- redesenhar o gráfico
    ChartRedraw();
    //--- reduzir o botão no loop
    int i=0;
    while(i<13)
    {
    //--- meio segundo de atraso
    Sleep(500);
    //--- mudar o botão para o estado pressionado
    ObjectSetInteger(0,InpName,OBJPROP_STATE,true);
    //--- redesenhar o gráfico e esperar por 0.2 segundos
    ChartRedraw();
    Sleep(200);
    //--- redefinir as coordenadas e tamanho do botão
    x+=x_step;
    y+=y_step;
    x_size-=x_step*2;
    y_size-=y_step*2;
    //--- reduzir o botão
    ButtonMove(0,InpName,x,y);
    ButtonChangeSize(0,InpName,x_size,y_size);
    //--- trazer o botão de volta ao estado liberado
    ObjectSetInteger(0,InpName,OBJPROP_STATE,false);
    //--- redesenhar o gráfico
    ChartRedraw();
    //--- verificar se o funcionamento do script foi desativado a força
    if(IsStopped())
    return;
    //--- incrementar um contador de loop
    i++;
    }
    //--- meio segundo de atraso
    Sleep(500);
    //--- excluir o botão
    ButtonDelete(0,InpName);
    ChartRedraw();
    //--- esperar por um segundo
    Sleep(1000);
    //---
    }

    Though trading on financial markets involves high risk, it can still generate extra income in case you apply the right approach. By choosing a reliable broker such as InstaForex you get access to the international financial markets and open your way towards financial independence. You can sign up here.


  2. The Following User Says Thank You to jssuser For This Useful Post:

    Não registrado (1 )

+ Responder ao Tópico

Permissões de postagens

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts