Ver Mensaje Individual
  #2
Antiguo 23 de enero de 2016, 20:50
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

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
Imágenes Adjuntas
 
Archivos Adjuntos
Tipo de Archivo: zip TextMan.zip (41,3 KB)Descargas: 155
Rapinto is offline   Responder Con Cita