Botões e campos de texto no gráfico mt4 agora possível - página 2

 
agradável
 

Fantasma, nós temos 0,3 que está funcionando agora. Não tenho certeza sobre 0,2 mas 0,3 com certeza suporta texto e bgcolors em CHECKBOX e BUTTONS (resto ainda não implementado).

Para obter o status da caixa de seleção definiremos uma nova função, mas atualmente tbIsClicked(handle) pode detectar cliques, para que você possa fazer uma função interna para capturar o status, uma vez que pode ser 1 ou 0. Mas nas próximas versões a nova função virá para gerenciar o status da caixa de seleção.

Para obter o valor da caixa de texto, use

tbGetText(cabo)

Não há nenhuma função planejada para obter o valor do botão, mas você pode definir o texto do botão através de

tbSetText( obj, text, fontsize, fontname )

esta função também pode definir valor de etiqueta, campo de texto etc.....

fx1

 
fx1.net:

Aqui quero apresentar um novo addon gratuito para o mt4 como previsão. Atualmente estou testando um produto chamado mt4gui. Este produto torna possível colocar botões, campos de texto, campos de lista diretamente no gráfico; aqui está um preview screenhoot que já está funcionando

http://fx1.net/wiki/uploads/img_7.png

Os botões reagem imediatamente após o clique sem esperar pelo sinal do lado do corretor. Estamos melhorando este produto com mais recursos nas próximas semanas. Por que eu postar isto é para obter idéias da comunidade sobre o que é necessário. É claro que nem tudo pode ser realizado realmente, mas eu filtrarei idéias interessantes aqui.

Aqui está um exemplo de código muito básico que demonstra o uso:

que tal adicionar objeto ao diagrama da lib aka? winapi

ser muito feliz

 

Britanec,

tal objeto é muito complicado de implementar nesta fase, pois queremos liberar todos os objetos comuns até a versão 1.0, então podemos ir para tópicos avançados, mas obrigado por sugestões, nos informe sobre novas idéias


fx1.net

 

Acho que não fui muito claro em meu posto anterior. Vamos tentar novamente:

1) a forma como sua função coloca botões na tela é ligeiramente diferente da ObjectCreate em mql. Não está amarrado a um canto. Portanto, para colocar um obeto em relação ao canto inferior, há coordenadas negativas. Além disso, sua colocação vai de toda a janela e não de uma janela gráfica. Não tenho nada contra isso, mas colocar um texto ao lado de um botão com coordenadas negativas usando a função mql geral é impossível, ou talvez eu não possa fazer isso. Sua função "pxy" é tão boa quanto outras para colocar texto em uma janela de gráfico, mas não fez o trabalho, uma vez que as coordenadas são dadas de forma diferente.

2) as cores não funcionaram na versão 2. Muito obrigado por atualizar para a versão 3. Absolutamente nenhum problema com as cores. Excelente.

3) mais uma vez gostaria de perguntar se é possível usar a função tbPutObject de sua dll para colocar objetos em uma subjanela separada. Seu produto, em minha opinião, seria 10 vezes mais valioso se isso fosse feito. Será algo como um console comercial, e será muito gerencial dentro de uma janela. Além disso, ele resolverá todas as questões de coordenação levantadas no ponto 1.

4) Eu tenho a amostra que você postou aqui e a do site fx1. E é claro que tenho tbRemove para cada um dos objetos em deinit. É só NÃO remover os objetos quando o especialista é removido. Eu não tenho idéia do porquê.

Eu gostaria de agradecer mais uma vez pelo produto. É realmente excelente e exatamente o que eu estava procurando há muito tempo.

Há uma questão, embora eu quis chamar sua atenção. Se o botão ExpertAdvisor do MT4 estiver em uma posição OFF e qualquer um de seus botões for clicado, nada acontece que esteja correto, mas no momento em que o botão ExpertAdvisor é ligado novamente, a EA executa todos os comandos a partir dos cliques. Apenas para um teste eu cliquei em Comprar e Vender enquanto o ExpertAdvisor estava desligado, no momento em que eu o curei em sua compra e venda. Acho que isso é algo a ser consertado.

 

fx1.net :os controles estão piscando com muita freqüência na tabela, você pode resolver este problema? Acho que a freqüência de piscar depende dos dados do tick.

 
Fantasma: veja meus vídeos; eles não puxam o autoclismo de todo. sua questão de implementação. Se você remover e reaplicar a cada tique isso pode acontecer, mas em outros casos eles são mais ou menos estáticos. Pelo menos do meu lado. Você pode postar como você implementou isso, por favor?
 
pro_:

Acho que não fui muito claro em meu posto anterior. Vamos tentar novamente:

1) a forma como sua função coloca botões na tela é ligeiramente diferente da ObjectCreate em mql. Não está amarrado a um canto. Portanto, para colocar um obeto em relação ao canto inferior, há coordenadas negativas. Além disso, sua colocação vai de toda a janela e não de uma janela gráfica. Não tenho nada contra isso, mas colocar um texto ao lado de um botão com coordenadas negativas usando a função mql geral é impossível, ou talvez eu não possa fazer isso. Sua função "pxy" é tão boa quanto outras para colocar texto em uma janela de gráfico, mas não fez o trabalho, uma vez que as coordenadas são dadas de forma diferente.


pro_: sim, a MQL está fazendo isso através da definição de propriedades separadas e mantém as posições positivas. Acredito que você pode fazer o mesmo com coordenadas negativas, é por isso que eu implementei isto desta forma. Sobre a função pxy, é capaz de entender - coordenadas com ligeira modificação. Sim janela inteira porque como .dll não podemos ver o eixo do gráfico, etc. Por outro lado, eles parecem estáticos, você pode simplesmente medir sua largura e altura e colocar os textos x,y em relação a isso.

2) as cores não funcionaram na versão 2. Muito obrigado por atualizar para a versão 3. Absolutamente nenhum problema com as cores. Excelente.

A v3 suporta cores em botões, caixas de seleção ainda.


3) mais uma vez eu gostaria de perguntar se é possível usar a função tbPutObject da sua dll para colocar objetos em uma subjanela separada. Seu produto, em minha opinião, seria 10 vezes mais valioso se isso fosse feito. Será algo como um console comercial, e será muito gerencial dentro de uma janela. Além disso, ele resolverá todas as questões de coordenação levantadas no ponto 1.

bem, o trabalho principal era colocá-las em uma janela de gráficos realmente. a colocação em janelas separadas seria muito fácil, mas atualmente escolhemos um caminho. Sua implementação seria ligeiramente difusa se as colocássemos em uma janela gráfica ou em uma janela separada. Em versões posteriores, podemos apoiar isso. Tenho planos de poder fazer o CHART menor sem mudar o tamanho da janela MDI onde o gráfico se senta dentro. Desta forma, poderíamos ter espaço separado à direita ou em baixo para colocar botões adicionais. Eles pareceriam botões ao lado do gráfico.


4) Eu tenho a amostra que você postou aqui e a do site fx1. E é claro que tenho tbRemove para cada um dos objetos em deinit. É só NÃO remover os objetos quando o especialista é removido. Eu não tenho idéia do porquê.

Sim, eu confirmo que isso funcionou uma vez. Estarei verificando esta importante questão

Há um problema, embora eu quis chamar sua atenção. Se o botão ExpertAdvisor do MT4 estiver em uma posição OFF e qualquer um de seus botões for clicado, nada acontece que esteja correto, mas no momento em que o botão ExpertAdvisor é ligado novamente, a EA executa todos os comandos a partir dos cliques. Apenas para um teste eu cliquei em Comprar e Vender enquanto o ExpertAdvisor estava desligado, no momento em que eu o curei em sua compra e venda. Acho que isso é algo a ser consertado.

Sim, você tem toda a competência. Eu não verifiquei esta questão. Eu também estarei trabalhando nisso.

Muito obrigado por testar o mt4gui!

 

fx1.net: antes de publicar meu código, vou verificar seu código de amostra.

Pode ser o problema de eu usar o tbSetText para atualizar o texto das etiquetas em cada tick?

Você está planejando adicionar radiobuttons ao addon? Se não, como podemos mudar o estado de verificação de uma caixa de seleção?

 

tbRemover e tbRemoverTodos os erros foram corrigidos na v0.4

O suporte dacaixa de verificação foi estendido:

int tbSetChecked(int,bool);

int tbIsChecked(int);

O código de demonstração no site foi atualizado.