Discussão do artigo "Interfaces gráficas X: Seleção de texto na caixa de texto multilinha (build 13)" - página 8
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Ainda não testei no testador, pois havia muitas restrições lá antes. É por isso que ele está temporariamente assim por enquanto.
Você já tentou testar a GUI no testador? Qual é o resultado? Os eventos funcionam? Todos os objetos gráficos são exibidos?
Sim, todos os objetos são exibidos, os eventos do mouse nos gráficos não funcionarão no testador, mas toda a interface está ativa e, na verdade, era assim antes
Em geral, provavelmente abandonarei o cronômetro embutido por enquanto, para não editar a biblioteca))
Não consigo descobrir como fazer com que o formulário seja criado com um determinado tamanho em X e esteja vinculado à borda direita do gráfico, ou seja, quando você altera o tamanho do gráfico em X, o formulário não altera o tamanho e se move para a direita/esquerda sem alterar seu tamanho.
Como uma opção para substituir o método ChartEventChartChange na classe CWndEvents, esse método está na seção privada, talvez faça sentido mover os métodos:
Move to the protected section, mas, novamente, os métodos da seção privada também são usados lá? Em geral, se alguém tiver se deparado com esse problema, sugira uma solução
Não consigo descobrir como fazer com que o formulário seja criado com um determinado tamanho em X e esteja vinculado à borda direita do gráfico, ou seja, quando você altera o tamanho do gráfico em X, o formulário não altera o tamanho e se move para a direita/esquerda sem alterar seu tamanho.
Como uma opção para substituir o método ChartEventChartChange na classe CWndEvents, esse método está na seção privada, talvez faça sentido mover os métodos:
Move to the protected section, mas, novamente, os métodos da seção privada também são usados lá? Em geral, se alguém tiver se deparado com esse problema, sugira uma solução
Mais ou menos assim:
//---
No manipulador de eventos da classe de usuário do aplicativo MQL ao processar o evento CHARTEVENT_CHART_CHANGE:
//---
Resultado:
//---
Você também pode adicionar uma verificação se o tamanho (largura) da janela do gráfico foi alterado, porque o evento CHARTEVENT_CHART_CHANGE é gerado em diferentes casos. Por exemplo, ao rolar o gráfico.
É mais ou menos assim:
//---
No manipulador de eventos de uma classe de aplicativo MQL personalizada ao processar um evento CHARTEVENT_CHART_CHANGE:
//---
Result:
//---
Você também pode adicionar uma verificação se o tamanho (largura) da janela do gráfico foi alterado, porque o evento CHARTEVENT_CHART_CHANGE é gerado em diferentes casos. Por exemplo, ao rolar o gráfico.
oops, funcionou ))
Como obter na tabela o índice da linha em que o botão esquerdo do mouse foi clicado, se SelectableRow(false) foi definido ao criar a tabela? Analisar o parâmetro sparam em OnEvent não parece elegante. É claro que é possível usar SelectableRow(true) e SelectedItem(), mas a tarefa é não selecionar linhas na tabela.
Como obter na tabela o índice da linha em que o botão esquerdo do mouse foi clicado, se SelectableRow(false) foi definido ao criar a tabela? Analisar o parâmetro sparam em OnEvent não parece elegante. É claro que podemos usar SelectableRow(true) e SelectedItem(), mas a tarefa é não selecionar linhas na tabela.
Como diferenciar entre o evento de seleção de uma linha em uma tabela e a seleção de um item em uma caixa de combinação? Pelo código, fica claro que eles usam o mesmo evento ON_CLICK_LIST_ITEM.
Eu exibo uma tabela em um formulário, seleciono uma linha nela, seleciono um valor em uma caixa de combinação e os dados da linha da tabela e o valor da caixa de combinação devem ser gravados em uma entidade separada. Agora, os eventos não são delimitados e é necessário criar muletas que realizem a tarefa:
Talvez você possa sugerir algum outro mecanismo?
Basicamente, a tabela é uma matriz de pares de tickers, a caixa de combinação contém tipos de sinais, uma entidade separada são os objetos da matriz de sinais. Os objetos em si não são um único campo, mas tipos de dados personalizados complexos, um par de tickers da tabela e um tipo de sinal são registrados neles e, em seguida, outro processamento é feito.
...
você consegue pensar em algum outro mecanismo?
...
Não tenho certeza do que exatamente não está funcionando.
Há um identificador de evento (id) e há um identificador de elemento (lparam), o que permite diferenciar os eventos. Isso não é suficiente?