MetaTrader 4 Build 529 beta lançado com novo compilador - página 114

 

Bild 557.

OBJ_LABEL se move para o centro quando inserido a partir da função, uma vez selecionado ele se move para o lado direito e parcialmente para fora da janela do gráfico. A encadernação está no canto superior direito. Função:

//+-------------------------------------------------------------------------------------------------+
//|  Параметры:                                                                            |
//|    nm - наименование объекта                                                 |
//|    tx - текст                                                                              |
//|    cl - цвет метки                                                                     |
//|    xd - координата X в пикселах                                              |
//|    yd - координата Y в пикселах                                              |
//|    cr - номер угла привязки (0 - левый верхний )                   |
//|                                               1 - правый верхний                   |
//|                                               2 - левый нижний                       |
//|                                               3 - правый нижний )                   |
//|    fs - размер шрифта             (9 - по умолчанию  )                   |
//+-------------------------------------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
   if(ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(nm, tx, fs, "Arial");
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_XDISTANCE, xd);
   ObjectSet(nm, OBJPROP_YDISTANCE, yd);
   ObjectSet(nm, OBJPROP_CORNER   , cr);
   ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}

Esta função é chamada:

SetLabel("mf_metka",StringConcatenate("б/у Buy : ", DoubleToStr(urtpbuy,Digits)," Sell : ", DoubleToStr(urtpsell,Digits)), PaleGoldenrod, 30, 25, 1, 8);

Nas versões anteriores do build 554 e anteriores, tudo funcionava como deveria, não havia saltos para o centro e depois para a direita fora dos limites da janela do gráfico, tudo estava ligado aos limites que estavam especificados.

 

Comportamento incorreto dos objetos de texto reproduzidos na subjanela. Vamos corrigi-lo.

Por favor, aguarde.

 
artmedia70:

Agora vou apenas clicar neles e todos eles estarão em seus lugares:


Obrigado. Reproduzido e corrigido
 
No edifício 557, todas as coordenadas OBJ_EDIT se afastaram em 1 pixel em ambas as coordenadas. Os objetos estavam exatamente espaçados, agora todos eles são deslocados um pouco para a direita e para baixo.
Além disso, é impossível mover o OBJ_LABEL programmaticamente. Esta função de 5 funcionou bem em 555, eu não mudei meu código.

//+------------------------------------------------------------------+
//| Перемещает текстовую метку             |
//+------------------------------------------------------------------+
bool LabelMove(const long   chart_ID=0,   // ID графика
               const string name="Label", // имя метки
               const int    x=0,          // координата по оси X
               const int    y=0)          // координата по оси Y
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- переместим текстовую метку 
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": не удалось переместить X-координату метки! Код ошибки = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": не удалось переместить Y-координату метки! Код ошибки = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+

função similar funciona para botões, não para OBJ_LABEL.

 

Tenho os mesmos problemas com objetos que o bárbaro, usando a mesma função para OBJ_LABEL. Eu escrevi sobre isso aqui ontem de manhã. Eu sinto que a origem está fora do gráfico visível, não na borda do gráfico, mas na borda da janela. Se você exibir OBJ_LABEL com coordenadas +1 a partir do canto inferior direito, tudo estará bem. Os objetos na borda superior da carta também desaparecem, eles devem subir. Se você ampliar a tabela para a tela inteira, o OBJ_LABEL não mudará, mas estará no centro. Bem, o bárbaro já o descreveu, mas não está claro se você o consertou ou não.

 
pro_:

Tenho os mesmos problemas com objetos que o bárbaro, usando a mesma função para OBJ_LABEL. Eu escrevi sobre isso aqui ontem de manhã. Eu sinto que a origem está fora do gráfico visível, não na borda do gráfico, mas na borda da janela. Se você exibir OBJ_LABEL com coordenadas +1 a partir do canto inferior direito, tudo estará bem. Os objetos na borda superior da carta também desaparecem, eles devem subir. Se você ampliar a tabela para a tela inteira, o OBJ_LABEL não mudará, mas estará no centro. Bem, o bárbaro já o descreveu, mas não está claro se você o consertou ou não.


Eu tenho a mesma coisa. Bild 557, acaba de atualizá-lo. Tenho um EA com muitas informações exibidas na tela, agora o gráfico é apenas o caos.

O texto completo(OBJ_LABEL) tem vida própria. E não está claro como as coordenadas são selecionadas, é como se fossem aleatórias. O que é interessante ao selecionar o salto, mas absolutamente não em seu lugar.

Tudo estava bem na construção 555.

 
Quando se trabalha com um pen drive, ou seja, tudo no pen drive, todas as contas são constantemente reiniciadas ....
 

Junto com o velho controle de objetos gráficos em quatro estilos, estamos fazendo um controle de objetos em cinco estilos.

Infelizmente, não está sem seus bugs. Felizmente, muitos bugs foram corrigidos.

 
stringo:

Junto com os quatro antigos, estamos fazendo um gerenciamento de objetos de cinco estilos.

Infelizmente, não é sem bugs

.

Felizmente, muitos bugs já foram corrigidos.


Está tudo claro. Ninguém, penso eu, espera que tudo corra completamente livre de erros. É que quando algo que funciona bem em 555 se torna pior em 556 ou não funciona de todo em 557, você fica indignado (inclusive o meu). Mas está tudo bem. Eu consertei os botões, obrigado. Entretanto, a renderização dos objetos ainda é feita pelo nome, não por ordem de chamada.
 

Ontem lutei com o quadro bmp e não consegui carregá-lo na tabela, e não sei se este ponto funciona ou ainda não ...

#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property  strict
string label_name="ted";
string euro ="\\Images\\button_grey_play.bmp";

//+------------------------------------------------------------------+
void OnTick()
  {
         //--- попробуем создать объект OBJ_BITMAP_LABEL
         ObjectCreate(label_name,OBJ_BITMAP_LABEL ,0,0,0);
         ObjectSet   (label_name,OBJPROP_CORNER   ,0    );
         ObjectSet   (label_name,OBJPROP_XDISTANCE,20  );
         ObjectSet   (label_name,OBJPROP_YDISTANCE,20   );
         ObjectSet   (label_name,OBJPROP_BMPFILE  ,euro );
  }