Portada
Banner
Portada Foros Manuales Enlaces Email
clear1x1.gif clear1x1.gif clear1x1.gif
clear1x1.gif
clear1x1.gif

Portada
Foros
Manuales
Enlaces
Distribuidores
Precios
Sugerencias

Contacto

 

clear1x1.gif clear1x1.gif
 Guía rápida de inicio al GUI de Visual Pro/5 (Parte 32/68)
Primero Previo Próximo Último

...
0080 PRINT (1)'TEXT'(104,65,22,15,10,"- - - -",$$)
0090 PRINT (1)'TEXT'(105,8,38,84,40,"La idea es que cada vez que oprima OK se
0090:genere un ciclo del 1 al 10, para mostrar los números que indique arriba
0090:.",$$)
0100 PRINT (1)'BUTTON'(1,20,80,50,15,"OK",$$); REM "ID del Boton OK es 1.
0110 DIM e$:TMPL(1)
0120 REM
0130 lee_eventos:
0140 READ RECORD(1,SIZ=LEN(e$))e$
0150 PRINT e.context," ",e.code$,e.id," ",HTA(BIN(e.flags,1)),e.x,e.y
0160 REM
0170 IF e.code$="X" THEN PRINT (1)'DESTROY'; STOP
0180 IF e.code$<>"c" THEN GOTO ver_si_ok
0190 REM "Se nos reporta que usuario activó una caja de chequeo, entonces hay
0190:hay que desactivar la otra
0200 PRINT (1)'UNCHECK'(103-e.id+100); REM "Desactiva CHECKBOX 101 o 102
0210 PRINT (1)'TITLE'(105-e.id+100,"- - - -"); REM "Afecta TEXT 103 O 104
0220 GOTO lee_eventos
0230 REM
0240 ver_si_ok:
0250 IF e.code$<>"B" THEN GOTO lee_eventos
0260 IF e.id<>1 OR DEC(CTRL(1,101,2))+DEC(CTRL(1,102,2))=0 THEN GOTO lee_event
0260:os
0270 IF DEC(CTRL(1,101,2))=1 THEN LET caja=103,inicio=1 ELSE LET caja=104,inic
0270:io=2
0280 FOR t=inicio TO 10 STEP 2; PRINT (1)'TITLE'(caja,STR(t:"0000")); WAIT 1;
0280:NEXT t
0290 GOTO lee_eventos

Ya en la realidad, el programa anterior quedaría mejor implementado si cambiáramos los 'CHECKBOX' por 'RADIOBUTTON', pero como aún no los hemos estudiado, dejémoslo así. Este cambio le queda de tarea para cuando aprenda a usarlos en lo que sigue de esta sección.

Para poder ver más los botones de radio, necesitaremos cambiar el programa en dos modos.

1.  Necesitamos crear al menos dos Botones de Radio, ya que operan siempre como un conjunto, y

2.  Necesitaremos añadir una línea al programa para agrupar los botones después de creados.

Las siguientes tres líneas cambiarán al reportero de eventos que hemos estado utilizando para hacer ese trabajo.

0040 PRINT (1)'RADIOBUTTON'(101,10,10,50,15,"Opción 1",$04$)
0041 PRINT (1)'RADIOBUTTON'(102,10,30,50,15,"Opción 2",$$)
0042 PRINT (1)'RADIOGROUP'(101,102)

Las primeras dos líneas ya deben serle familiares. Causan que nos sean colocados controles de botones de radio, con valores 101 y 102 en sus ID. El $04$ es la bandera de "inicialmente chequeado".

¡NOTA! No es un requisito activar un botón de radio inicialmente, pero es buena práctica de programación, ya que al usuario nunca se le debe permitir des-chequear todos los botones.

La línea 42 introduce el mnemónico 'RADIOGROUP'. Coge una lista de dos o más controles de IDs de botones de radio y los asigna a un grupo. Los botones de radio no operarán hasta que sean asignados a un grupo. Usted puede crear tantos grupos de botones de radio como usted guste en una ventana. Nunca asigne un mismo botón de radio a más de un grupo.

Ahora vamos a correr el programa y observar el reporte de eventos. Cada uno de los botones de radio genera eventos del tipo 'c', indicando cuál botón ha sido chequeado. Ningún reporte de "des-chequeado" será generado para los botones de radio.

Interrumpa el programa y trate de operar los botones de radio directamente con las siguientes declaraciones de programa:

PRINT (1)'CHECK'(101)
PRINT (1)'CHECK'(102)

Primero Previo Próximo Último

Portada -- Foros -- Manuales -- Enlaces-- Sugerencias
Para comentarios: webmaster@essnet.com

clear1x1.gif
clear1x1.gif
clear1x1.gif
Portada Email Foros