Clarion - Como obtener el valor de un botón creado de forma dinámica, o sea, en tiempo de ejecución ?

 
Vista:

Como obtener el valor de un botón creado de forma dinámica, o sea, en tiempo de ejecución ?

Estoy trabajando con Clarion 6.3:
Los botones los puedo crear correctamente en tiempo de ejecución, con eso no hay temas, el tema es cuando trato de obtener el valor que tienen al presionarlos.. no me devuelve nada..

La idea es a partir de una tabla, crear un conjunto de botones (articulos) y cuando presione esos botones, pues debe tomar el codigo del articulo o el FEQ, pero no toma nada, no devuelve ningun valor..

Su ayuda..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Como obtener el valor de un botón creado de forma dinámica, o sea, en tiempo de ejecución ?

Publicado por Marcelo Madelón (292 intervenciones) el 25/05/2022 21:48:13
Para cada asiento creo un botón luego cuando lo presiona el operador traigo el numero de asiento sobre el que hizo click


! Hacer plano para coche de pasajeros

LOOP C#= 101 TO 148
!LE SUMO 100 PARA QUE NO SE MEZCLEN CON OTROS CONTROLES
COL#+=1
IF COL# = 3 THEN COL#=4. !PASILLO :)
IF COL# = 6
COL# = 1
FIL#+=1
END
X# = CREATE(C#, CREATE:button)
IF ERRORCODE() THEN STOP (ERROR()).
X#{PROP:XPOS} = COL# * 30
X#{PROP:YPOS} = FIL# * 12
X#{PROP:TEXT} = C#-100
X#{PROP:BACKGROUND} = COLOR:YELLOW
X#{PROP:SKIP} = True
X#{PROP:LEFT} = True
X#{PROP:WIDTH} = 25
X#{PROP:HEIGHT} = 10
UNHIDE(X#)
END

El loop puede ser recorriendo tu tabla de asientos y con X#{PROP:BACKGROUND}
podrias asignarles diferentes colores...

Ademas, en WindowManager.TakeAccepted puedes preguntar por
!ACCEPTED() - 100 y te va a dar el numero de asiento sobre el que se hizo
!click...

! Para Posicionarce sobre el registro del browse cuando oprime el boton
IF ACCEPTED() > 100
GLO:CanAsientos = ACCEPTED() - 100
CH2:NumeroContrato = CO1:NumeroContrato
CH2:Asiento = GLO:CanAsientos
SET (CH2:KeyContratoAsiento,CH2:KeyContratoAsiento)
K# = 1
IF Access:Coches02.Fetch(CH2:KeyContratoAsiento)
K# = 0
END
IF K# = 0
Select(?Insert:3)
!CYCLE
ELSE
BRW2.ResetFromFile()
ThisWindow.Reset(2)
BRW2.StartAtCurrent = True
Display
Select(?Change:3)
!CYCLE
END
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como obtener el valor de un botón creado de forma dinámica, o sea, en tiempo de ejecución ?

Publicado por Hector (2 intervenciones) el 26/05/2022 20:31:40
Muchas Gracias. Me ha sido muy Útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar