Iniciar Sesión

Ver la Versión Completa : [PowerCOBOL v3] Añadir evento "Resized" al SHEET


Kuk
22 de diciembre de 2015, 16:32
Amigos, aquí os dejo el código para poder reposicionar/redimensionar los controles en caso de redimensionamiento del Sheet.

Para ver el ejemplo en funcionamiento, cread un SHEET, poned un PUSH en el centro del SHEET. Luego añadid un TIMER estableciendo el intervalo de ejecución en 10 y activadlo.

En el evento el TIMER poned lo siguiente:


ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-SCR.
05 WS-POS.
10 WS-X PIC S9(4) COMP-5.
10 WS-Y PIC S9(4) COMP-5.
05 WS-DIM.
10 WS-W PIC S9(4) COMP-5.
10 WS-H PIC S9(4) COMP-5.

01 SV-SCR.
05 SV-POS.
10 SV-X PIC S9(4) COMP-5.
10 SV-Y PIC S9(4) COMP-5.
05 SV-DIM.
10 SV-W PIC S9(4) COMP-5.
10 SV-H PIC S9(4) COMP-5.

01 BTN-SCR.
05 BTN-POS.
10 BTN-X PIC S9(4) COMP-5.
10 BTN-Y PIC S9(4) COMP-5.
05 BTN-DIM.
10 BTN-W PIC S9(4) COMP-5.
10 BTN-H PIC S9(4) COMP-5.

PROCEDURE DIVISION.

MOVE POW-POSITION OF SHEET1 TO WS-SCR

IF WS-DIM NOT = SV-DIM
MOVE WS-SCR TO SV-SCR

MOVE POW-POSITION OF PUSH1 TO BTN-SCR

COMPUTE BTN-X = (WS-W - BTN-W) / 2

MOVE BTN-SCR TO POW-POSITION OF PUSH1
END-IF



Compilad y ejecutad el programa. Al rediemnsionar el SHEET el PUSH se desplazará quedándose siempre en el centro horizontalmente.