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.

Modo Híbrido

  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,003 Tempos em 577 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. Os seguintes 3 Usuários Dizem Obrigado o a jssuser por este post útil:

    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