Página 2 de 3
Re: SetMode(25,40)
Enviado: 06 Out 2008 11:51
por DLZ
Com clipper a função SetMode(25,40) em tela cheia funciona, no Xharbour não... Independente do sistema operacional !!
Re: SetMode(25,40)
Enviado: 06 Out 2008 12:32
por sygecom
O xHarbour não é 100% compativel com Clipper, alias xharbour não é clipper, então nesse caso vai ter que procurar por outras soluções, ou tente fazer um teste com o Harbour, talvez funcione !
Re: SetMode(25,40)
Enviado: 06 Out 2008 14:13
por Maligno
Acho que pode nem ser o caso de se falar em compatibilidade, que afinal, parece existir. O problema parece estar sim na implementação da função. Problemas desse tipo minam a resistência da gente, apesar de parecer coisa pequena. Minha sugestão é que o OP migre pra Win32 GUI. Depois que fiz isso, só tenho tido grandes problemas, mas pequenos nunca mais.

))
Re: SetMode(25,40)
Enviado: 06 Out 2008 15:28
por Itamar M. Lins Jr.
DLZ escreveu:Com clipper a função SetMode(25,40) em tela cheia funciona, no Xharbour não... Independente do sistema operacional !!
Caro DLZ, voce pode me mandar via email ou postar aqui no forum o executavel simples, compilado com clipper, setando o video 25x40 ?
Eu fiz uns testes com o harbour e funcionou. Agora em tela cheia, não funciona somente em janela.
É para ver se o XP deixa o clipper setar, pq sendo o [x]Harbour gerador de sistema 32 bits, isso é uma caracteristica do SO.
Saudações,
Itamar M. Lins Jr.
Re: SetMode(25,40)
Enviado: 06 Out 2008 15:46
por DLZ
Código em clipper:
CLEAR
? SETMODE(25,40)
@ 00,00 TO 24,39
INKEY(0)
Cóidog no Xharbour
FUNCTION MAIN()
? SETMODE(25,40)
@ 00,00 TO 24,39
INKEY(0)
No clipper a moldura usa toda a tela e a função SetMode retorna .T.
No Xharbour a moldura usa apenas uma parte da tela e a função SetMode retorna .F.
OBS: Tudo em tela cheia !
Re: SetMode(25,40)
Enviado: 06 Out 2008 16:37
por Itamar M. Lins Jr.
DLZ escreveu:Código em clipper:
CLEAR
? SETMODE(25,40)
@ 00,00 TO 24,39
INKEY(0)
Cóidog no Xharbour
FUNCTION MAIN()
? SETMODE(25,40)
@ 00,00 TO 24,39
INKEY(0)
No clipper a moldura usa toda a tela e a função SetMode retorna .T.
No Xharbour a moldura usa apenas uma parte da tela e a função SetMode retorna .F.
OBS: Tudo em tela cheia !
Usando o clipper 5.2 com rtlink no XP SP3.
Não funcionou, na terceira tentativa usando tela cheia(Alt+Enter) resetou o XP.

É fácil demonstrar isso, no prompt do XP em tela cheia é só digitar:
mode con cols=80 lines=25, se colocarmos cols=40 aparece uma menssagem:
>Não é possivel alterar o número de linhas e colunas em tela cheia.
Pq ás vezes funciona no programa clipper ? é que o clipper gerar executaveis em 16bits para DOS isso é uma caracteristica do DOS que não foi implementada no XP, pode até funcionar, mas a escrita direta no endereço da placa de video não ocorre. O XP não deveria permitir por isso que muitos usuários de linux até brincam demonstrando a simplicidade com que podem derrubar o XP, o linux não permite isso de maneira nenhuma. Isso não funciona no [x]Harbour pq tambem não funciona no XP, não vai funcionar enquanto o comando "mode con" retornar sem exito.
Ps. Estou usando um notebook Acer, no momento para fazer estes testes.
Re: SetMode(25,40)
Enviado: 06 Out 2008 16:45
por alaminojunior
No note não vale !
Aqui no monitor crt 17", aconteceu o mesmo que o Dércio mencionou: Clipper funciona ! xHarbour não funciona !
Re: SetMode(25,40)
Enviado: 06 Out 2008 17:02
por Itamar M. Lins Jr.
alaminojunior escreveu:No note não vale !
Aqui no monitor crt 17", aconteceu o mesmo que o Dércio mencionou: Clipper funciona ! xHarbour não funciona !
Não é problema do monitor, mas sim endereçamento da placa de video, quem cuida disso é o windows XP, pq o aplicativo solicita a resolução ao OS se tem no OS e tambem se o sistema (drive) que controla a placa de video permitir ocorre a troca. O clipper não faz isso, muda por conta e risco sem pergutar ao XP se ele pode fazer isso. Ficou claro agora?
Eu quero saber se via linha de comando em tela cheia o XP permite setar essa resolução ?
Sem usar clipper nem [x]Harbour. OK?
No clipper foi, veja bem foi, feito no DOS que possue esta caracteristica, os sistemas 32 bits não possue esse recurso, não por limitações das linguagens mas porque o sistema operacional não permite isso.
Minha sugestão: Mude para uma lib gráfica. Minigui/Hwgui/OOHG etc...
Saudações,
Itamar M. Lins Jr.
Re: SetMode(25,40)
Enviado: 06 Out 2008 17:15
por Maligno
Não é problema do monitor, mas sim endereçamento da placa de video, quem cuida disso é o windows XP
Sim, mas conforme as características de cada placa de vídeo. Dependendo do notebook, até pode funcionar. Assim como pode não funcionar em alguns desktops.
Re: SetMode(25,40)
Enviado: 06 Out 2008 17:35
por Itamar M. Lins Jr.
Maligno escreveu:Não é problema do monitor, mas sim endereçamento da placa de video, quem cuida disso é o windows XP
Sim, mas conforme as características de cada placa de vídeo. Dependendo do notebook, até pode funcionar. Assim como pode não funcionar em alguns desktops.
É isso.
Então, pode até ser feito no [x]Harbour, C++, etc... abrir uma janela e não mostrar as bordas, botões da janela, que é o que faz a WVT,WVW...
Só que a resolução da tela que no caso aqui do notebook 1280x800 se eu preciso usar uma letra maior, eu simplesmente aumento o tamanho da fonte de letra, e não mudar a resolução para 640X480 por exemplo.
Saudações,
Itamar M. Lins Jr.
Re: SetMode(25,40)
Enviado: 06 Out 2008 18:15
por Maligno
Em tela cheia você não tem caracteres gráficos, mas texto simples, cuja representação está presa à capacidade da placa de vídeo. Exemplo: eu tinha uma placa antiga que me dava 132x30. No XP mesmo. Foi trocar de placa pra não conseguir mais esse modo. Abandonei e agora só uso o padrão 80x25.
Re: SetMode(25,40)
Enviado: 06 Out 2008 18:59
por Itamar M. Lins Jr.
Maligno escreveu:Em tela cheia você não tem caracteres gráficos, mas texto simples, cuja representação está presa à capacidade da placa de vídeo. Exemplo: eu tinha uma placa antiga que me dava 132x30. No XP mesmo. Foi trocar de placa pra não conseguir mais esse modo. Abandonei e agora só uso o padrão 80x25.
Correto.
O grande lance, é que não faz sentido programar em ambiente de janelas, usando a lógica do antigo DOS.
Para quê ficar mudando a resolução de tela a fim de mudar o tamanho da letra? É caracteristica do Windows trabalhar em janelas.
Se a pessoa não quer usar os novos recursos que o Windows e as novas linguagens de programação oferecem ainda preso em conceitos antigos fica muito dificil.
Qual é o objetivo de mudar para a resolução 40x25 ? não é aumentar a letra ? ou diminuir para 132x30?
Usando o [x]harbour mais WVW isso é muito fácil, com HWGUI fica mais fácil ainda, e de uma maneira transparente.
Se o programador ou usuário não quer ver a borda e os botões é so oculta-las.
Se no clipper isso ainda é possível pq determinadas placas de video, são compatíveis, nada empede o usuário te apertar alt+enter ou Alt+tab etc, teclas de atalho caracteristica dos sistemas de janelas, vai mudar para janela da mesma forma, então a pessoa fica numa ilha, pq sabe de ante mão que o sistema dele esta limitado a um determinado tipo de hardware. Veja que os computadores principalmente notebook não vem mais com a porta paralela nem seriais é o progresso. E muita gente acha ruim quando o [x]Harbour não é 100% igual ao clipper e esquece de pará e pensar, o porquê disso. Não é igual pq é melhor.
Saudações,
Itamar M. Lins Jr.
Re: SetMode(25,40)
Enviado: 06 Out 2008 19:21
por Maligno
Concordo com tudo o que você disse. Até sugeri que o OP considerasse uma migração. Acredito que ele já deve estar pensando nisso. Entretanto, não nos esqueçamos do mote do tópico: a dúvida do porquê funciona no Clipper e não funciona no XHarbour, num mesmo hardware. Pra mim parece claro: diferença de implementação. Agora, se não dá, não dá e pronto. Não me consta que exista um "work around" no XHarbour para fazer mudar o comportamento da tal SetMode(). Portanto, cabe ao OP se adaptar à essa limitação e buscar uma alternativa. Gambiarra que seja.
Re: SetMode(25,40)
Enviado: 14 Mar 2009 18:41
por sygecom
Olá Dercio,
Estou realizando diversos teste com Harbour, (Harbour e não xHarbour) e um dos testes foi esse desse topico, e adivinha, deu tudo certinho, o Harbour esta cada vez melhor, vale a pena testar.
Re: SetMode(25,40)
Enviado: 19 Mar 2009 12:43
por sygecom
Para quem quiser ver as diferenças, esta em Anexo, e pelo meus testes por enquanto simples como uns "SET FILTER TO", o Harbour tmb. esta mais rapido que o xHarbour.
Proximo passo é compilar meu sistema com o compilador MSVC + Harbour.