Clipper On Line • Ver Tópico - Ferramenta para desenho de telas

Ferramenta para desenho de telas

Discussão sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

 

Ferramenta para desenho de telas

Mensagempor rmlazzari » 14 Jan 2016 18:18

Amigos, talvez haja quem compartilhe desse problema comigo, não sei... mas cada vez que tenho que "bolar" uma tela no bom e velho 80 x 25 é um suadouro "da peste". Tem vezes que gasto muito mais para definir o lugar de uma mensagem do que do que o complexíssimo algorítimo que a gera.

Será que alguém conhece um utilitário que me permitisse criar janelas e movê-las prá lá e prá cá, ajeitando até que, quando estivesse legal, algum comando transformasse essa imagem naquele monte de @...says? Quem sabe escolher até um fundo hachureado para a tela, uma cor que fosse...

Alguém conhece ferramenta assim?

Em tempo e a propósito de cores de telas, xeretando aqui no fórum uma dica de um forista (de quem, se não se importar, agradeço e declino o Maligno nome que usa, rs...), fiz o seguinte:

func esmaece(msg,opc)
loca val_ret := 0
loca abc := savescreen(00,00,24,79)
loca def := ''
loca ligado := .t.
loca i := 0
for i = 1 to len(abc)
   if ligado
      def = def + subs(abc,i,1)
   else
      def = def+'x'
   endi
   ligado = !ligado
next
restscreen(00,00,24,79,def)
if opc = NIL
   alert(msg)
   val_ret = 0
else
   val_ret = alert(msg,opc)
endi
restscreen(00,00,24,79,abc)
retu val_ret


Exemplo de uso:
if esmaece("Confirma saida do sistema?",{"Sim","Nao"}) = 1
   quit
endi


Escolhi substituir os bytes pares na string que o savescreen guardou por esse 'x' porque fica uma tela esmecida, um cinza claro com todas as outras cores em cinza escuro (não preto). E escolhi esse caracter depois de testar um monte de outros fazendo um loop de substituição...

Não sei se essa é uma dica importante para a seção de Dicas, se alguém achar que é pode colocar por lá.

Grato.
rmlazzari
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 64
Data de registro: 09 Dez 2013 13:18
Cidade/Estado: são paulo
Curtiu: 35 vezes
Mens.Curtidas: 0 vez

Ferramenta para desenho de telas

Mensagempor JoséQuintas » 14 Jan 2016 20:48

Bom...
A primeira coisa que me veio à cabeça como ferramenta foi: o cérebro.
Mas não sei de que tipo de tela está dizendo.

Tem vezes que gasto muito mais para definir o lugar de uma mensagem do que do que o complexíssimo algorítimo que a gera.


Não sei de que tipo de mensagem está dizendo. Aqui uso sempre a mesma posição da tela, afinal, o usuário não vai ficar caçando aonde é que a mensagem foi colocada, é melhor sempre no mesmo lugar.

uma tela no bom e velho 80 x 25


Esse tamanho é velho, mas deixou de ser bom.
No Clipper dá pra usar 25 x 80, 28 x 80, 43 x 80, 50 x 80. Estou na dúvida sobre 33 x 80, vai ter que testar.
Na verdade não é o Clipper que limita, é o sistema operacional.

Ao invés de quebrar a cabeça pra posicionar as coisas, porque não deixa o próprio programa fazer isso, pelo menos a maioria das coisas?

Exemplo: Aqui uso as duas linhas de baixo pra mensagem.
FUNCTION Mensagem( cTexto )
   @ MaxRow() - 1, 0 CLEAR TO MaxRow(), MaxCol()
   @ MaxRow() - 1, 0 SAY "Mensagem na linha máxima - 1"
   @ MaxRow(),      0 SAY "Mensagem na linha máxima
   RETURN NIL


Isso já vai deixar a mensagem sempre na mesma posição.
Só usar Mensagem( "digite algo" )
E mesmo se alterar o tamanho da tela, a mensagem vai sempre se ajustar automaticamente às duas últimas linhas.

Agora say/get:

@ 2, 0 SAY "teste:" GET cTeste
@ Row(), Col() + 5 SAY "outro:" GET cOutro
@ Row(), Col() + 5 SAY "Mais um:" GET cMaisUm
@ Row() + 1, 0 SAY "Segunda linha row + 1 " GET oGet
READ


Row() + 1 já vai posicionar na linha de baixo do say/get anterior
Row(), Col() + 5 já vai posicionar na mesma linha, 5 colunas pra frente

É por aí, Facilita mais do que qualquer ferramenta.
Se precisar depois, vai ser só fazer algum ajuste simples.

É apenas sugestão. Não sei de que tipo de tela está falando.
Mas com certeza aumentar o tamanho de linhas/colunas pode ajudar a distribuir as coisas melhor.

Teste aí estas duas:
SetMode( 28, 80 )
SetMode( 33, 80 )


Nota:
No caso de configuração inválida, o Windows define pra 25 x 80.
43 X 80 e 50 X 80 deixam as letras muito juntas
33 x 80 não lembro se é configuração válida
28 X 80 com certeza é válida, são 3 linhas a mais, que ajudam muito.
25 x 80 é o default do DOS
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ferramenta para desenho de telas

Mensagempor JoséQuintas » 14 Jan 2016 21:08

Só mais uma coisa:

Não sei se está se referindo a Clipper ou a Harbour.
O que passei se refere a Clipper/DOS.

No Harbour é à vontade, qualquer quantidade de linhas e colunas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ferramenta para desenho de telas

Mensagempor rmlazzari » 14 Jan 2016 22:55

Na verdade falo de telas com as do Windows, talvez só com o Harbour mesmo. Vi um aplicativo seu, "Um teste para deixar com vontade, que abre um monte de pequenas janelas, inclusive com o "X" em cima à direita, que as fecharia, acho que seria algo por aí.

Agora quanto às posições de tela, minha questão é planejar - passar do cérebro para código, mesmo - antes de programá-las, para não saírem desproporcionais ou deslocadas em relação à tela maior... digamos a janela de um achoice. O que eu gostaria é de uma ferramenta que me permitisse mover as janelas na tela, mudá-las de lugar, arranjá-las até que a interação entre usuário e programa fique o mais intuitiva possível. Enfim, um jeito de manipular posições das janelas na tela antes de programá-las. Esses outros setmodes, caro José, mudam o tamanho das fontes, não interessam.
Olha aqui um exemplo de janela que falo:

Imagem

Mas mesmo que não seja assim, tão... Windows, se houver ferramenta para escolher o lugar de um campo ou de uma janela movendo-os pela tela para que essa ferramenta escreva, no final das contas, os @...say, seria o ideal,

Vamos ver se alguém conhece algo assim...

De toda forma, gratíssimo!
rmlazzari
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 64
Data de registro: 09 Dez 2013 13:18
Cidade/Estado: são paulo
Curtiu: 35 vezes
Mens.Curtidas: 0 vez

Ferramenta para desenho de telas

Mensagempor JoséQuintas » 14 Jan 2016 23:31

Isso já tem a ver com LIB gráfica.
Talvez encontre algo na minigui.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ferramenta para desenho de telas

Mensagempor asimoes » 15 Jan 2016 10:45

Se não me engano a GasPro tinha essa recurso de desenhar tela.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para Ferramentas de Apoio

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro