Yo haría las cosas por partes, más que nada para ubicar los posibles problemas.
Primero lanza la sentencia SQL y asegúrate de que obtienes los datos corrrectos; Una vez hechoesto, ya los asignarás a los frames.
En cuanto al código:
Código Delphi
[-]
query1.close;
query1.SQL.clear;
query1.sql.add('select eval_descripcion,preg_descripcion from tpregunta');
query1.sql.add('where eval_descripcion = '''+cmbEvaluacion.text+'''');
MessageDlg('SQL: ' + query1.sql.Text, mtInformation, [mbOK], 0);
query1.Open;
if (not (query1.EOF)) then begin
Str := query1.fieldbyname('preg_descripcion').asstring;
Fr.lblPregunta.Caption := Str;
end;