Jump to content


Photo

Checkboxs desde DB


  • Please log in to reply
9 replies to this topic

#1 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 12 July 2012 - 12:00 PM

Buenas, estoy intentando generar una especie de CheckBoxList dinámica, con datos en una db.
Tengo la conexión, la transacción, la query y el dataset. Pero no puedo encontrar la manera de volcar los resultados como los quiero, ya sea mediante algún componente de Lazarus o mediante código.

Agradecería cualquier tipo de ayuda !.
Saludos.
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 12 July 2012 - 12:09 PM

Hola, no lo he probado en Lazarus, pero, verificate si existe la función AddObject de la propiedad Items:



delphi
  1. CheckListBox1.Items.AddObject('ESTO ES UN ITEM', TObject(id));



Saludos.
  • 0

#3 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 12 July 2012 - 01:33 PM

Entiendo, hice algo similar en un ComboBox. Pero a lo que yo voy es, ¿mediante qué evento genero la impresión de los checkboxs?. En javascript existe el onLoad. Hay algo similar en Lazarus ?.

Saludos y gracias !
  • 0

#4 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 12 July 2012 - 02:46 PM

Creo que lo que busco es el evento del Form onCreate !.
Ahora voy a jugar un merecido fútbol 5. Ya les comentaré los resultados.
Saludos.
  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 12 July 2012 - 03:22 PM

Más recomendable el evento OnShow del formulario.

Saludos.
  • 0

#6 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 12 July 2012 - 03:40 PM

Gracias por el dato emecuene.
Recien lo saqué con el onCreate, pero lo puedo cambiar.  (b)
El código me quedó así:



delphi
  1. procedure TFormVideoteca.FormCreate(Sender: TObject);
  2. var
  3. g:TCheckListBox;
  4. c: TCheckBox;
  5.  
  6. begin
  7.  
  8.   { Creo la CheckListBox (vacía), le asigo a su padre (FormVideoteca) y le seteo las coordenadas. }
  9.   g:= TCheckListBox.Create(FormVideoteca);
  10.   g.parent := FormVideoteca;
  11.   g.top := 46;
  12.   g.left := 256;
  13.  
  14.   { Creo un nuevo CheckBox, le agrego un caption (leyenda) y se lo asigno al checkListBox (g) }
  15.   c:= TCheckBox.Create(FormVideoteca);
  16.   c.Caption := 'Hola';
  17.   c.parent := g;
  18.  
  19. end; 



Lo que me quedaría por limar es: cargar los captions en base a datos de la db (ya lo hice con los ComboBox, no debería causarme muchos problemas je). Pasarlo al evento onShow como bien me sugieren y modularizarlo en un Procedure "CargaDeListBox" :D
Salutes !
  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 12 July 2012 - 04:11 PM

Amigo:



delphi
  1. procedure TFormVideoteca.FormCreate(Sender: TObject);
  2. var
  3. g:TCheckListBox;
  4. begin
  5.  
  6.   { Creo la CheckListBox (vacía), le asigo a su padre (FormVideoteca) y le seteo las coordenadas. }
  7.   g:= TCheckListBox.Create(FormVideoteca);
  8.   g.parent := FormVideoteca;
  9.   g.top := 46;
  10.   g.left := 256;
  11.  
  12.   { Suponiendo que tienes un dataset llamado Query }
  13.   Query.first;
  14.   while not Query.eof do begin
  15.     g.items.add(Query.fields[0].asstring); //O puedes usar Query.FieldByName('nombrecampo').AsString
  16.     Query.next;
  17.   end;
  18. end;

 

La propiedad Items del TCheckListBox se encarga de agregar un item con su checkbox y su Caption.

Saludos.
  • 0

#8 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 12 July 2012 - 07:41 PM

Gracias por los retoques, es que lo hice todo a prueba y error, y leyendo lo muy poco que encontré sobre los protocolos.
Saludos !
  • 0

#9 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 posts

Posted 13 July 2012 - 03:27 PM

Enecumene, traté de seguir tus consejos y no he podido generar el TCheckListBox.
Explico detalladamente lo que hice:

1) Tengo la conexion a la db (TMySQL50Connect).
2) Tengo una Transacción asociada a la conexión.
3) Tengo una Query:
SELECT * FROM idiomas

Asociada a la Conexión del punto 1 y a la Transacción del inciso 2, bajo el nombre de IdiomasBoxQ.
4) Un DataResource asociado al Query del punto 3.
5) Tengo el TCheckBoxList vacio, y el en evento OnShow del Form ejecuto lo siguiente:



delphi
  1.   IdiomasBoxQ.First;
  2.   while IdiomasBoxQ.EOF do begin
  3.       IdiomasGroup.Items.Add(IdiomasBoxQ.FieldByName('idioma').AsString);
  4.       IdiomasBoxQ.Next;
  5.   end;     



Cuando compilo no hay errores, pero el TCheckListBox queda vacio.
Alguna idea ?.

Desde ya muchas gracias.
  • 0

#10 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 14 July 2012 - 11:48 AM

¿Llegaste abrir la tabla?:



delphi
  1. IdiomasBoxQ.Open; //Abrimos la tabla
  2. IdiomasBoxQ.First;
  3.   while IdiomasBoxQ.EOF do begin
  4.       IdiomasGroup.Items.Add(IdiomasBoxQ.FieldByName('idioma').AsString);
  5.       IdiomasBoxQ.Next;
  6.   end;



Saludos.
  • 0




IP.Board spam blocked by CleanTalk.