Anatoli Kazharski: Use o MetaTrader 5. A versão do MetaTrader 4 não é mais suportada e não posso aconselhá-lo sobre nada.
Obrigado por sua resposta. (n.b. Perguntei se funciona com a nova versão)
Está tudo bem?
//+------------------------------------------------------------------+ //| Создаёт общую площадь | //+------------------------------------------------------------------+ bool CColorPicker::CreateArea(void) { //--- Формирование имени объекта string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id(); //--- Координаты int x=CElementBase::X(); int y=CElementBase::Y(); //--- Создать объект if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size)) return(false); //--- Свойства m_area.BackColor(m_area_color); m_area.Color(m_area_border_color); m_area.BorderType(BORDER_FLAT); m_area.Corner(m_corner); m_area.Selectable(false); m_area.Z_Order(m_area_zorder); m_area.Tooltip("\n"); //--- Координаты m_canvas.X(x); m_canvas.Y(y); //--- Размеры m_canvas.XSize(m_x_size); m_canvas.YSize(m_y_size); //--- Отступы от крайней точки m_area.XGap(CElement::CalculateXGap(x)); m_area.YGap(CElement::CalculateYGap(y)); //--- Сохраним указатель объекта CElementBase::AddToArray(m_area); return(true); }
stt: Obrigado por sua resposta. (Obs.: perguntei se funciona com a nova compilação)
Está tudo bem?
//+------------------------------------------------------------------+ //| Создаёт общую площадь | //+------------------------------------------------------------------+ bool CColorPicker::CreateArea(void) { //--- Формирование имени объекта string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id(); //--- Координаты int x=CElementBase::X(); int y=CElementBase::Y(); //--- Создать объект if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size)) return(false); //--- Свойства m_area.BackColor(m_area_color); m_area.Color(m_area_border_color); m_area.BorderType(BORDER_FLAT); m_area.Corner(m_corner); m_area.Selectable(false); m_area.Z_Order(m_area_zorder); m_area.Tooltip("\n"); //--- Координаты m_canvas.X(x); m_canvas.Y(y); //--- Размеры m_canvas.XSize(m_x_size); m_canvas.YSize(m_y_size); //--- Отступы от крайней точки m_area.XGap(CElement::CalculateXGap(x)); m_area.YGap(CElement::CalculateYGap(y)); //--- Сохраним указатель объекта CElementBase::AddToArray(m_area); return(true); }
Nas versões mais recentes dabiblioteca,o cálculodas coordenadas do objetoera diferente.Você precisausar asnovas regraspara especificaras coordenadas do objeto ouem seus própriosmétodospara recalcular ascoordenadas damaneira usual.
Por exemplo, você precisa:
Em WndEvents.mqh, na área pública, crie um novo método:
//--- Cria uma paleta de cores para a seleção de cores bool CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index,int x,int y);
Fora docorpo da classe,você cria umcorpo de método:
//+------------------------------------------------------------------+ //|| Cria uma paleta de cores para selecionar uma cor //+------------------------------------------------------------------+ bool CWndEvents::CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index, int x, int y) { //--- recalcular as coordenadas int x_gap=x-wnd_pointer.X(); int y_gap=y-wnd_pointer.Y(); //--- Salvar o ponteiro da janela color_picker.WindowPointer(wnd_pointer); //--- Criando um elemento if(!color_picker.CreateColorPicker(m_chart_id,m_subwin,x_gap,y_gap)) return(false); //--- Adicione um ponteiro ao elemento na base CWndContainer::AddToElementsArray(wnd_index,color_picker); return(true); } //+------------------------------------------------------------------+
E em CProgram.mqh, crie seu ColorPicker:
//--- Seletor de cores x=m_window_main.X2()+1; y=m_window_main.Y(); if(!CreateColorPicker(m_color_picker,m_window_main,m_window_main_index,x,y)) return(false);
Artyom Trishkin: Nas versões mais recentes dabiblioteca,o cálculodas coordenadas do objetoera diferente.Você precisausar asnovas regraspara especificaras coordenadas do objeto ouusar seus própriosmétodospara recalcularas coordenadas damaneira usual. ......
Obrigado pelo tutorial. Verifiquei e alterei o cálculo das coordenadas. O ColorPicker funciona bem em meu ambiente , mas somente quando exibido na janela principal (W_MAIN).
Você poderia verificar isso na janela W_DIALOG?
O ColorPicker dessa biblioteca é uma ferramenta muito poderosa para o ajuste fino de cores personalizadas, mas eu me pergunto se uma simples tabela de cores não seria mais conveniente para o uso diário.
stt: Obrigado pelo tutorial. Verifiquei e alterei o cálculo de coordenadas. O ColorPicker funciona bem em meu ambiente , mas somente quando exibido na janela principal (W_MAIN).
Você poderia verificar isso na janela W_DIALOG?
O ColorPicker dessa biblioteca é uma ferramenta muito poderosa para o ajuste fino de cores personalizadas, mas gostaria de saber se uma simples tabela de cores seria mais conveniente para o uso diário.
Boa tarde. Tenho a seguinte dúvida: há um campo de entrada SpinEdit:
bool CProgram::CreateSpinEdit_TradingLot(conststring text)
{
//--- Salvar o ponteiro da janela
m_spin_edit_Trading_lot.WindowPointer(m_window);
m_tabs.AddToElementsArray(1,m_spin_edit_Trading_lot);
//--- Coordenadasint x=m_window.X()+SPINEDIT14_GAP_X;
int y=m_window.Y()+SPINEDIT14_GAP_Y;
//--- Valordouble v=(m_spin_edit_Trading_lot.GetValue()==WRONG_VALUE) ? 0.01 : m_spin_edit_Trading_lot.GetValue();
//--- Definir propriedades antes da criação
m_spin_edit_Trading_lot.XSize(90);
m_spin_edit_Trading_lot.YSize(18);
m_spin_edit_Trading_lot.EditXSize(50);
m_spin_edit_Trading_lot.MaxValue(100);
m_spin_edit_Trading_lot.MinValue(0.01);
m_spin_edit_Trading_lot.StepValue(0.01);
m_spin_edit_Trading_lot.SetDigits(2);
m_spin_edit_Trading_lot.SetValue(v);
m_spin_edit_Trading_lot.ResetMode(false);
m_spin_edit_Trading_lot.AreaColor(clrWhite);
//--- Criar um controleif(!m_spin_edit_Trading_lot.CreateSpinEdit(m_chart_id,m_subwin,text,x,y))
return(false);
//--- Adicione o objeto à matriz comum de grupos de objetos
CWndContainer::AddToElementsArray(0,m_spin_edit_Trading_lot);
return(true);
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Faça isso com a nova Build6,7,8 ou 9, por favor.
Use o MetaTrader 5. A versão do MetaTrader 4 não é mais suportada e não posso aconselhá-lo sobre nada.
Está tudo bem?
//| Создаёт общую площадь |
//+------------------------------------------------------------------+
bool CColorPicker::CreateArea(void)
{
//--- Формирование имени объекта
string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id();
//--- Координаты
int x=CElementBase::X();
int y=CElementBase::Y();
//--- Создать объект
if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size))
return(false);
//--- Свойства
m_area.BackColor(m_area_color);
m_area.Color(m_area_border_color);
m_area.BorderType(BORDER_FLAT);
m_area.Corner(m_corner);
m_area.Selectable(false);
m_area.Z_Order(m_area_zorder);
m_area.Tooltip("\n");
//--- Координаты
m_canvas.X(x);
m_canvas.Y(y);
//--- Размеры
m_canvas.XSize(m_x_size);
m_canvas.YSize(m_y_size);
//--- Отступы от крайней точки
m_area.XGap(CElement::CalculateXGap(x));
m_area.YGap(CElement::CalculateYGap(y));
//--- Сохраним указатель объекта
CElementBase::AddToArray(m_area);
return(true);
}
Obrigado por sua resposta. (Obs.: perguntei se funciona com a nova compilação)
Está tudo bem?
//| Создаёт общую площадь |
//+------------------------------------------------------------------+
bool CColorPicker::CreateArea(void)
{
//--- Формирование имени объекта
string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id();
//--- Координаты
int x=CElementBase::X();
int y=CElementBase::Y();
//--- Создать объект
if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size))
return(false);
//--- Свойства
m_area.BackColor(m_area_color);
m_area.Color(m_area_border_color);
m_area.BorderType(BORDER_FLAT);
m_area.Corner(m_corner);
m_area.Selectable(false);
m_area.Z_Order(m_area_zorder);
m_area.Tooltip("\n");
//--- Координаты
m_canvas.X(x);
m_canvas.Y(y);
//--- Размеры
m_canvas.XSize(m_x_size);
m_canvas.YSize(m_y_size);
//--- Отступы от крайней точки
m_area.XGap(CElement::CalculateXGap(x));
m_area.YGap(CElement::CalculateYGap(y));
//--- Сохраним указатель объекта
CElementBase::AddToArray(m_area);
return(true);
}
Por exemplo, você precisa:
Em WndEvents.mqh, na área pública, crie um novo método:
bool CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index,int x,int y);
//|| Cria uma paleta de cores para selecionar uma cor
//+------------------------------------------------------------------+
bool CWndEvents::CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index, int x, int y)
{
//--- recalcular as coordenadas
int x_gap=x-wnd_pointer.X();
int y_gap=y-wnd_pointer.Y();
//--- Salvar o ponteiro da janela
color_picker.WindowPointer(wnd_pointer);
//--- Criando um elemento
if(!color_picker.CreateColorPicker(m_chart_id,m_subwin,x_gap,y_gap))
return(false);
//--- Adicione um ponteiro ao elemento na base
CWndContainer::AddToElementsArray(wnd_index,color_picker);
return(true);
}
//+------------------------------------------------------------------+
E em CProgram.mqh, crie seu ColorPicker:
x=m_window_main.X2()+1;
y=m_window_main.Y();
if(!CreateColorPicker(m_color_picker,m_window_main,m_window_main_index,x,y))
return(false);
...
Eu sei que você não suporta a versão MQL4, mas acho que a MQL4 não é o motivo.
Nas versões mais recentes da biblioteca, o cálculo das coordenadas do objeto era diferente. Você precisa usar as novas regras para especificar as coordenadas do objeto ou usar seus próprios métodos para recalcular as coordenadas da maneira usual .
......
Você poderia verificar isso na janela W_DIALOG?
O ColorPicker dessa biblioteca é uma ferramenta muito poderosa para o ajuste fino de cores personalizadas, mas eu me pergunto se uma simples tabela de cores não seria mais conveniente para o uso diário.
Obrigado pelo tutorial. Verifiquei e alterei o cálculo de coordenadas . O ColorPicker funciona bem em meu ambiente , mas somente quando exibido na janela principal (W_MAIN).
Você poderia verificar isso na janela W_DIALOG?
O ColorPicker dessa biblioteca é uma ferramenta muito poderosa para o ajuste fino de cores personalizadas, mas gostaria de saber se uma simples tabela de cores seria mais conveniente para o uso diário.
Obrigado pelo seu trabalho!!! A classificação por coluna e a exclusão de linhas são possíveis nesta versão?
obrigado pelo seu trabalho!!! a classificação por coluna e a exclusão de linhas são possíveis nesta versão?
Boa tarde. Tenho a seguinte dúvida: há um campo de entrada SpinEdit:
Há um manipulador de eventos:
E mesmo depois da função NormalizeDouble , obtenho esses valores quando clico no incremento/decremento à direita do campo de entrada:
Ao digitar pelo teclado, tudo está correto.
Qual pode ser o motivo?