Discussão do artigo "Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11)" - página 7
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
Devo ter inserido o exemplo errado no artigo. De qualquer forma, corrija-o para suas tarefas, conforme sua necessidade.
Não estou copiando seu código, estou interessado no trabalho do método SetImages em si. É necessário colocar imagens em cada célula se você as usar em qualquer coluna da tabela, ou é um erro em seu exemplo e você deve inseri-las apenas onde as usa?
Não estou copiando seu código, estou interessado no trabalho do método SetImages em si. É necessário colocar as imagens em cada célula se você as usar em qualquer coluna da tabela ou isso é um erro no seu exemplo e você só deve inseri-las onde as usar?
Pelo que entendi, você precisa inserir imagens somente nas células da primeira coluna.
Tente fazer o seguinte:
Pelo que entendi, você precisa inserir imagens somente nas células da primeira coluna.
Tente isso:
)))))) então ainda é um erro de digitação no método? foi assim que fiz.
E qual é a melhor maneira de otimizar a carga sobre as capacidades calculadas. Há dados que são contados uma vez por período (por exemplo, M5), os dados são exibidos em uma tabela do OnTimer. Não é garantido que o tamanho das linhas em cada recálculo seja igual ao do último cálculo. Até o momento, vejo duas opções:
1. Após cada recálculo, excluir todas as linhas e criar o número necessário de linhas. Entre os recálculos, os dados são simplesmente atualizados.
2. Após cada recálculo, atualizamos os dados nas linhas existentes da tabela; se não houver linhas suficientes, adicionamos novas linhas; se houver mais linhas do que dados, excluímos as que não são necessárias.
Qual dessas opções é mais aceitável para uma tabela baseada em CCanvasTable?
...
Qual dessas opções é mais aceitável para uma tabela baseada em CCanvasTable?
Não poderei lhe dar uma resposta imediata. Tente fazer testes com medições de tempo(GetTickCount() ou GetMicrosecondCount()) ou teste no modo de criação de perfil.
Por algum motivo, a imagem é inserida somente na coluna com índice 0, em outras colunas ela não é colocada.
E que resultado você deseja obter? Descreva em detalhes.
E qual é o problema de fazer isso você mesmo? Todos os métodos necessários são fornecidos para isso.
P.S. Mostre capturas de tela e código para entender melhor o que você precisa.
E qual é o resultado que você deseja? Descreva-o em detalhes.
E qual é o problema de fazer isso você mesmo? Todos os métodos necessários são fornecidos para isso.
P.S. Mostre capturas de tela e código para entender melhor o que você precisa.
Se eu usar seu exemplo, mudarei o índice de 0 para 1:
os ícones deveriam ser movidos para a coluna com índice 1, ou seja, a segunda, mas isso não acontece. O exemplo foi extraído do arquivo TestLibrary10.mqh. Não encontrei nenhum método para posicionar as figuras. Se houver algum, por favor, me informe.
Em geral, não consigo entender o princípio de carregar imagens nas células da tabela. No exemplo TestLibrary09.mqh, os desenhos são carregados em colunas diferentes e, no exemplo TestLibrary10.mqh, somente na coluna com índice 0; quando definidos em outras colunas, os desenhos não são carregados. Você pode me dizer qual é a sutileza disso?
Para cada célula da tabela, que deve conter figuras, você precisa de sua própria matriz de figuras. Se a célula for do tipo CELL_BUTTON, será suficiente um mínimo de uma imagem por célula; se for do tipo CELL_CHECKBOX, será necessário um mínimo de duas.
Por exemplo:
A imagem com índice 0 - corresponde ao estado "pressionado" da caixa de seleção (botão), os outros índices correspondem ao estado "selecionado" da caixa de seleção (botão).
(não está terminado, mas servirá para o entendimento):
Capturas de tela da plataforma de negociação MetaTrader
EURUSD, M1, 2017.04.21
MetaQuotes Software Corp., MetaTrader 4, Demonstração
arr_chk[2]; arr_chk[0]=m_img_chk_off; (imagem de uma caixa de seleção com a caixa de seleção desmarcada) arr_chk[1]=m_img_chk_on; (imagem de uma caixa de seleção com a caixa de seleção marcada)
Na tabela principal:
A célula 0 contém a imagem de abertura do gráfico - ela tem o tipo CELL_BUTTON, você pode ter uma matriz de imagens com dimensão 1: arr_img0[1]; arr_img0[0]=m_image_graph;
A célula 8 contém a figura de abertura Comprar - seu tipo é CELL_BUTTON, a matriz de imagens pode ter dimensão 1: arr_img8[1]; arr_img8[0]=m_image_buy;
A célula 9 contém a imagem de abertura da venda - seu tipo é CELL_BUTTON, a matriz de imagens pode ser de dimensão 1: arr_img9[1]; arr_img9[0]=m_image_sell;
Depois de criar a tabela, você pode inicializá-la com os valores necessários, definir os tipos de células necessários e definir suas próprias matrizes de imagens para elas.
Para cada célula da tabela, que deve conter imagens, você precisa de sua própria matriz de imagens. Se a célula for do tipo CELL_BUTTON, será suficiente um mínimo de uma imagem por célula; se o tipo for CELL_CHECKBOX, será suficiente um mínimo de duas. A imagem com índice 0 corresponde ao estado "pressionado" da caixa de seleção (botão), e os outros índices correspondem ao estado "selecionado" da caixa de seleção (botão).
Por exemplo (não está terminado, mas serve para entender):
arr_chk[2]; arr_chk[0]=m_img_chk0; arr_chk[1]=m_img_chk1;
Na tabela principal:
A célula 0 contém a imagem de abertura do gráfico - ela tem o tipo CELL_BUTTON, você pode ter uma matriz de imagens com dimensão 1: arr_img0[1]; arr_img0[0]=m_image_graph;
A célula 8 contém a imagem de abertura Comprar - seu tipo é CELL_BUTTON, a matriz de imagem pode ter dimensão 1: arr_img8[1]; arr_img8[0]=m_image_buy;
A célula 9 contém a imagem de abertura da venda - ela tem o tipo CELL_BUTTON, a matriz de imagens pode ser de dimensão 1: arr_img9[1]; arr_img9[0]=m_image_sell;
Depois que a tabela for criada, você poderá inicializá-la com os valores desejados, definir os tipos de células desejados e definir suas matrizes de imagens para elas.
Eu realmente não entendo qual é o problema. )) Na primeira tela, ao mudar para a coluna com índice 1, as imagens desapareceram e, na segunda tela, ao voltar para a coluna com índice 0, as imagens apareceram. Isso tudo está no código de exemplo TestLibrary10. mqh
Aqui estão os métodos de criação da tabela:
é a inicialização:
é a atualização:
destacado mudou de 0 para 1, ou seja, mudou a inserção da imagem na coluna do número 0 para o número 1, onde está o erro?