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.
Checkboxs desde DB
Comenzado por
ramiro_md
, jul 12 2012 12:00
9 respuestas en este tema
#1
Escrito 12 julio 2012 - 12:00
#2
Escrito 12 julio 2012 - 12:09
Hola, no lo he probado en Lazarus, pero, verificate si existe la función AddObject de la propiedad Items:
Saludos.
delphi
CheckListBox1.Items.AddObject('ESTO ES UN ITEM', TObject(id));
Saludos.
#3
Escrito 12 julio 2012 - 01:33
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 !
Saludos y gracias !
#4
Escrito 12 julio 2012 - 02:46
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.
Ahora voy a jugar un merecido fútbol 5. Ya les comentaré los resultados.
Saludos.
#5
Escrito 12 julio 2012 - 03:22
Más recomendable el evento OnShow del formulario.
Saludos.
Saludos.
#6
Escrito 12 julio 2012 - 03:40
Gracias por el dato emecuene.
Recien lo saqué con el onCreate, pero lo puedo cambiar.
El código me quedó así:
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"
Salutes !
Recien lo saqué con el onCreate, pero lo puedo cambiar.
El código me quedó así:
delphi
procedure TFormVideoteca.FormCreate(Sender: TObject); var g:TCheckListBox; c: TCheckBox; begin { Creo la CheckListBox (vacía), le asigo a su padre (FormVideoteca) y le seteo las coordenadas. } g:= TCheckListBox.Create(FormVideoteca); g.parent := FormVideoteca; g.top := 46; g.left := 256; { Creo un nuevo CheckBox, le agrego un caption (leyenda) y se lo asigno al checkListBox (g) } c:= TCheckBox.Create(FormVideoteca); c.Caption := 'Hola'; c.parent := g; 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"
Salutes !
#7
Escrito 12 julio 2012 - 04:11
Amigo:
La propiedad Items del TCheckListBox se encarga de agregar un item con su checkbox y su Caption.
Saludos.
delphi
procedure TFormVideoteca.FormCreate(Sender: TObject); var g:TCheckListBox; begin { Creo la CheckListBox (vacía), le asigo a su padre (FormVideoteca) y le seteo las coordenadas. } g:= TCheckListBox.Create(FormVideoteca); g.parent := FormVideoteca; g.top := 46; g.left := 256; { Suponiendo que tienes un dataset llamado Query } Query.first; while not Query.eof do begin g.items.add(Query.fields[0].asstring); //O puedes usar Query.FieldByName('nombrecampo').AsString Query.next; end; end;
La propiedad Items del TCheckListBox se encarga de agregar un item con su checkbox y su Caption.
Saludos.
#8
Escrito 12 julio 2012 - 07:41
Gracias por los retoques, es que lo hice todo a prueba y error, y leyendo lo muy poco que encontré sobre los protocolos.
Saludos !
Saludos !
#9
Escrito 13 julio 2012 - 03:27
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:
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:
Cuando compilo no hay errores, pero el TCheckListBox queda vacio.
Alguna idea ?.
Desde ya muchas gracias.
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
IdiomasBoxQ.First; while IdiomasBoxQ.EOF do begin IdiomasGroup.Items.Add(IdiomasBoxQ.FieldByName('idioma').AsString); IdiomasBoxQ.Next; end;
Cuando compilo no hay errores, pero el TCheckListBox queda vacio.
Alguna idea ?.
Desde ya muchas gracias.
#10
Escrito 14 julio 2012 - 11:48
¿Llegaste abrir la tabla?:
Saludos.
delphi
IdiomasBoxQ.Open; //Abrimos la tabla IdiomasBoxQ.First; while IdiomasBoxQ.EOF do begin IdiomasGroup.Items.Add(IdiomasBoxQ.FieldByName('idioma').AsString); IdiomasBoxQ.Next; end;
Saludos.