@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 ........