Sin Nrow ni Ncol

HMG en Español

Moderator: Rathinagiri

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

Sin Nrow ni Ncol

Post by LOUIS »

Hola Amigos

Necesito de vuestra ayuda por favor, tengo que dar click con el mouse, en cualquier lugar de la pantalla y que se muestre una X del tamaño que se la defina ... el problema es que doy click pero se me muestra en forma vertical porque le añadí + CRLF ... pero sin esto, entonces me salen todas horizontales, ambos casos partiendo de la ubicación 0,0

Alguna cosita está mal en el código, pero no encuentro el error ... podrían ayudarme ?
De antemano muchas gracias.

Saludos
Louis

Code: Select all

#include "hmg.ch"

PROCEDURE Main()

    DEFINE WINDOW Win_Main ;
        AT 0, 0 ;
        WIDTH 800 HEIGHT 600 ;
        TITLE "Click para Escribir una X en cualquier lugar de la Pantalla" ;
        MAIN

        // AREA DE DETECCION DEL CLICK (TODA LA VENTANA)
        DEFINE LABEL lblClickArea
            ROW 0
            COL 0
            WIDTH 800
            HEIGHT 600
            VALUE ""
            TRANSPARENT .T.
            ON CLICK { |nRow, nCol| HandleClick(nRow, nCol) }
        END LABEL

        // LABEL PARA MOSTRAR LA SALIDA DE LA X
        DEFINE LABEL lblOutput
            ROW 10
            COL 10
            WIDTH 780
            HEIGHT 580
            VALUE ""
            FONTNAME "Arial"
            FONTSIZE 12
            TRANSPARENT .T.
        END LABEL

    END WINDOW

    Win_Main.Center()
    Win_Main.Activate()
RETURN


// Procedimiento para manejar el clic
PROCEDURE HandleClick(nRow, nCol)
    LOCAL cText, cCurrentValue

    // Genera el texto con la posición del clic
*   cText := "X en posición (" + LTrim( Str( nCol ) ) + ", " + LTrim( Str( nRow ) ) + ")" + CRLF
    cText := "X" + CRLF

    // Obtiene el valor actual del LABEL
    cCurrentValue := Win_Main.lblOutput.Value

    // Actualiza el LABEL con el nuevo texto
    Win_Main.lblOutput.Value := cCurrentValue + cText

RETURN
Attachments
X VERTICAL.jpg
X VERTICAL.jpg (15.77 KiB) Viewed 1450 times
edk
Posts: 999
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland

Re: Sin Nrow ni Ncol

Post by edk »

Code: Select all

#include "hmg.ch"

PROCEDURE Main()

    DEFINE WINDOW Win_Main ;
        AT 0, 0 ;
        WIDTH 800 HEIGHT 600 ;
        TITLE "Click para Escribir una X en cualquier lugar de la Pantalla" ;
        MAIN

        // AREA DE DETECCION DEL CLICK (TODA LA VENTANA)
        DEFINE LABEL lblClickArea
            ROW 0
            COL 0
            WIDTH 800
            HEIGHT 600
            VALUE ""
            TRANSPARENT .T.
            ON CLICK HandleClick()
        END LABEL

        // LABEL PARA MOSTRAR LA SALIDA DE LA X
        DEFINE LABEL lblOutput
            ROW 10
            COL 10
            WIDTH 30
            HEIGHT 30
            VALUE ""
            FONTNAME "Arial"
            FONTSIZE 12
            TRANSPARENT .T.
        END LABEL

    END WINDOW

    Win_Main.Center()
    Win_Main.Activate()
RETURN


// Procedimiento para manejar el clic
PROCEDURE HandleClick()
    Local nRow := 0, nCol := 0
    //LOCAL cText, cCurrentValue

    HMG_GetCursorPos ( ThisWindow.Handle, @nRow, @nCol ) 

    Win_Main.lblOutput.Row := nRow - 8  /* -8 = centre of X */
    Win_Main.lblOutput.Col := nCol - 6  /* -6 = centre of X */
    IF Empty ( Win_Main.lblOutput.Value )
        Win_Main.lblOutput.Value := "X"
    ENDIF

/*
    // Genera el texto con la posición del clic
*   cText := "X en posición (" + LTrim( Str( nCol ) ) + ", " + LTrim( Str( nRow ) ) + ")" + CRLF
    cText := "X" + CRLF

    // Obtiene el valor actual del LABEL
    cCurrentValue := Win_Main.lblOutput.Value

    // Actualiza el LABEL con el nuevo texto
    Win_Main.lblOutput.Value := cCurrentValue + cText

*/

RETURN

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

Re: Sin Nrow ni Ncol

Post by LOUIS »

Hi friend Edward

Thank you very much for your time and kindness, however, excuse me, how do I make the X prevail, and more and more continue to appear?

Regards

Louis
User avatar
LOUIS
Posts: 264
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: Sin Nrow ni Ncol

Post by LOUIS »

Hello to all

Gracias al código que envió el Amigo Edward, pude arreglarlo al modo que quería, lo cual era que no sólo apareciera una X y luego desaparezca, sino que donde se dé click, aparezca la X y se mantenga viva en la pantalla, y así todas las X que sean necesarias, esto es para usarlo en un programa que ya casi concluyo y que luego os compartiré 8-)

Si acaso no lo pueda incorporar al juego que estoy terminando, no me quedará otra que pedir nuevamente vuestra ayuda ... recordad que hago hasta donde pueden mis conocimientos :mrgreen:

Saludos

Louis

Code: Select all

*** GRACIAS A LA AMABILIDAD DEL AMIGO EDWARD
*** SU AYUDA SIEMPRE ES MAGNÍFICA !!!

#include "hmg.ch"

PROCEDURE Main()

PUBLIC i

    DEFINE WINDOW Win_Main ;
        AT 0, 0 ;
        WIDTH 800 HEIGHT 600 ;
        TITLE "Click para Escribir una X en cualquier lugar de la Pantalla" ;
        MAIN

DO INICIO

        // AREA DE DETECCION DEL CLICK (TODA LA VENTANA)
        DEFINE LABEL lblClickArea
            ROW 0
            COL 0
            WIDTH 800
            HEIGHT 600
            VALUE ""
            TRANSPARENT .T.
            ON CLICK HandleClick()
        END LABEL

    END WINDOW

    Win_Main.Center()
    Win_Main.Activate()
RETURN


// Procedimiento para manejar el clic
PROCEDURE HandleClick()
    Local nRow := 0, nCol := 0

    HMG_GetCursorPos ( ThisWindow.Handle, @nRow, @nCol ) 

*   Win_Main.SALIDA.Row := nRow - 8  /* -8 = centre of X */
*   Win_Main.SALIDA.Col := nCol - 6  /* -6 = centre of X */

    F := nRow - 8  /* -8 = centre of X */
    C := nCol - 6  /* -6 = centre of X */

IF i<450
   ETIQ='A'+ALLTRIM(STR(i))		// LABEL
   @ F,C LABEL &ETIQ PARENT Win_Main VALUE "X" WIDTH 30 HEIGHT 30  FONT "ARIAL" SIZE 24 FONTCOLOR BLACK BOLD BACKCOLOR BLUE
   i=i+1
ENDIF

*        Win_Main.SALIDA.Value := "X"
RETURN


FUNCTION INICIO

i=1
RETURN
Attachments
MANY X.jpg
MANY X.jpg (27.33 KiB) Viewed 1413 times
User avatar
LOUIS
Posts: 264
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: Sin Nrow ni Ncol

Post by LOUIS »

Hola amigos

Dejo el link para que vean el prg dónde se aplicó la X que marcaba en pantalla más de una vez, sin embargo luego cambié la X por un drawline, véanlo el prog es la sopa de letras, espero que os guste ...

https://www.hmgforum.com/viewtopic.php?t=7633

Saludos
Louis

P.D.- Aún estoy revisando el prg de los gorilas :oops:
Post Reply