photo

Fórum Forex Brasil

Lugar da Comunidade Forex

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

Thread: OBJ_EDIT Objeto Edit.

  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_EDIT Objeto Edit.

    Name:  objedit.png
Views: 619
Size:  5.5 KB

    Observação

    Coordenadas do ponto de ancoragem são em pixels. Você também pode selecionar uma ancoragem do Edit no canto a partir do enumerador ENUM_BASE_CORNER.

    Você também pode selecionar um dos tipos de alinhamento de texto dentro de Edit a partir da enumeração ENUM_ALIGN_MODE.

    Exemplo

    O seguinte script cria e move o objeto Edit 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 objeto \"Edit\"."
    //--- 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="Edit"; // Nome do objeto
    input string InpText="Text"; // Texto de objeto
    input string InpFont="Arial"; // Fonte
    input int InpFontSize=14; // Tamanho da fonte
    input ENUM_ALIGN_MODE InpAlign=ALIGN_CENTER; // Tipo de alinhamento de texto
    input bool InpReadOnly=false; // Habilidade de editar
    input ENUM_BASE_CORNER InpCorner=CORNER_LEFT_UPPER; // Canto do gráfico para ancoragem
    input color InpColor=clrBlack; // Cor do texto
    input color InpBackColor=clrWhite; // Fundo da cor
    input color InpBorderColor=clrBlack; // Cor da borda
    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 objeto Edit |
    //+------------------------------------------------------------------+
    bool EditCreate(const long chart_ID=0, // ID do gráfico
    const string name="Edit", // nome do objeto
    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
    const int height=18, // altura
    const string text="Text", // texto
    const string font="Arial", // fonte
    const int font_size=10, // tamanho da fonte
    const ENUM_ALIGN_MODE align=ALIGN_CENTER, // tipo de alinhamento
    const bool read_only=false, // habilidade para editar
    const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // canto do gráfico para ancoragem
    const color clr=clrBlack, // cor do texto
    const color back_clr=clrWhite, // cor do fundo
    const color border_clr=clrNONE, // cor da borda
    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 campo de edição
    if(!ObjectCreate(chart_ID,name,OBJ_EDIT,sub_window ,0,0))
    {
    Print(__FUNCTION__,
    ": falha ao criar objeto \"Edit\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- definir coordenadas do objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x );
    ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y );
    //--- definir tamanho do objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width );
    ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,heigh t);
    //--- 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 o tipo de alinhamento do texto no objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_ALIGN,align );
    //--- habilitar (true) ou cancelar (false) modo de somente leitura
    ObjectSetInteger(chart_ID,name,OBJPROP_READONLY,re ad_only);
    //--- definir o canto do gráfico onde as coordenadas do objeto são definidas
    ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corn er);
    //--- 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);
    //--- Habilitar (true) ou desabilitar (false) o modo de movimento da etiqueta pelo 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 objeto Edit |
    //+------------------------------------------------------------------+
    bool EditMove(const long chart_ID=0, // ID do gráfico
    const string name="Edit", // nome do objeto
    const int x=0, // coordenada X
    const int y=0) // coordenada Y
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- mover o objeto
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTAN CE,x))
    {
    Print(__FUNCTION__,
    ": falha para mover coordenada X do objeto! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTAN CE,y))
    {
    Print(__FUNCTION__,
    ": falha para mover coordenada Y do objeto! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Redimensionar objeto Edit |
    //+------------------------------------------------------------------+
    bool EditChangeSize(const long chart_ID=0, // ID do gráfico
    const string name="Edit", // nome do objeto
    const int width=0, // largura
    const int height=0) // altura
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar o tamanho do objeto
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,w idth))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a largura do objeto! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,h eight))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a altura do objeto! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar texto do objeto Edit |
    //+------------------------------------------------------------------+
    bool EditTextChange(const long chart_ID=0, // ID do gráfico
    const string name="Edit", // nome do objeto
    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);
    }
    //+------------------------------------------------------------------+
    //| Retornar texto de objeto |
    //+------------------------------------------------------------------+
    bool EditTextGet(string &text, // texto
    const long chart_ID=0, // ID do gráfico
    const string name="Edit") // nome do objeto
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- obter texto do objeto
    if(!ObjectGetString(chart_ID,name,OBJPROP_TEXT,0,t ext))
    {
    Print(__FUNCTION__,
    ": falha ao obter o texto! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Excluir objeto Edit |
    //+------------------------------------------------------------------+
    bool EditDelete(const long chart_ID=0, // ID do gráfico
    const string name="Edit") // nome do objeto
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- excluir a etiqueta
    if(!ObjectDelete(chart_ID,name))
    {
    Print(__FUNCTION__,
    ": falha ao deletar objeto \"Edit\"! 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 o passo para mudar o campo edit
    int x_step=(int)x_distance/64;
    //--- definir coordenadas do campo edit e seu tamanho
    int x=(int)x_distance/8;
    int y=(int)y_distance/2;
    int x_size=(int)x_distance/8;
    int y_size=InpFontSize*2;
    //--- armazenar o texto na variável local
    string text=InpText;
    //--- criar campo de edição
    if(!EditCreate(0,InpName,0,x,y,x_size,y_size,InpTe xt,InpFont,InpFontSize,InpAlign,InpReadOnly,
    InpCorner,InpColor,InpBackColor,InpBorderColor,Inp Back,InpSelection,InpHidden,InpZOrder))
    {
    return;
    }
    //--- redesenhar o gráfico e esperar por um segundo
    ChartRedraw();
    Sleep(1000);
    //--- estender o campo edit
    while(x_size-x<x_distance*5/8)
    {
    //--- aumentar a largura do campo edit
    x_size+=x_step;
    if(!EditChangeSize(0,InpName,x_size,y_size))
    return;
    //--- verificar se o funcionamento do script foi desativado a força
    if(IsStopped())
    return;
    //--- redesenhar o gráfico e esperar por 0.05 segundos
    ChartRedraw();
    Sleep(50);
    }
    //--- meio segundo de atraso
    Sleep(500);
    //--- alterar o texto
    for(int i=0;i<20;i++)
    {
    //--- adicionar "+" no início e no final
    text="+"+text+"+";
    if(!EditTextChange(0,InpName,text))
    return;
    //--- verificar se o funcionamento do script foi desativado a força
    if(IsStopped())
    return;
    //--- redesenhar o gráfico e esperar por 0.1 segundos
    ChartRedraw();
    Sleep(100);
    }
    //--- meio segundo de atraso
    Sleep(500);
    //--- excluir campo edit
    EditDelete(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 2 Usuários Dizem Obrigado o a jssuser por este post útil:

    Não registrado (2 )

+ 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