Citación del post de
fastpho
|
❞
@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:
*-----RUTINAS PARA MOVER LA FORM SIN TITULO 01 GLOBAL-DATA GLOBAL. 02 G-DRAG-START PIC 1(1) BIT. 88 G-IS-DRAG-START VALUE B"1". 01 tempx PIC S9(9) COMP-5 IS GLOBAL. 01 tempy PIC S9(9) COMP-5 IS GLOBAL. 01 new-tempx PIC S9(9) COMP-5 IS GLOBAL. 01 new-tempy PIC S9(9) COMP-5 IS GLOBAL. 01 ScreenLeft PIC S9(9) COMP-5 IS GLOBAL. 01 ScreenTop PIC S9(9) COMP-5 IS GLOBAL. 01 ScreenWidth PIC S9(9) COMP-5 IS GLOBAL. 01 ScreenHeight PIC S9(9) COMP-5 IS GLOBAL. 01 ScreenScale PIC S9(4) COMP-5 IS GLOBAL. 01 W-BUTTON PIC S9(4) COMP-5 IS GLOBAL. 01 W-BOOL REDEFINES W-BUTTON IS GLOBAL. 02 FILLER PIC 1(5) BIT. 02 W-BUTTON-CENTER PIC 1(1) BIT. 02 W-BUTTON-RIGHT PIC 1(1) BIT. * 88 W-IS-BUTTON-RIGHT VALUE B"0". 02 W-BUTTON-LEFT PIC 1(1) BIT. 88 W-IS-BUTTON-LEFT VALUE B"1". 02 FILLER PIC 1(8) BIT. *------------------------------------------------------
En el Evento Box-LBLTITULO-MouseUp
Código COBOL:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 01 POW-BUTTON PIC S9(4) COMP-5. 01 POW-SHIFT PIC S9(4) COMP-5. 01 POW-X COMP-1. 01 POW-Y COMP-1. PROCEDURE DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y. IF G-IS-DRAG-START THEN MOVE B"0" TO G-DRAG-START move 0 to "MousePointer" OF pow-self end-if.
En el Evento Box-LBLTITULO-MouseDown
Código COBOL:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 01 POW-BUTTON PIC S9(4) COMP-5. 01 POW-SHIFT PIC S9(4) COMP-5. 01 POW-X COMP-1. 01 POW-Y COMP-1. PROCEDURE DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y. move POW-BUTTON to W-BUTTON. move pow-x to tempx. move pow-y to tempy. IF W-IS-BUTTON-LEFT THEN MOVE B"1" TO G-DRAG-START end-if.
En el Evento Box-LBLTITULO-MouseMove
Código COBOL:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 01 POW-BUTTON PIC S9(4) COMP-5. 01 POW-SHIFT PIC S9(4) COMP-5. 01 POW-X COMP-1. 01 POW-Y COMP-1. PROCEDURE DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y. IF G-IS-DRAG-START THEN compute new-tempy = "Top" OF pow-self + pow-y - tempy compute new-tempx = "Left" OF pow-self + pow-x - tempx move new-tempy to "Top" OF pow-self move new-tempx to "Left" OF pow-self MOVE 2 TO "MousePointer" OF POW-SELF 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 !!!!