0
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:COBOL Código:
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.
Marcadores