SE VE DISTINTO

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
LOUIS
Posts: 256
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

SE VE DISTINTO

Post by LOUIS »

Hola Amigos:
Aquí estoy con un problemilla que me ha desconcertado, trabajo en modo console-gui con la versión 3.0.46 (es la mejor para mi necesidad) ... resulta que la pantalla cuando entra en modo mix se ve bien en unas pantallas y en otras no, en todas hay la resolución 1280 x 768

Son 2 problemas:
1) si dice setmode(43,132) la pantalla y las letras deben aparecer más pequeñas (es lo correcto), pero aparece con letras grandes como si estuviera en setmode(25,80).
2) la Label del Procedure Entrada1 no se ve en unas pantallas, cuando en otras sí se ve (y debería verse porque así está programado).

Adjunto 2 imágenes correctas (Foto1.jpg y Foto2.jpg) y 2 imágenes incorrectas (Foto1a.jpg y Foto2a.jpg que se ven mal)


Adjunto el Código:

Code: Select all

#include "HMG.CH"
#define HWND_TOPMOST                              -1
#define SWP_NOSIZE                                0x0001
#define SWP_DRAWFRAME                             0x0020

REQUEST HB_GT_WIN_DEFAULT 

FUNCTION MAIN()
PUBLIC hWnd:=GetConsoleWindowHandle()
PUBLIC CIA:='MI EMPRESA'

   DEFINE WINDOW PRINCIPAL;
      AT 0,0 WIDTH 0 HEIGHT 0 NOSHOW MAIN;
      ON INIT ENTRADA()
   END WINDOW
ACTIVATE WINDOW PRINCIPAL
RETURN

*-----------------------
PROC ENTRADA

DO WHILE .T.
   SetMode(43,132)
   SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )
   SET COLO TO ("GR+*/B+")
   CLEA
   @ 10,10 SAY 'BIENVENIDO A MI PROGRAMA !!!'
   DI=' '
   @ 12,10 SAY 'DESEA ACCESAR AL SISTEMA ? <S/N>' GET DI
   READ
   IF DI='S'
      CLEA
      HIDE_WIND()
      DO ENTRADA1
    ELSE
      RELEASE WINDOW PRINCIPAL
      EXIT
   ENDIF
ENDDO
QUIT
RETU

*-----------------------
PROC ENTRADA1

CLEA
DEFINE WINDOW LOGO;
   AT 0,0 WIDTH 1240 HEIGHT 58 NOCAPTION ON INIT ENTRADA2()
   @ 0,0 LABEL Label_1 WIDTH 1240 HEIGHT 58 VALUE "&CIA" FONT "ALGERIAN" SIZE 36 FONTCOLOR RED BACKCOLOR BLUE
END WINDOW
LOGO.Activate
RETU

*-------------------------
PROC ENTRADA2

SHOW_WIND()
SetMode(20,132)
SetWindowPos( hWnd, HWND_TOPMOST, 0, 58, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )
SET COLO TO ("W+*/B+")

DI=SPACE(30)
@ 00,00 SAY 'HOLA'
@ 10,10 SAY 'DIGA SU NOMBRE' GET DI VALID !EMPT(DI)
@ 19,00 SAY 'FIN'
READ
RELEASE WINDOW LOGO
RETU

*-------------------
FUNCTION HIDE_WIND()

local hWnd := GETCONSOLEWINDOWHANDLE()
HIDEWINDOW(hWnd)
Return 

*-------------------
FUNCTION SHOW_WIND()

local hWnd := GETCONSOLEWINDOWHANDLE()
SHOWWINDOW(hWnd)
Return 








#pragma BEGINDUMP
#define WINVER 0x0600 // for Vista
#define _WIN32_WINNT 0x0600 // for Vista

#include "windows.h"
#include "hbapi.h"

HB_FUNC( GETCONSOLEWINDOWHANDLE )
{
HWND hwnd;
AllocConsole();
hwnd = FindWindowA("ConsoleWindowClass",NULL);
hb_retnl( (LONG) hwnd );
}

HB_FUNC ( SETWINDOWPOS )
{
    HWND hwnd           = (HWND) hb_parnl(1);    // handle to window or control
    HWND hWndInsertAfter= (HWND) hb_parnl(2);    // placement-order handle
    int X               =        hb_parni(3);    // horizontal position
    int Y               =        hb_parni(4);    // vertical position
    int cx              =        hb_parni(5);    // width
    int cy              =        hb_parni(6);    // height
    UINT uFlags         = (UINT) hb_parni(7);    // window-positioning options

    hb_retl( (BOOL) SetWindowPos( hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags ) );
}

#pragma ENDDUMP
Attachments
FOTO 2A.jpg
FOTO 2A.jpg (74 KiB) Viewed 4176 times
FOTO 2.jpg
FOTO 2.jpg (43.06 KiB) Viewed 4176 times
FOTO 1.jpg
FOTO 1.jpg (39.17 KiB) Viewed 4176 times
User avatar
LOUIS
Posts: 256
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: SE VE DISTINTO

Post by LOUIS »

La Imagen que faltó ...
Attachments
FOTO 1A.jpg
FOTO 1A.jpg (73.59 KiB) Viewed 4175 times
User avatar
LOUIS
Posts: 256
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: SE VE DISTINTO

Post by LOUIS »

Amigos:
Pensé que era problema de la pantalla, y la cambié con otro computador, la pantalla de mi pc es Samsung y le puse una AOC y NO, sigue saliendo mal.
En esta pantalla AOC se ve bien con su respectivo CPU y W8.
En mi casa tengo W7 y la pantalla es LG y se ve bien.
No es la versión de windows, porque en W7 se ve bien y en W8 también ... entonces debe ser algo en el CPU de esta Máquina, será la configuración de los herzios ? ... Qué podrá ser ? ... Recuerden que la foto 1 y 2 son las correctas.

Quise adjuntarles el exe a ver cómo les sale a Uds. pero no me deja :(

En todo caso compílenlo Uds. por favor y corránlo para que me digan cómo les salió ...

En espera de sus comentarios, muchas gracias de antemano.
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: SE VE DISTINTO

Post by andyglezl »

Hola LOUIS
( solo como comentario personal )

Yo no utilicé el modo consola de Harbour, en ese aspecto no te puedo ayudar.

Pero tengo un sistema en clipper 5.3 desde hace 15 años que he ido pasando cuando el Sistema Operativo va cambiando
( Win95, Win98, WinXP y ahora Win7). Ya que los clientes que lo tienen, lo conocen muy bien y ademas
no quieren pagar un nuevo desarrollo para Windows.

Mi punto va por el lado de que hay veces que no necesariamente tenemos que programar para solucionar algo, no sé si sea tu caso.
( o que tu quieras aprender hacerlo en modo consola con Harbour y combinado con HMG )

SatinDOS.jpg
SatinDOS.jpg (167.2 KiB) Viewed 4134 times
SatinDOS-2.jpg
SatinDOS-2.jpg (168.34 KiB) Viewed 4134 times
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
LOUIS
Posts: 256
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: SE VE DISTINTO

Post by LOUIS »

Gracias Andrés por responder.

Parece que encontré la solución mediante un Artificio (ver el código adjunto) ... he comprendido que a veces una sentencia puede estar bien escrita y sin embargo no funciona y se debe a que no está en la posición correcta, es decir, una, dos, tres, etc lineas más arriba o más abajo y ahí sí funciona; la verdad este ambiente console-gui me resulta fascinante, hace pensar un poquito pero me gusta :D

Creo que como Yo deben haber sino muchos, algunos que estamos en este modo console-gui y ojalá sigamos compartiendo experiencias.

Saludos a Todos.

Code: Select all

PROC ENTRADA2

SHOW_WIND()
SetMode(20,132)
SetWindowPos( hWnd, HWND_TOPMOST, 0, 58, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )
SET COLO TO ("W+*/B+")

MSGINFO ("LISTO PARA EMPEZAR ?")		&& <--- TRUCO o ARTIFICIO

DI=SPACE(30)
@ 00,00 SAY 'HOLA'
@ 10,10 SAY 'DIGA SU NOMBRE' GET DI VALID !EMPT(DI)
@ 19,00 SAY 'FIN'
READ
RELEASE WINDOW LOGO
RETU
Attachments
PANTALLA.jpg
PANTALLA.jpg (66.5 KiB) Viewed 4079 times
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: SE VE DISTINTO

Post by ndarz »

Hola LOUIS:

Tengo HMG 3.4.2, compile y da error de multiple definicion en SETWINDOWSPOS, entonces lo modifique muy simple, sacandole todo lo de HMG, incluido MI EMPRESA, y compile en Harbour puro y compilo bien, la letra respeta el tamaño de acuerdo al setmode(), hay formas en Harbour de incluir fuentes y tamaño de letra con "gtwvg" y tambien tenes para raton, si vas a utilizar modo consola o algo semi mixto aprende y usa Harbour, se pueden hacer cosas similares a ventanas Windows.

Si no me equivoco el que funciona bien esta echo en FoxPro, que si maneja ventanas, tus mixtos en HMG, bajo consola usan Clipper que no maneja ventanas, no se si alguien tendra otra opinion, pero la mia es que te complicas haciendolo asi, usa Harbour puro y lograras efectos similares al que mostras en las fotos bien, lleva mas codigo y es mas complicado, pero si queres hacer "consola Windows" es la mejor forma.

Mi humilde consejo es que dejes de lado la consola y comiences a programar en HMG puro, ya que el modo mixto no es para DOS, sino que lo estas usando bajo Windows, si vas a usar HMG programa para Windows.

Y como te dije antes, para modo mixto lo mejor es que uses Harbour, hay un par de opciones para hacerlo,
yo te aconsejo que mires gtwvg.
User avatar
LOUIS
Posts: 256
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: SE VE DISTINTO

Post by LOUIS »

Gracias Sr. ndarz por sus comentarios, sin embargo, no es que no aprecie lo que me sugiere, sino que todo se me ha hecho muy fácil con el IDE de HMG :mrgreen:
Post Reply