Ver Mensaje Individual
  #4  
Antiguo 08-02-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Reputación: 21
bustio Va por buen camino
Respondiendo....

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.

Última edición por roman fecha: 08-02-2005 a las 17:54:32. Razón: Cortar una línea larga para evitar desplazamiento horizontal
Responder Con Cita