Página 1 de 1

no puedo hacer que este código funcione

Publicado: 02 Ago 2015, 05:32
por alexis
holas compañeros, estoy muy perdido con lo que he creado.

el código es este:


Opt("GUIOnEventMode", 1)

GUICreate("Calculadora de estadio")

GUICtrlCreateLabel("ingresa la cantidad de lugares en la zona de jenerales:", 30, 10)
$jenerales1=GUICtrlCreateInput("", 35, 300)

GUICtrlCreateLabel("ingresa la cantidad de lugares en la zona de tribunas:", 40, 20)
$preferentes1 = GUICtrlCreateInput("", 35, 300 )

$entradas123= GUICtrlCreateButton("Obtener el valor total", 40, 30, 50)
GUICtrlSetOnEvent($entradas123, "valortotal")

GUISetState(@SW_SHOW)

While 1

WEnd

Func valortotal()

$entradascompletas=$jenerales1+$preferentes1

msgbox(0, "El valor total es:", $entradascompletas & " pesos")
EndFunc

la cuestión es que no realiza la suma de las variables del final, y ponga el número que ponga en la caja de mensaje me tira que el resultado es diez, y si agrego o quito líneas al código el número cambia.

no sé que sucede, podrían ayudarme?

desde ya muchas gracias,

saludos.

Re: no puedo hacer que este código funcione

Publicado: 02 Ago 2015, 07:37
por Dany
Tienes que leer los datos de los controles con. GUIctrlread.

Código: Seleccionar todo

Opt("GUIOnEventMode", 1)

GUICreate("Calculadora de estadio")

GUICtrlCreateLabel("ingresa la cantidad de lugares en la zona de jenerales:", 30, 10)
$jenerales1=GUICtrlCreateInput("", 35, 300)

GUICtrlCreateLabel("ingresa la cantidad de lugares en la zona de tribunas:", 40, 20)
$preferentes1 = GUICtrlCreateInput("", 35, 300+30 )

$entradas123= GUICtrlCreateButton("Obtener el valor total", 40, 30, 50)
GUICtrlSetOnEvent($entradas123, "valortotal")

GUISetState(@SW_SHOW)

While 1

WEnd

Func valortotal()

$entradascompletas=GUICtrlRead($jenerales1)+GUICtrlRead($preferentes1)

msgbox(0, "El valor total es:", $entradascompletas & " pesos")
EndFunc
Saludos

Re: no puedo hacer que este código funcione

Publicado: 02 Ago 2015, 19:43
por alexis
que estupendo, era eso! :)
muchas gracias :)

te hago otra pequeña consulta...

de que forma, se podría hacer para que después de que precione el botón, y termine en EndFunc, se borren todos los campos para volver a escribir?
lo busqué en el manual pero no sé cual es.

desde ya muchas gracias :)
saludos.

Re: no puedo hacer que este código funcione

Publicado: 02 Ago 2015, 21:09
por Dany
Para limpiar el control usas GUIctrlsetData(tucontrol,"")

Te recomiendo que trabajes mas ordenado. mira este ejemplo como guía.

Código: Seleccionar todo

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


Global $GUI = GUICreate("GUI", 449, 172, 192, 124)
GUISetFont(10, 800, 0, "Arial Narrow")
Global $bCalcular = GUICtrlCreateButton("Obtener el valor Total", 136, 112, 153, 41)
Global $lJenerales = GUICtrlCreateLabel("Ingresa la cantidad de lugares en la zona de jenerales:", 32, 16, 289, 20)
Global $InputJenerales = GUICtrlCreateInput("", 328, 8, 81, 24,$ES_NUMBER)
Global $lTribunas = GUICtrlCreateLabel("Ingresa la cantidad de lugares en la zona de tribunas:", 32, 40, 286, 20)
Global $InputTribunas = GUICtrlCreateInput("", 328, 40, 81, 24,$ES_NUMBER)
GUISetState(@SW_SHOW)

Local $iJenerales,$iTribunas
Local $iSuma=0
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		case $bCalcular
			$iJenerales=GUICtrlRead($InputJenerales)
			$iTribunas=GUICtrlRead($InputTribunas)
			$iSuma=Valortotal($iJenerales,$iTribunas)
			msgbox(0, "El valor total es:", $iSuma & " pesos")
			GUICtrlSetData($InputJenerales,"")
			GUICtrlSetData($InputTribunas,"")
	EndSwitch
WEnd


Func Valortotal($Variable1,$Variable2)
	Return $Variable1+$Variable2
EndFunc
Saludos :smt027