Problemas con Input y Combobox

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola! Uso el AutoPlay Media Studio desde hace cosa de 4 años, siempre para crear softwares todo en uno, o algún menú simple interactivo para CD.
Ahora me está interesando ir un poquito más lejos. Hasta ahora, nada más hice un navegador web bien básico y siempre intento ir aprendiendo cosas nuevas.
Con el scripting me manejo a nivel básico-medio creo, tengo algunos conocimientos en otros tipos de scripting y mas o menos me guio.

Bueno, les comento mi problema. Estoy trabajando en una calculadora que trabajaria con fechas, es para calcular la eclosión de los huevos, hasta ahora llegue a una calculadora básica que suma, resta, multiplica o divide, pero no es lo que quiero.
Necesito un input para escribir la fecha de puesta y otro que calcule la eclosión, pero el problema es el siguiente:
Si bien llego a realizar el input1 para ingresar la fecha de puesta, el input2 para la eclosión y el boton de suma, no llego a entender como hacer para utilizar fechas, por que, obviamente los meses no tienen infinitos días :) Entonces tendria que limitarse los días a 30/31 dependiendo del mes, los meses a 12 y si se supera tendria que pasar de año se entiende? :sorry:

Agregado a eso quería hacer una calculadora genetica, ingresando mutación de padre y madre el resultado que serían los hijos, utilizando ComboBox para seleccionar mutación de padre y madre, y para lograr el resultado pensaba usar un code tipo "If combobox itemtext Item1 (tendria que agregar el combobox2 acá) settext combobox3 o input? result"
Ya se que el code está un desastre, es lo que se me vino a la mente mientras lo pensaba no mas, ya se que esta todo mal ahi :lol:

Sé que lo que estoy intentando es un poco avanzado para lo que se hasta ahora, pero bueno, la cosa es aprender. :cerrado:

Saludos y gracias!

Haber para trabajar con fechas donde se suman dias según meses y demás.. yo usaria el modulo date que te puede hacer las operaciones muy simples una vez lo pillas , pero por tu comentario no sabes ni como configurar un combobox con varias opciones , deberías realizar tu proyecto con la interfaz básica inputs ,botones ,combo con opciones y poco a poco según te surgan dudas vamos abordándolas una a una. ;)
Eso mismo iba a poner en practica, al menos crear Combobox con textos solos para probar como funciona.
Qué seria el modulo date? :hypno:

lo del modulo son eso, librerias para ayudar en lua , aqui esta la date

http://luaforge.net/projects/date/

Y aquí un vídeo de como usarlos en ams.

viewtopic.php?f=9&t=1584
Uff ya me estoy liando :hypno:

Para empezar capté poco sobre el date.lua. Entendi que se agrega para "extender" el scripting en ams no? Bien, ahora, el code del script del date donde habria que ponerlo, en el boton, en el combobox o en el input? :cabreado:

Ya me las estoy viendo complicadas..

mira un ejemplo de uso del modulo date...

HIDE: ON
Hidebb Message Hidden Description


en el se marcan dos fechas y obtiene la diferencia en días ,meses , años etc ... el modulo su uso básico es crear objeto de fecha dándole una fecha que acepte y a partir de hay se puede hacer de todo...

Tu crea tu interfaz y después código en el objeto según necesidades , por partes...
Cual es tu primer problema?

La interfaz ya la tengo hecha, ya puse los objetos y todo, obviamente tengo que organizarlos pero todavia no mande ni un code..

Imagen

Ahora estoy perdido :SOS:

haz un esquema ... que quieres que haga cada objeto?

Hostia! en el post anterior se me olvido el enlace al ejemplo , ya esta....
Bien, empezemos por la calculadora de eclosión..

Input1= Fecha de puesta.
Input2= Fecha de nacimiento (suma unos días de la fecha de puesta).
Boton= Calcular fecha.

Hasta ahora lo tengo miserable, de code use esto no mas:

Código: Seleccionar todo

INPUT1: result = Input.GetText("Input1");
INPUT2 :result = Input.GetText("Input1");
BOTON: Input.SetText("Input2", result); 
Obviamente está mal y tengo que usar el date que ya mismo voy a ver el apz.

Parece que el apz ese me va a aclarar un montón de cosas, mañana sigo viendolo tranquilo que ya tengo los ojos rojos :)

Mmm, me tira este error al compilar "Error: Plugin AutoPlay Media Studio 8\Plugins\Objects\DATETIMEPICKER\DATETIMEPICKER.APO" is not licensed for re-distribution" y no me deja previsualizarlo.

Intenté copiar el archivo a esa carpeta pero sigue..

MODIFICO: Ya pude repararlo, descargue e instale el plugin completo y no tuve problemas.
Perdon por no escribir ayer :)

Hasta ahora, no le dediqué mucho tiempo pero pude meterle un date (el del calendario), ahora, como puedo hacer para qué al seleccionar la fecha en el date, se sumen automaticamente 18 días y aparezca en el input?
El date quiero dejarlo para seleccionar la fecha, y me da igual que aparezca en un imput la fecha de nacimiento o en otro date, el que sea mas simple.

Supongo que a calendario te refieres al objeto DateTimePicker , bueno pues en su evento on datechangue seria algo asi:
DateTimePicker.SetFormat("date1", "MM-dd-yy");
dateObj = date(DateTimePicker.GetDateTimeStr("date1"));

Input.SetText("indate1",dateObj:adddays(18):fmt("%m/%d/%Y"));

DateTimePicker.SetFormat("date1", "");
Genial!!! ;)
Realmente me estas animando a seguir metiendome con el ams!! Ya casi que pensaba dejar abandonado el proyecto este!! Ahora tengo para seguir haciendo!! Gracias!!

El unico problema que hay ahora es que me da la fecha con año 1913 :) Podría ser un error mismo del lua al tomar la fecha del sistema?

Ya lo solucione!! Tan solo cambié la linea

Código: Seleccionar todo

Input.SetText("Input1",dateObj:adddays(18):fmt("%d/%m/%Y"));
Cambié el "%Y" por "%y", ahora si me va gustando!! :beta:

pos hala palante
Bien!! Ya estoy por los ComboBoxs y va bastante bien :yeah:

Ahora necesito una manito con esto:
sData = ComboBox.GetItemData("ComboBox1",ComboBox.GetSelected("ComboBox1"));
aData = ComboBox.GetItemData("ComboBox2",ComboBox.GetSelected("ComboBox2"));
if sData == "1" then
Input.SetText("Input5", "prueba");
end
if sData == "2" then
Input.SetText("Input5", "aaa");
end
Tengo dos combobox's, los cuales tendrian que "sumarse" para calcular la mutación de los hijos.
Como sería el code correcto para que agarre la data de los dos ComboBox para dar el resultado?

Por ejemplo esta parte:

sData = ComboBox.GetItemData("ComboBox1",ComboBox.GetSelected("ComboBox1"));
aData = ComboBox.GetItemData("ComboBox2",ComboBox.GetSelected("ComboBox2"));
if sData == "1" then
¿if aData == "2" (Combobox2)?
Input.SetText("Input5", "prueba");
end

Tendria que ir juntando la data de los combobox y a raíz de lo seleccionado dar el resultado.

Tendria que usar else if para optimizar el codigo no?

Le agrege un boton para imprimir resultados tambien :yes:

thanks

Creo que no entiendes conceptos ... el combobox almacena dos tipos de datos el text que es lo que se ve y una data asociada a ese text que no se ve pero se puede utilizar , entonces GetItemData obtiene esa data que la puedes añadir tu por código (ComboBox.SetItemData) o desde las propiedades del objeto comobobox, para nada tiene que ver con el nombre de identificación del objeto combobox que puede ser ComboBox1, 2 o el nombre que tu le des.

Aun no entiendes lo básico , pero poco lo pillaras , sube tu apz y asi vere los errores que vas cometiendo.

Que datos hay en los comobobox?
Claro! No quiero utilizar el texto como data!

La data ya la asigne, con numeros (1,2,3) para no confundir.
Hasta ahora el code anterior lo fui armando en base a un apz, pero modifiqué la data de los combobox y agrege un input por ahora para pruebas, pero es donde iría el resultado.
Por eso, sData = data de combobox1 y aData = data de combobox2, ahora tendría que tomar las dos datas y para explicame mejor, si la data de combobox1 seleccionada es 1 y la data de combobox2 seleccionada es 2 el resultado sería Input.SetText("Input5", "prueba"); se entiende? Es posible hacer eso a base de combobox?

y tanto que es posible... tu decias que las querias sumar , pues vale ...
Como la data de los combos retorna string y no numeros no se pueden sumar direstamente , las convertimos y las sumamos:
resultado=tonumber(sData)+tonumber(aData);
Input.SetText("Input5", resultado);
Esto es lo que preguntabas?
Eso es lo que decia!! El unico problema es que no quiero que sume las datas de los comboboxs, si no que supongamos que en el combobox1 se selecciono el item1 (La data sería 1) y del combobox2 se selecciono el item3 (data3), el resultado sería un texto en el input, que dependiendo lo que se seleccione en los combobox variaría.
Creo que debería ser algo asi no?
sData = ComboBox.GetItemData("ComboBox1",ComboBox.GetSelected("ComboBox1"));
aData = ComboBox.GetItemData("ComboBox2",ComboBox.GetSelected("ComboBox2"));
if ==("1", sData)+("2", aData);
Input.SetText("Input5", resultado);
if ==("2", sData)+("1", aData);
Input.SetText("Input5", resultado2);
if ==("3", sData)+("3", aData);
Input.SetText("Input5", resultado3);
if ==("6", sData)+("5", aData);
Input.SetText("Input5", resultado4);
end

vale, osea el resultado varia según la combinación de selecciones en los combos , eso es facil si tienes claras las con binaciones.

por ejemplo:
if (sData== 1) and (aData == 2) then
Input.SetText("Input5", resultado1y2);
elseif (sData== 1) and (aData == 3) then
Input.SetText("Input5", resultado1y3);
-- etc....
end