photo
+ 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 787 Tempos em 476 Postagens
    AssinarAssinar
    subscritar: 0

    OBJ_EDIT Objeto Edit.

    Name:  objedit.png
Views: 605
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. 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