Hoje comecei a usar essa biblioteca, compilação de 2019.03.13 16:43 (acho que compilação 16). Então, estou usando-a para criar tabelas, está funcionando quase perfeitamente, usei como referência os artigos:
https://www.mql5.com/pt/articles/2500#para6
https://www.mql5.com/pt/articles/2897#para7
Para mim, é importante ter o recurso de classificação, portanto, uso a biblioteca de acordo com as instruções do artigo "X". Se eu usar essa compilação (compilação 6), a tabela funcionará muito bem, mas se eu usar a última compilação (compilação 16), a tabela não classificará os elementos quando eu clicar nas células do cabeçalho.
Ao investigar as principais diferenças, obtive isso no arquivo Table.mqh.
Isso está na compilação 6:
void CTable::SortData(constuint column_index=0)
{
...
//--- Armazenar o índice da última coluna de dados classificada
m_is_sorted_column_index=(int)column_index;
//--- Classificação
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
//--- Atualizar a tabela
UpdateTable();
//--- Defina o ícone de acordo com a direção de classificação
m_sort_arrow.State((m_last_sort_direction==SORT_ASCEND)? true : false);
}
Isso está na compilação 16:
void CTable::SortData(constuint column_index=0,constint direction=WRONG_VALUE)
{
...
//--- Запомним индекс последнего отсортированного столбца данных
m_is_sorted_column_index=(int)column_index;
//--- Сортировка
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
}
Na nova compilação, não há o método "Update", portanto, acho que esse é o motivo da não classificação.
Portanto, fiz essa alteração e aparentemente funcionou:
void CTable::SortData(constuint column_index=0,constint direction=WRONG_VALUE)
{
...
//--- Запомним индекс последнего отсортированного столбца данных
m_is_sorted_column_index=(int)column_index;
//--- Сортировка
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
//--- Atualizar a tabela
Update(true);
}
The first article Graphical Interfaces I: Preparation of the Library Structure (Chapter 1) explains in detail what this library is for. You will find a list of articles with links at the end of each chapter. There, you can also download a complete version of the library at the current stage of development. The files must be placed in the same...
Se eu criar o ExampleEAF a partir da biblioteca como um indicador no MT4, o indicador falhará com um erro quando eu tentar arrastar a janela no gráfico
Ele funciona bem no MT5
array out of range in 'WndEvents.mqh' (288,72)
Se eu adicionar uma verificação de excesso de intervalo no primeiro ciclo, o arrastamento funcionará.
void CWndEvents::CheckElementsEvents(void)
{
//--- Manipulação do evento de movimento do cursor do mouseif(m_id==CHARTEVENT_MOUSE_MOVE)
{
//--- Sair se o formulário estiver em outra subjanela do gráficoif(!m_windows[m_active_window_index].CheckSubwindowNumber())
return;
//--- Verificar apenas os itens disponíveisint available_elements_total=CWndContainer::AvailableElementsTotal(m_active_window_index);
for(int e=0; e<available_elements_total; e++)
{
// !!! Verificação adicionalif (e >= ArraySize(m_wnd[m_active_window_index].m_available_elements)) continue;
CElement *el=m_wnd[m_active_window_index].m_available_elements[e];
//--- Verificação do foco sobre os elementos
el.CheckMouseFocus();
//--- Tratamento de eventos
el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
}
//--- Todos os eventos, exceto o movimento do cursor do mouseelse
{
int elements_total=CWndContainer::ElementsTotal(m_active_window_index);
for(int e=0; e<elements_total; e++)
{
//--- Verificar apenas os itens disponíveis
CElement *el=m_wnd[m_active_window_index].m_elements[e];
if(!el.IsVisible() || !el.IsAvailable() || el.IsLocked())
continue;
//--- Tratamento de eventos no manipulador de itens
el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
}
//--- Direcionando o evento para o arquivo do aplicativo
OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
Mas "expandir" a janela para toda a área do gráfico e voltar para trás deixa de funcionar.
Você pode me dizer como corrigir esse problema para que ele funcione normalmente também no MT4?
Qual é a diferença? Nenhum aviso durante a compilação no MT4, não sei em que direção procurar.
Além disso, no MT4, ao compilar como indicador, a mudança de foco não funciona, no sentido de que, se você abrir uma lista suspensa e clicar em algum lugar à parte, a lista não fechará e o foco de entrada não mudará para outro elemento; no modo Expert, isso funciona normalmente.
No MT5, tanto o Expert Advisor quanto o indicador funcionam normalmente
Você poderia me dizer como alterar a fonte padrão de um programa (Expert Advisor) que usa essa biblioteca? É ela que imprime tudo a partir do título no cabeçalho do programa. Pelo menos mudar o tamanho (aumentar).
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.
Hoje comecei a usar essa biblioteca, compilação de 2019.03.13 16:43 (acho que compilação 16). Então, estou usando-a para criar tabelas, está funcionando quase perfeitamente, usei como referência os artigos:
https://www.mql5.com/pt/articles/2500#para6
https://www.mql5.com/pt/articles/2897#para7
Para mim, é importante ter o recurso de classificação, portanto, uso a biblioteca de acordo com as instruções do artigo "X". Se eu usar essa compilação (compilação 6), a tabela funcionará muito bem, mas se eu usar a última compilação (compilação 16), a tabela não classificará os elementos quando eu clicar nas células do cabeçalho.
Ao investigar as principais diferenças, obtive isso no arquivo Table.mqh.
Isso está na compilação 6:
Isso está na compilação 16:
Na nova compilação, não há o método "Update", portanto, acho que esse é o motivo da não classificação.
Portanto, fiz essa alteração e aparentemente funcionou:
PS: comentários em russo não ajudam muito.
Onde está a classe Label na biblioteca? Como criar um único rótulo?
Fala Gustavo! Beleza?
Eu estava quebrando a cabeça aqui também para fazer o graph chart sort funcionar e consegui por acaso...
É necessário que a tabela seja atualizada no evento ON_SORT_DATA do seu "program.mqh", algo como:
Espero que isso ajude!
Aqui funcionou perfeitamente!!!
T +
Raul
Este é um fórum em inglês. Por favor, poste somente em inglês.
Use a ferramenta de tradução do site, se necessário.
Ao postar códigos, use o botão de código (Alt +S).
Editei sua postagem desta vez.
Se eu criar o ExampleEAF a partir da biblioteca como um indicador no MT4, o indicador falhará com um erro quando eu tentar arrastar a janela no gráfico
Ele funciona bem no MT5
Se eu adicionar uma verificação de excesso de intervalo no primeiro ciclo, o arrastamento funcionará.
Mas "expandir" a janela para toda a área do gráfico e voltar para trás deixa de funcionar.
Você pode me dizer como corrigir esse problema para que ele funcione normalmente também no MT4?
Qual é a diferença? Nenhum aviso durante a compilação no MT4, não sei em que direção procurar.
Além disso, no MT4, ao compilar como indicador, a mudança de foco não funciona, no sentido de que, se você abrir uma lista suspensa e clicar em algum lugar à parte, a lista não fechará e o foco de entrada não mudará para outro elemento; no modo Expert, isso funciona normalmente.
No MT5, tanto o Expert Advisor quanto o indicador funcionam normalmente
Outra falha interessante com as tabelas.
Após várias entradas, os caracteres começam a se duplicar e depois a triplicar (veja o gif).
Qual pode ser o problema?
O CreateTextEdit parece não suportar a entrada de dados em chinês?
O CreateTextEdit parece não suportar a entrada de dados em chinês?
Hi
Onde posso baixar a versão MT4 dessa biblioteca?