Tal vez ayudaría que pusieras un equeño proyecto de ejemplo, con lo que deseas hacer.
Según lo que estás haciendo:
Código Delphi
[-]
Fr.lblPregunta.Caption := Str;
Estás mostrado todas las preguntas en el mismo label (una tras otra en el bucle), por lo tanto cuando acabe el recorrido tendrás en el Label la ultima pregunta. Y por la velocidad de proceso no erás mninguna de las anteriores.
Lo lógico, según veo yo, sería ir creando Frames, a medida que recorres las preguntas y en cada nuevo frame colocar la nueva pregunta.
De esta forma, al acabar el buble tendrás tantos frames como preguntas y en cada frame, cada una de las preguntas.