Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Pasar datos de DbGrid a Variable. (https://www.clubdelphi.com/foros/showthread.php?t=89273)

Camilo 27-10-2015 16:01:21

Pasar datos de DbGrid a Variable.
 
Buenos dias amigos foreros. quero comentar una duda para ver si los aportes al respecto me ayudan a salir de este bache. De antemano mil gracias por su tiempo y aporte.

Tengo una variable llamada Str. la cual se refleja en un label dentro de un frame. Esto tiene que ver con un aporte de un amigo nuestro para elaborar encuestas con preguntas en runtime.
Pues bien. No he podido hacer que si las preguntas programadas son 10 o 5 o 15 (no importa el numero) estas se muestren en el caption de ese label. lo que tengo luego de muchas vueltas y aun no funciona es lo siguiente.
Código Delphi [-]
with DBGrideh1.DataSource do
  begin
    DataSet.First;
    while not DataSet.Eof do
    begin
        Str := AnsiReplaceText(Fr.lblPregunta.Caption, '%s', DbGridEh1.Columns[1].Field.asString);
          Str := AnsiReplaceText(Str, '%t', DbGridEh1.Columns[1].Field.asString);
           Fr.lblPregunta.Caption := Str;
            DataSet.Next;
    end;

Neftali [Germán.Estévez] 27-10-2015 18:04:53

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.

Camilo 27-10-2015 18:12:40

Neftali mil gracias por tu apreciación. Realmente obedece a una lógica sencilla que no tuve en cuenta pero que de seguro es la correcta. Voy a replantear la cosa y te comento. Mil gracias.

Camilo 27-10-2015 18:39:46

Tenias razon Neftali solo cambie el lugar del ciclo y la cosa funciona bien. Se trata de ir creando los Frames con su respectiva pregunta y no como lo hacia antes. Mil gracias por el aporte que me enseño a pensar con mas logica. Gracias.

Neftali [Germán.Estévez] 27-10-2015 19:35:38

^\||/^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 11:18:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi