Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Posición del cursor en un textbox... (https://www.cobolforo.es/showthread.php?t=313)

Fito 22 de enero de 2016 22:46

Posición del cursor en un textbox...
 
Hola Amigos:

Estoy editando un cuadro de texto, de alguna manera puedo saber dónde está posicionado el cursor, supongamos que el cuadro de texto sea de 80 caracteres, necesito saber cuál de todos ellos estoy escribiendo.

Espero haber sido claro.

Saludos. Fito...

Rapinto 23 de enero de 2016 20:50

2 Archivos Adjunto(s)
Fito,

A CMText do Powercobol, não tem a propriedade "SelStart".
Não é possível diretamente saber onde está o cursor.
Usando as API's do Windows, claro que se pode saber.
Utiliza este código:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  EM_GETSEL            PIC S9(009) COMP-5 VALUE 176.
  5.  01  EM_SETSEL            PIC S9(009) COMP-5 VALUE 177.
  6. *
  7.  01  LCURPOS              PIC S9(009)    COMP-5.
  8.  01  TXTHWND              PIC S9(009)    COMP-5    VALUE ZERO.
  9.  01  WZERO                PIC S9(009)    COMP-5    VALUE ZERO.
  10. *
  11.  PROCEDURE       DIVISION.
  12.  MAIN SECTION.
  13.  MAIN-00.
  14.     INVOKE CMTEXT1 "SETFOCUS".
  15.     CALL "GetFocus"   WITH STDCALL RETURNING  TXTHWND.
  16. *
  17.     CALL "SendMessageA" WITH STDCALL USING
  18.                        BY VALUE TXTHWND
  19.                        BY VALUE EM_GETSEL
  20.                        BY VALUE WZERO  
  21.                        BY VALUE WZERO
  22.                   RETURNING LCURPOS.
  23.     COMPUTE LCURPOS = LCURPOS / 65536
  24.     MOVE LCURPOS TO "CAPTION" OF CMSTATIC1.

No evento "MouseMove" e no evento "KeyUp" faz um "Call" a esta rotina.
Anexo um exemplo em PowerCobol 9.0

Un Saludo
Rui

Fito 3 de febrero de 2016 16:14

Hola Rapinto:

Ahi estuve probando lo tuyo y funciona bien. El tema es que en las opciones de compilación tiene la cláusula NOALPHA, si inserto todo eso dentro de mi form esta cláusula me muchos errores.

Saludos. Fito...

Kuk 3 de febrero de 2016 16:52

Fito, pon ALPHAL(WORD)


La franja horaria es GMT +2. Ahora son las 15:19.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.