“Desenhar” um retângulo num ecrã touchtscreen

Pll,
Venho mais uma vez recorrer ao Forum que muito me tem ajudado.

Pretendo “desenhar” um retângulo num ecrã touchtscreen com o fundo azul.
Basicamente será uma espécie de botão que irá conter a palavra “NIVEL” alinhada á esquerda com o retângulo, e á frente um conjunto de seis rectangulos mais pequenos (vermelhos) a funcionar como escala.

Não sei se consegui passar a ideia do que pretendo, mas é mais ou menos isto:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x                                                                   x
x            xxx  xxx   xxx  xxx   xxx                     x
x  NIVEL  x  x  x x   x  x  x x    x x                     x
x            xxx  xxx   xxx  xxx   xxx                     x
x                                                                   x
x                                                                   x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ps:desculpem o desenho, mas não tenho mesmo jeito para as artes :smiley:

A resposta a algo assim comeca sempre com uma pergunta:

O que e que ja tens feito?

Eventualmente vamos tambem perguntar:

Onde e que ficaste parado?

Se responderes a ambas agora e bem mais facil de te ajudar alem de nao ficarmos com a sensacao que estamos a fazer isto por ti. :wink:

Boas,
O que estou a fazer é adaptar um código fonte do Fernando Garcia para a minha realidade, (não quero com isto tirar os Créditos que o Fernando merece pelo excelente trabalho que desenvolveu).

Dito isto, o caminho que estava a seguir nesta parte especifica do código era:

setFont(SMALL, 255, 255, 255, 0, 0, 0);
myGLDC.drawRoundRect (x1, y1, x2, y2)
myGLCD.print(“NIVEL”, x1, y1+15)

Se não estou em erro a variação de X1 para X2 é de 120 pixel´s
De Y1 para Y2 é de 30 Pixel´s.

Nesta tela do código o ecrã esta a Preto, o que agora pretendia era “pintar” o rectângulo de “azul”.

Adicionalmente depois irei “encaixar” dentro deste grande rectângulo seis mais pequenos a “Vermelho”, que julgo que o procedimento será semelhante ao que tiver de adoptar para pintar o rectângulo grande a “azul”.

Será qq coisa como isto:
1 - Lê o valor de uma variavel;
2 - Se variavel < a - então um print um rectângulo pequeno;
3 - Se variavel >= a & variavel < b - então print dois rectângulos pequenos;
4 - Se variavel >= b & variavel < c - então print três rectângulos pequenos;
…e por ain fora até aos seis rectângulos.

PS: estou a postar longe de casa pelo que não tenho as coordenadas do X & Y, mas também acredito que isso não será relevante para esta situação.

Aguardo a vossa preciosa ajuda.
Obg
NJPinheiro

Eu arriscaria em como a biblioteca que usas tem uma funcao para isto...

No entanto nao consigo ver que biblioteca estas a usar. Tens um link?

Olá Bubulindo,

Não estou em casa e ainda não fiz upload do código para o Google Drive, hoje não consigo, vou tentar amanhã.

PS:Obrigado pela disponibilidade.

Abraços
NJPinheiro

Já pensou em consultar a tabela ASCI e fazer alguns testes com alguns caracteres?

olá pll,
Resolvido o problema, a solução era simples :wink:

myGLCD.setColor(0, 0, 200);
    myGLCD.fillRoundRect( 8,62, 218,102); // 2º botão, 1ªE 2ª coluna - Personalizar timer 
    myGLCD.setColor(255, 255, 255);
    myGLCD.drawRoundRect( 8,62, 218,102);
    setFont(SMALL, 255, 255, 255, 0,0, 200);
    myGLCD.print("NIVEL",12, 85);
    myGLCD.setColor(255, 0, 0);
    myGLCD.fillRoundRect( 65,87,70 ,93);
    myGLCD.fillRoundRect( 73,84,78 ,93);
    myGLCD.fillRoundRect( 81,82,86 ,93);
    myGLCD.fillRoundRect( 89,79,94 ,93);
    myGLCD.fillRoundRect( 97,76,102 ,93);
    myGLCD.fillRoundRect( 105,73,110 ,93);

agora é só fazer if´s nos varios intervalos, e acrescentar um retangulo preto cada vez que a escala variar :smiley:

Pode não ser a melhor solução em termos de programação...mas para um "maçarico" como eu, já não esta nada mal.

Obg
NJPinheiro