Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   radiobuttons asociados a un edit (https://www.clubdelphi.com/foros/showthread.php?t=4985)

haffo 04-11-2003 23:49:00

radiobuttons asociados a un edit
 
Hola a todos. Tengo 4 radiobuttons y un edit, los radiobuttons se asocian con valores numericos, es dedir que al pulsar por ejemplo uno en el campo edit tiene que aparecer el numero 9600, al pulsar otro radiobutton en el edit tiene que aparecer 14400, y asi con los otros 2 radiobuttons (pero con valores distintos, radiobutton3 28800 y radiobutton4 43200). Esto tiene que pasar tambien de manera inversa, es decir, que al poner en el edit el valor 9600 se me active el radiobutton1, 14400 radiobutton2, etc... También hay que hacer que si en el edit se introduce un valor que no es ninguno de los radiobuttons saque un mensaje por pantalla diciendo "error" y se ponga por defecto el radiobutton1. Eso es todo.

GRACIAS POR ANTICIPADO.

delphi.com.ar 04-11-2003 23:55:42

Sería mucho más fácil si trabajaras con un TRadioGroup:
Código:

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  Edit1.Text := RadioGroup1.Items[RadioGroup1.ItemIndex];
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  RadioGroup1.ItemIndex := TStringList(RadioGroup1.Items).IndexOf(Edit1.Text);
end;

Esto es trabajando directamente con el texto de los RadioButtons, si tu texto no es igual al valor que pretendes, puedes trabajar con una lista paralela, o con un array.

Saludos!

haffo 05-11-2003 00:05:10

Gracias por contestar. El problema es que ya tengo hecho todo el interfaz, y antes de poner los radiobuttons tenía una scrollbar pero necesito los radiobuttons, así que es una faena poner ahora un Tradiogroup. Hay otra forma de hacerlo ??

haffo 05-11-2003 00:34:22

Ya he logrado poner un radiogroup , el código es el siguiente:

procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit1.Text := RadioGroup2.Items[RadioGroup2.ItemIndex];
end;

Y el del edit es:

procedure TForm1.Edit1Change(Sender: TObject);
begin
RadioGroup1.ItemIndex := TStringList(RadioGroup1.Items).IndexOf(Edit1.Text);
muestreo:=strtoint(edit1.text);
end;

Pero me da un error cuando pulso cualquiera de los radiobuttons:

"EconvertError with message "14400 ' is no a valid integer value

Cçomo puedo solucionarlo ?????

GRACIAS

haffo 05-11-2003 00:37:20

He puesto:

procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit1.Text := inttostr (RadioGroup2.Items[RadioGroup2.ItemIndex]);
end;

Pero me da un error al compilar:

[Error] Final.pas(366): There is no overloaded version of 'IntToStr' that can be called with these arguments

Ruben_Cu 05-11-2003 00:58:47

Hola haffo, no se si tendrás otro problema pero al menos el error de tu último post se debe a que
Código:

RadioGroup2.Items[RadioGroup2.ItemIndex];
devuelve un string y no un integer, o sea, que te sobra IntToStr en tu declaración.
Saludos

haffo 05-11-2003 01:06:43

Es que si quito el inttostr, al pulsar el radio button me da el error:

"EconvertError with message "14400 ' is no a valid integer value.

Gracias por contestar.

Ruben_Cu 05-11-2003 01:33:53

Hola, el error no lo busques en esa declaración:
Código:

procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit1.Text := RadioGroup2.Items[RadioGroup2.ItemIndex];
end;

Funciona perfectamente si lanzar error, busca que haces con ese valor en el resto del programa para ver donde lo estas usando de nuevo sin tener en cuenta que es un integer, revisa si vuelves a usar el contenido del 'edit.text' en otra parte del programa donde quieras cargarlo en una variable tipo integer o usarlo como valor numérico, por ahí debe estar el error.
Saludos y suerte

haffo 05-11-2003 01:41:32

Puede ser que el error me lo de este procedimiento ???

procedure TForm1.Edit1Change(Sender: TObject);
begin
RadioGroup2.ItemIndex := TStringList(RadioGroup2.Items).IndexOf(Edit1.Text);
muestreo:=strtoint(edit1.text);
end;

Gracias por tu tiempo. ;)

Ruben_Cu 05-11-2003 01:51:40

Hola, tu sabrás si el error te salta al escribir en el edit1 o al hacer click en el radiobutton2.¿que tipo de veriable es muestreo?
Creo que lo mejor es que coloques un punto de ruptura al principio del evento que te da problema y hags un debug pulsando F8 y ver exactamente donde te da el error, o ... me mandas todo el código asociado y lo reviso, pero claro... mejor es que lo hagas tú.;)
Saludos

roman 05-11-2003 02:45:21

Cita:

haffo comentó:
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit1.Text := RadioGroup2.Items[RadioGroup2.ItemIndex];
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
RadioGroup1.ItemIndex := TStringList(RadioGroup1.Items).IndexOf(Edit1.Text);
muestreo:=strtoint(edit1.text);
end;

Pero me da un error cuando pulso cualquiera de los radiobuttons:

"EconvertError with message "14400 ' is no a valid integer value


Vamos a comenzar desde el momento en que introdujiste el RadioGroup.

El evento Click no puede lanzarte ese error ya que no hay ninguna conversión. De manera que, a no ser que haya otros eventos en juego, el error debe producirse en el evento Change, especificamente en la línea

muestreo := strtoint(Edit1.Text);

Aquí no importa qué tipo de variable sea muestreo ya que si no fuera un entero el error te lo marcaría al momento de compilar.

Por alguna razón Edit1.Text no tiene un entero. Dado que el valor de Edit1.Text viene de un item del RadioGroup entonces éste item es el que tiene un texto que no es un número.

Y a juzgar por el mensaje de error parecería que se te coló una comilla antes de 1440. ¿No es así?

// Saludos

Ruben_Cu 05-11-2003 04:20:10

Hola roman, o se le fue un espacio después de 14400.
¡¡¿Quien da más?!!:D ;)
Saludos

haffo 05-11-2003 23:03:45

GRACIASSSSSSSSSSSSS :D. Los dos sois ganadores del concurso, jejeje. Efectivamente tenía espacios detras de los números de los items del radiogroup, los he quitado y voala !!!, funciona !!!.

MIL gracias amigos, no se que habría hecho sin vosotros.


La franja horaria es GMT +2. Ahora son las 09:21:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi