Delphi - Adicionar bariaspalabras a un campo con DBCheckBox

 
Vista:

Adicionar bariaspalabras a un campo con DBCheckBox

Publicado por Hector (39 intervenciones) el 08/05/2009 06:34:58
Mi pregunta es:

tengo una tabla paradox 7 con unos campos (Genero, Fecha,…) pero si quiero poner más de un genero eje (Acción, Ficción)a trabesde varios DBCheckBox

Como puedo adicionar a un campo desde barios DBCheckBox que estén marcados el testo puesto en el caption de cada uno separado por coma o cualquier otro carácter. Pues este componente solo entiende de true o false.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Adicionar bariaspalabras a un campo con DBCheck

Publicado por E.T. (1244 intervenciones) el 08/05/2009 17:24:08
Yo te recomendaría que usaras tres tablas, la de Pelicula, la de Generos y la de PeliculaGenero, siguiendo este formato

Peliculas
1--El quinto elemento
2--Los otros

Generos
1--Drama
2--Accion
3--Ciencia ficción
4--Terror

PeliculaGenero
1--2
1--3
2--1
2--4

Para poner esto en acción usas checkBox normales, en su propiedad Tag, les das el valor de cada genero

digamos que el checkBox1 es para el drama, y así con los siguientes

CheckBox1.Tag:=1; CheckBox2.Tag:=2;

Cuando vayas a guardar verificas los checkBox así

if CheckBox1.checked then begin
tablaPeliculaGenero.append;
tablaPeliculaGenero.fields[0]:=Clave_Pelicula;
tablaPeliculaGenero.fields[1]:=CheckBox1.tag;
tablaPeliculaGenero.post;
end;

Aunque hay varias formas de hacerlo, esta es una sencilla, pero insisto en que uses las tres tablas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Adicionar bariaspalabras a un campo con DBCheck

Publicado por Hector (39 intervenciones) el 09/05/2009 03:01:06
Te agradezco la sugerencia pero entonces cuantas tablas tendría que usar sin contar que tendría que enlazarlas. Tiene que existir una forma más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:Adicionar bariaspalabras a un campo con DBCheck

Publicado por E.T. (1244 intervenciones) el 09/05/2009 17:50:02
El problema que usar el metodo que indicas en el primer post, es que no sabes cuantos generos el usuarios le va a poner a una pelicula, digamos que tenga en promedio 3 generos, y a la tabla de peliculas le agregas un campo de genero tipo string de 30 caracteres, pero llega una pelicula, con 5 generos, que vas a hacer?, el espacio no va a ser suficiente.
Además del desperdicio de espacio si te toca una pelicula con un genero.
Pero al final es tu decisión, digamos que a tus checkBox no les cambias el nombre y se llaman CheckBox1, CheckBox2......CheckBox15

ahora, para juntar sus caption en una sola cadena sería lo siguiente

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
cadena:string;
begin
cadena:='';
for i:=1 to 15 do begin
if TCheckBox(FindComponent('CheckBox'+inttostr(i)))<> nil then begin
if TCheckBox(FindComponent('CheckBox'+inttostr(i))).Checked then
cadena:=cadena+TCheckBox(FindComponent('CheckBox'+inttostr(i))).Caption+',';
end;
end;
Label1.Caption:=cadena;
end;

El label es para ver el resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Adicionar bariaspalabras a un campo con DBCheck

Publicado por Hector (39 intervenciones) el 10/05/2009 16:58:31
El ejemplo funsiono pero como adiciono esa cadena a el campo genero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

software con derechos de reventa

Publicado por wilfredo (1 intervención) el 21/07/2009 01:36:46
Estimado Emprendedor,

Mi nombre es wilfredo bravo vidarte y quiero presentarte un concepto realmente único en el mercado hispano y que me ha dejado totalmente sorprendido!

Voy a presentarte el concepto más original en el mercado hispano en cuanto a software con derechos de reventa se refiere...

Estás a punto de conocer el primer concepto de estas características y que va a sentar un precedente en el mercado hispano.

Este concepto se llama... Club De Software
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar