Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL] Control OCX ucBOX y ejemplo pwc5 (https://www.cobolforo.es/showthread.php?t=1505)

fastpho 3 de agosto de 2022 15:12

Control OCX ucBOX y ejemplo pwc5
 
2 Archivos Adjunto(s)
Este es un Control de Usuario realizado en VB6 por Leandro Ascierto , lo converti y modifique a ocx para tener compatibilidad con PowerCobol , se pueden lograr hacer muchas y lograr una interfaz mas moderna.

link : http://leandroascierto.com/blog/836-2/
Se pueden crear varios controles button , label , checkbox , toggle botton , radio button , image tc
Eventos : Click , DobleClick , MouseOver , MouseLeave etc
Propiedades:BackColor , Border , ForeColor , FrontColor , Hotline , Picture
Metodos : PictureFromURL PictureFromPath
ocx: ElsisBoxUpgr.ocx registrarla

Soporta fuentes tipo icofonts : como Segoe MDL2 , IconsFont Awsome
Soporta imagenes de tipo png , jpg etc

Saludos....

Fito 3 de agosto de 2022 16:06

Muchas gracias. muy buen aporte

Saludos

Fito....

Joseg 4 de agosto de 2022 15:16

Muito bom!

Paulo 4 de agosto de 2022 16:24

Obrigado.
Bom trabalho

Joseg 4 de agosto de 2022 16:25

Cita:

Citación del post de fastpho (Mensaje 7981)
Este es un Control de Usuario realizado en VB6 por Leandro Ascierto , lo converti y modifique a ocx para tener compatibilidad con PowerCobol , se pueden lograr hacer muchas y lograr una interfaz mas moderna.

link : http://leandroascierto.com/blog/836-2/
Se pueden crear varios controles button , label , checkbox , toggle botton , radio button , image tc
Eventos : Click , DobleClick , MouseOver , MouseLeave etc
Propiedades:BackColor , Border , ForeColor , FrontColor , Hotline , Picture
Metodos : PictureFromURL PictureFromPath
ocx: ElsisBoxUpgr.ocx registrarla

Soporta fuentes tipo icofonts : como Segoe MDL2 , IconsFont Awsome
Soporta imagenes de tipo png , jpg etc

Saludos....

Olá,

Como saber este número:
60619

Código COBOL:
  1. MOVE 60619 TO "IconCharCode" OF BOX-CHECK1(1)

Quais seriam os números para o exemplo:
CheckBox ON/OFF

Gracias
José

fastpho 4 de agosto de 2022 17:22

Hola @Joseg , los valores son unicode convertidos a decimal
es decir el valor E700(unicode)(hex) su valor dec es 59136 tipo long para la ocx

Código COBOL:
  1.      IF "IconCharCode" OF BOX-CHECK5 = 59193 THEN *>HEX E739
  2.          MOVE 59194 TO "IconCharCode" OF BOX-CHECK5  *>HEX E73A
  3.      ELSE
  4.          MOVE 59193 TO "IconCharCode" OF BOX-CHECK5  *>HEX E739
  5.      END-IF.

En este link estan los valores del fuente Segoe MDL2 Assets icons
Segoe MDL2 Assets icons - Windows apps | Microsoft Docs

Saludos ....

Joseg 4 de agosto de 2022 18:35

Cita:

Citación del post de fastpho (Mensaje 7997)
Hola @Joseg , los valores son unicode convertidos a decimal
es decir el valor E700(unicode)(hex) su valor dec es 59136 tipo long para la ocx

Código COBOL:
  1.      IF "IconCharCode" OF BOX-CHECK5 = 59193 THEN *>HEX E739
  2.          MOVE 59194 TO "IconCharCode" OF BOX-CHECK5  *>HEX E73A
  3.      ELSE
  4.          MOVE 59193 TO "IconCharCode" OF BOX-CHECK5  *>HEX E739
  5.      END-IF.

En este link estan los valores del fuente Segoe MDL2 Assets icons
Segoe MDL2 Assets icons - Windows apps | Microsoft Docs

Saludos ....


Existe alguma possibilidade da janela ser Moveable:
Indicates whether the form is moveable when the title bar is dragged or the system menu Move function is selected. This corresponds to the Moveable property.


"Style" sem "TitleBar" penso que não há alternativa, mas se houvesse seria interessante, as janelas ficavam mais "modernas" !!!

Gracias.

fastpho 4 de agosto de 2022 20:08

@Joseg Se puede mover , arrastrar y soltar el formulario perfectamente desde Box-LBLTITULO = Titulo con la siguientes lineas
Declarar en el WORKING-STORAGE
Código COBOL:
  1. *-----RUTINAS PARA MOVER LA FORM SIN TITULO
  2.  01 GLOBAL-DATA GLOBAL.
  3.     02  G-DRAG-START    PIC  1(1)  BIT.
  4.         88  G-IS-DRAG-START VALUE B"1".
  5.  01 tempx               PIC S9(9) COMP-5 IS GLOBAL.
  6.  01 tempy               PIC S9(9) COMP-5 IS GLOBAL.
  7.  01 new-tempx           PIC S9(9) COMP-5 IS GLOBAL.
  8.  01 new-tempy           PIC S9(9) COMP-5 IS GLOBAL.
  9.  01 ScreenLeft          PIC S9(9) COMP-5 IS GLOBAL.
  10.  01 ScreenTop           PIC S9(9) COMP-5 IS GLOBAL.
  11.  01 ScreenWidth         PIC S9(9) COMP-5 IS GLOBAL.
  12.  01 ScreenHeight        PIC S9(9) COMP-5 IS GLOBAL.
  13.  01 ScreenScale         PIC S9(4) COMP-5 IS GLOBAL.
  14.  01 W-BUTTON            PIC S9(4) COMP-5 IS GLOBAL.
  15.  01 W-BOOL  REDEFINES W-BUTTON IS GLOBAL.
  16.    02  FILLER           PIC  1(5)  BIT.
  17.    02  W-BUTTON-CENTER  PIC  1(1)  BIT.
  18.    02  W-BUTTON-RIGHT   PIC  1(1)  BIT.
  19. *      88  W-IS-BUTTON-RIGHT  VALUE B"0".
  20.    02  W-BUTTON-LEFT    PIC  1(1)  BIT.
  21.        88  W-IS-BUTTON-LEFT  VALUE B"1".
  22.    02  FILLER           PIC  1(8)  BIT.  
  23. *------------------------------------------------------
En el Evento Box-LBLTITULO-MouseUp
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.        IF G-IS-DRAG-START THEN
  11.           MOVE B"0"   TO G-DRAG-START          
  12.           move 0 to "MousePointer" OF pow-self
  13.        end-if.  
En el Evento Box-LBLTITULO-MouseDown
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.              
  11.        move POW-BUTTON to W-BUTTON.
  12.        move pow-x      to tempx.
  13.        move pow-y      to tempy.
  14.        IF W-IS-BUTTON-LEFT THEN
  15.            MOVE B"1" TO G-DRAG-START
  16.        end-if.        
En el Evento Box-LBLTITULO-MouseMove
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.  
  11.      IF G-IS-DRAG-START THEN
  12.        compute new-tempy =  "Top" OF pow-self + pow-y - tempy
  13.        compute new-tempx =  "Left" OF pow-self + pow-x - tempx
  14.        move new-tempy to "Top" OF pow-self
  15.        move new-tempx to "Left" OF pow-self
  16.        MOVE 2  TO "MousePointer"  OF POW-SELF
  17.      END-IF.
Estas rutinas tambien las podes colocar en los eventos MouseDown - MouseUp - MouseMove del formulario para mover y soltar
desde el formulario
Saludos ........

Joseg 5 de agosto de 2022 13:49

Cita:

Citación del post de fastpho (Mensaje 8001)
@Joseg Se puede mover , arrastrar y soltar el formulario perfectamente desde Box-LBLTITULO = Titulo con la siguientes lineas
Declarar en el WORKING-STORAGE
Código COBOL:
  1. *-----RUTINAS PARA MOVER LA FORM SIN TITULO
  2.  01 GLOBAL-DATA GLOBAL.
  3.     02  G-DRAG-START    PIC  1(1)  BIT.
  4.         88  G-IS-DRAG-START VALUE B"1".
  5.  01 tempx               PIC S9(9) COMP-5 IS GLOBAL.
  6.  01 tempy               PIC S9(9) COMP-5 IS GLOBAL.
  7.  01 new-tempx           PIC S9(9) COMP-5 IS GLOBAL.
  8.  01 new-tempy           PIC S9(9) COMP-5 IS GLOBAL.
  9.  01 ScreenLeft          PIC S9(9) COMP-5 IS GLOBAL.
  10.  01 ScreenTop           PIC S9(9) COMP-5 IS GLOBAL.
  11.  01 ScreenWidth         PIC S9(9) COMP-5 IS GLOBAL.
  12.  01 ScreenHeight        PIC S9(9) COMP-5 IS GLOBAL.
  13.  01 ScreenScale         PIC S9(4) COMP-5 IS GLOBAL.
  14.  01 W-BUTTON            PIC S9(4) COMP-5 IS GLOBAL.
  15.  01 W-BOOL  REDEFINES W-BUTTON IS GLOBAL.
  16.    02  FILLER           PIC  1(5)  BIT.
  17.    02  W-BUTTON-CENTER  PIC  1(1)  BIT.
  18.    02  W-BUTTON-RIGHT   PIC  1(1)  BIT.
  19. *      88  W-IS-BUTTON-RIGHT  VALUE B"0".
  20.    02  W-BUTTON-LEFT    PIC  1(1)  BIT.
  21.        88  W-IS-BUTTON-LEFT  VALUE B"1".
  22.    02  FILLER           PIC  1(8)  BIT.  
  23. *------------------------------------------------------
En el Evento Box-LBLTITULO-MouseUp
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.        IF G-IS-DRAG-START THEN
  11.           MOVE B"0"   TO G-DRAG-START          
  12.           move 0 to "MousePointer" OF pow-self
  13.        end-if.  
En el Evento Box-LBLTITULO-MouseDown
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.              
  11.        move POW-BUTTON to W-BUTTON.
  12.        move pow-x      to tempx.
  13.        move pow-y      to tempy.
  14.        IF W-IS-BUTTON-LEFT THEN
  15.            MOVE B"1" TO G-DRAG-START
  16.        end-if.        
En el Evento Box-LBLTITULO-MouseMove
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  LINKAGE         SECTION.
  5.  01  POW-BUTTON  PIC S9(4) COMP-5.
  6.  01  POW-SHIFT   PIC S9(4) COMP-5.
  7.  01  POW-X       COMP-1.
  8.  01  POW-Y       COMP-1.
  9.  PROCEDURE       DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
  10.  
  11.      IF G-IS-DRAG-START THEN
  12.        compute new-tempy =  "Top" OF pow-self + pow-y - tempy
  13.        compute new-tempx =  "Left" OF pow-self + pow-x - tempx
  14.        move new-tempy to "Top" OF pow-self
  15.        move new-tempx to "Left" OF pow-self
  16.        MOVE 2  TO "MousePointer"  OF POW-SELF
  17.      END-IF.
Estas rutinas tambien las podes colocar en los eventos MouseDown - MouseUp - MouseMove del formulario para mover y soltar
desde el formulario
Saludos ........

Perfeito :)

Todos os OCX deste site: http://leandroascierto.com/blog/category/ocx/
são muito interessantes !!!!

Nitzer 8 de agosto de 2022 10:15

Felicidades por el trabajo, impresionante aporte.


La franja horaria es GMT +2. Ahora son las 01:06.

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