Cita:
Empezado por SyncMaster
¿Sirve?
|
POr supuesto que sirve!!! Y bien que lo hace!! Muchas gracias!
Pero mis pesares no terminan ahi.. resulta que ahora necesito yo hacer mas o menos lo mismo pero con RadioButtons.. o sea, la idea es la siguiente:
Yo quiero mostrar una cantidad de Edits, y junto a ellos poner RadioButtons.. uno por cada Edit y que el usuario pueda darle valores a los EDITS y marque en el RADIOBUTTON el que es el correcto. Es para generar un sistema de Cuestionarios. Cuando el usuario presione el Boton ACEPTAR, debo recorrer todos los Edits y tomar sus valores para almacenarlos en una BD, y tambien debe recorrer los RadioButtons para ver cual es el que esta seleccionado y de acuerdo al valor que tenga el RadioButton se le inserta a la tupla en cuestion un valor 0 o 1(La pregunta es lo que esta en el EDIT y si es Verdadero o Falso es lo que dice el RadioButton). Pero cuando intento tomar los valores del RadioButton como tu recorres los Edite me da una excepcion:
Project TM2.exe raised exception class EAccessViolation with message 'Access violation at address 005F4CB2 in module 'TM2.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.
Tal vez sea en la manera en que creo los componentes en tiempo de ejecucion:
Código:
procedure TFrmCrearPreguntas.Button1Click(Sender: TObject);
var
i : Integer;
TipoPregunta : String;
begin
TipoPregunta := dblucbTipoPreguntas.Text;
for i := 1 to CantElementos do
begin
Edit := TEdit.Create(Self);
Edit.Name := 'Edit' + IntToStr(i);
Edit.Parent := Panel3;
Edit.Text := '';
Edit.Width := 220;
RadioButton := TRadioButton.Create(Self);
RadioButton.Name := 'RadioButton'+ IntToStr(i);
RadioButton.Parent := Panel3;
//RadioButton.Checked := false;
RadioButton.Caption := '';
RadioButton.Width := 20;
If ((i mod 2) = 0) then
begin
Edit.Left := 290;
Edit.Top := 5 + (i * 13) - 13;
RadioButton.Left := 520;
RadioButton.Top := 5 + (i * 13) - 13;
end
else
begin
Edit.Left := 20;
Edit.Top := 5 + (i * 13);
RadioButton.Left := 250;
RadioButton.Top := 5 + (i * 13);
end;
end;
end;
O la manera en que trato de acceder a la propiedad Checked del RadioButton...:
Código:
if TRadioButton(FindComponent('RadioButton'+IntToStr(i))).Checked then
showmessage('true'); // el showmessage es para ir probando...
Y no se que mas inventar para que esto sirva.