https://foro.gambas-es.org/viewtopic.php?f=1&t=617
-----------------------------------
Shell
Viernes, 07 May 2010, 13:58

Tipica Aplicación De La Calculadora
-----------------------------------
Hola a todos!.

Pues practicando con Gambas, estaba intrigado de como hacer una matriz de controles, acostumbrado a VB, aprendí como hacerla
en Gambas.Quizás algo mas complicado, desde la ventana de propiedades cree el grupo y añadí los índices en la propiedad Tag.
Y leí también el tema en nuestros foro, como tiene que ser. :-)

Me encuentro el problema tan simple del botón de la coma. :-D
Para no repetirla.

Así que tenemos un control label que hace de pantalla y puede contener o no la ",".
Con la instrucción Instr(Pantalla.text,",") dará true o false según este la coma o no.

El problema es cuando encuentra la coma por segunda vez.Lo mas normal seria salir del suceso o procedimiento con Break. no?.
Pues no, me da fallo al compilar.Me dice que se encontró una sentencia Break que no se esperaba o que no debería estar ahí. 

------
PUBLIC SUB BotonComa_Click()
  IF InStr(Pantalla.Text, ",") THEN 
      BREAK    
  ELSE 
    Pantalla.Text = Pantalla.Text & ","
  ENDIF 
END
----

¿ Solo puedo utilzar Break para salir de bucles ?.No probé el código del manual.

Añadí algo como esto, pero por hacer algo.Funciona, pero me quede con las ganas
del Break.Prácticamente ahí bandera es por hacer algo, nada mas.

--------
PUBLIC SUB BotonComa_Click()
  DIM bandera AS Boolean
  IF InStr(Pantalla.Text, ",") THEN 
    bandera = TRUE
  ELSE 
    Pantalla.Text = Pantalla.text & ","
  ENDIF 
END
-------

¿ Que opináis ?.


-----------------------------------
karpaga
Viernes, 07 May 2010, 17:43

Re: Tipica Aplicación De La Calculadora
-----------------------------------
Usa RETURN en lugar de BREAK.


-----------------------------------
shordi
Viernes, 07 May 2010, 19:44

Re: Tipica Aplicación De La Calculadora
-----------------------------------
Mejor aún utiliza STOP EVENT, que detiene cualquier sentencia posterior del evento.


-----------------------------------
fabianfv
Viernes, 07 May 2010, 20:07

Re: Tipica Aplicación De La Calculadora
-----------------------------------
Shell:

La sentencia BREAK sólo se puede usar dentro de un bucle. Podrías usar la sentencia RETURN, pero en realidad no la necesitas, sólo deberías cambiar la condición lógica:

[code linenumbers=false syntax=gambas]
PUBLIC SUB BotonComa_Click()
  IF String.InStr(Pantalla.Text, ",") = 0 THEN
    Pantalla.Text = Pantalla.Text & ","
  ENDIF
END 
[/code]


-----------------------------------
Shell
Sabado, 08 May 2010, 00:21

Re: Tipica Aplicación De La Calculadora
-----------------------------------
Gracias a los tres.

A Karpaga:

La verdad es que con Return recuerda bastante a C. :-)

A Shordi:

Pues lo usare como salida de emergencia en otras circunstancias. :-D

A Fabianfv:

Pues la verdad es que si.Solo es necesario que se ejecute cuando no haya coma, con lo
que se salta el código. Con una condicional simple funciona y no es necesario una doble.


