Ver Mensaje Individual
  #60  
Antiguo 01-11-2008
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Reputación: 17
Elite237 Va por buen camino
Unhappy Mostrar Panel en evento onDblClic del StringGrid

Hola, recuerdan que habia posteado una ayuda con referencia a este evento, pues bien, lo pude solucionar y logre que se mostraran todas las respuestas de una pregunta en un panel al momento de hacer doble clic en la pregunta que se mostraba en el StringGrid. Pero ahora me cambiaron las estructuras de mis tablas y no puedo mostrar las respuestas.Asi quedo mi tabla, donde se almacena tanto las secciones,las preguntas y las opciones:

Código Delphi [-]
Det_evaluacion
 
det_eval          (la clave de la evaluacion)
det_version      (la version de la evaluacion)
det_clave        (la clave ya sea para seccion(1...y asi sucesivamente),pregunta(1.1..1.2..1.3) y opciones(1.1.1...1.1.2)
det_pregunta   (descripcion de la seccion,pregunta u opcion)
det_tipo          (aqui se diferencia si es seccion(el valor es 0),pregunta(el valor es 1) u opcion(el valor es 2)
det_valor         (valor que tendran, si es seccion(0),si es pregunta(0), si es opcion(los valores seran de 1 a 5)

Este es el codigo que tengo ahora en el evento y nose muestran las respuestas en el panel:
Código Delphi [-]
procedure TForm1.sgEvaluacionDblClick(Sender: TObject);
var
evalua,saca:string;
i:integer;
begin
  if sgEvaluacion.col=1 then
   begin
    //Obtenemos la clave de la evaluacion del combobox
    evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1);
    //Obtenemos la clave de la pregunta del Stringgrid
    saca:=sgEvaluacion.cells[sgEvaluacion.col-1,sgEvaluacion.row];
    query3.close;
    query3.sql.clear;
    query3.sql.Add('select det_eval,det_clave,det_pregunta,det_valor,det_tipo from det_evaluacion');
    query3.sql.add('where det_eval = '''+evalua+'''');
    query3.sql.add('and   det_tipo= 2');

    //si omito esto,aparecen todas las respuestas de todas las secciones en el panel
    query3.sql.add('and det_clave = '''+saca+'''');

    abre(query3);
    rgRespuestas.items.clear;
    while not query3.Eof do
     Begin
      rgRespuestas.Items.Add(query3.FieldByName('det_valor').asstring+'-'+query3.FieldByName('det_pregunta').asstring);
      query3.Next;
     End;
     panel1.visible:=true;
     rgRespuestas.ItemIndex:=0;
   End
   else
    showmessage('No hay opciones para esta pregunta!');
end;

Gracias por su ayuda
Responder Con Cita