FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
condicion IF
Hola a todos. Mi problema es el siguiente. Tengo un campo edit1 y un radiogroup2 con cuatro radiobuttons (9600 14400 28800 43200), al pulsar un radiobuttons un valor entero se coloca en el campo edit1 y viceversa, es decir, si coloco un valor en el edit1 el radiobutton asociado a ese numero se activa. Bien hasta ahora funciona perfectamente, pero quiero hacer que en el caso de que se introduzca en el edit1 un valor que no sea 9600 o 14400 o 22800 o 43200, saque un mensaje por pantalla (que ya lo tengo hecho) y se coloque por defecto en el radiobutton perteneciente al 9600, y que a su vez el campo edit se ponga en 9600. Tengo el siguiente codigo hecho pero cuando introduzco el primer digito en el edit1 ya me sale el mensaje anteriormente dicho. El código es el siguiente.
Gracias por anticipado. procedure TForm1.Edit1Change(Sender: TObject); begin RadioGroup2.ItemIndex := TStringList(RadioGroup2.Items).IndexOf(Edit1.Text); muestreo:=strtoint(edit1.text); if (muestreo<>9600) or (muestreo<>14400) or (muestreo<>18800) or (muestreo<>43200) then begin showmessage('Frecuencia de muestreo no disponible, se usará 9600 Hz por defecto.'); muestreo:=9600 end end; procedure TForm1.RadioGroup2Click(Sender: TObject); begin Edit1.Text :=RadioGroup2.Items[RadioGroup2.ItemIndex]; muestreo:=strtoint(edit1.text); end; |
#2
|
||||
|
||||
Por lo mismo que ya te diste cuenta no puedes usar el evento OnChange. La validación tendría que ser hasta que el usuario termine de escribir el dato.
Te convendría más usar el evento OnExit del Edit. // Saludos |
#3
|
|||
|
|||
Si lo pongo onexit no me hace nada , es decir, pongo un valor en el edit y no hace nada. Cuando me voy a otro edit por ejemplo me salta el mensaje aunque introduzca un valor correcto.
|
#4
|
||||
|
||||
Cita:
// Saludos |
#5
|
||||
|
||||
EStoy de acuerdo con Roman tu bronca esta en el IF, esta mal planeado solo checa un poco lo de matematicas lógicas y encontraras la respuesta a tu bronca, este tipo de error es de lo mas común y como para ti aveces es invisible hasta que otro checa tu codigo... saludos
tip: no es lo mismo un OR que un AND |
#6
|
||||
|
||||
Cita:
|
#7
|
||||
|
||||
jajajaja solo fue un tip, jejeje
|
#8
|
|||
|
|||
Hola de nuevo. Jejeje es verdad era una AND, las prisas son malas consejeras. Ya he solucionado el problema lo único que me falta es qué instrucción debo poner si quiero que al mostrar el mensaje de error (que coloca la variable muestreo en 9600) se me active el radiobutton 9600.
GRACIAS. |
#9
|
||||
|
||||
intentale con
form1.ActiveControl:=radiobutton6; saludos |
#10
|
||||
|
||||
Cita:
Ahora que, aunque es cuestión de gustos, yo en lugar de ponerlo en 9600 dejaría el RadioGroup tal como esté en esos momentos y pondría en Edit el valor correspondiente. Esto es, si el usuario había seleccionado 1440 y escribe un dato incorrect, que el Edit regrese a 1440 // Saludos |
#11
|
||||
|
||||
ahhhh caray, ya me confundi... estas trabajando con radiogroup o con radiobuttons??? por que si es con radiogrop sigue el consejo de roman, pero si es con radiobuttons te aconsejaria que siguieras mi sugerencia, o si de plano nada mas es el uso del cheked del radiobutton deria asi:
radiobutton.Cheked:=true; y asunto arreglado saludos |
#12
|
|||
|
|||
Eran un radiogroup, ya está todo solucionado, gracias a todos.
Un saludo. |
|
|
|