Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Grabar Una Opcion de CheckBox (https://www.clubdelphi.com/foros/showthread.php?t=58562)

Camilo 24-07-2008 03:42:50

Grabar Una Opcion de CheckBox
 
Hola Amigos:

Tengo la siguiente inquietud y gradezco de antemano su tiempo y disposicion para ayudarme.

Tengo una tabla en paradox y uno de sus campos se llama "Colores".
Tengo un formulario hecho a punta de CheckBox.
Necesito que en el campo "Colores" de mi tabla se grabe el Color correspondiente al CheckBox cheuqeado, si son varios entonces que se graben todos los chequeados separados por comas y espacio.

Supongamos que en el formulario tengo 10 opciones de Colores que van desde Blanco, Rojo, Amarillo......Etc. opciones reflejadas en varios checkbox desde el Checbox1 hasta el CheckBox10.

Entonces si yo chequeo el Checkbox2 entonces que en la tabla se grabe en el campo "Colores" simplemente "Rojo".

Que si chequeamos al 1 y al dos en la tabla se grabe en ese campo "Blanco, Rojo" y asi sucesivamente.

Hermanos foristas mil gracias.

Tablas Paradox Delphi 7.

lKinGl 24-07-2008 04:49:36

Salu2

he hecho la solución de tu problema de esta forma

iserté
3 checkbox
1 edit
1 boton

marcaras los checkbox y luego presionas el boton y el revisa cual checkbox esta marcado y en el edit1 se refleja que checkbox marcaste

este es el codigo del boton (es la unica parte donde puse codigo)

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
color:string;
begin
edit1.Clear;
if CheckBox1.Checked=true then
  begin
    color:=edit1.Text+' ,'+'Blanco';
    edit1.Text:=color;
  end
  else
  begin
  end;
if CheckBox2.Checked=true then
  begin
    color:=edit1.Text+' ,'+'Rojo';
    edit1.Text:=color;
  end
  else
  begin
  end;
if CheckBox3.Checked=true then
  begin
    color:=edit1.Text+' ,'+'Amarillo';
    edit1.Text:=color;
  end
  else
  begin
  end;
if Application.MessageBox('¿Desea Guardar?','')=6 then
  begin
    tutabla.insert;
    tutabla.fieldvalues['campocolor']:=trim(edit1.text);
    tutabla.post;
  end
  else
  begin
    CheckBox1.Checked:=false;
    CheckBox2.Checked:=false;
    CheckBox3.Checked:=false;
    edit1.Clear;
  end:
end;

espero que te sirva

Caro 24-07-2008 05:25:29

Hola Camilo, yo utilizaria un CheckListBox que esta en la paleta Additional, así solo tendrias que recorrer y preguntar cuales estan chekeados, ejemplo:

Código Delphi [-]
var
 i : Integer;
 Colores : String;
begin
 Colores := '';
 for i:=0 to CheckListBox1.Items.Count-1 do
  begin
   if CheckListBox1.Checked[i] then
    Colores := Colores+CheckListBox1.Items[i]+',';
  end;
  showmessage(Colores);

En este codigo, tienes que quitarle la ultima coma, puede ser con un copy y tu cadena Colores sería la que guardarias en tu campo.

Otra forma sería, recorriendo los componentes de tu formulario, verificar si es un checkbox y hacer lo anterior.

Saluditos

Camilo 24-07-2008 12:47:39

señores buenos dias, disculpas por mi ausencia, en mi pais ya era hora de ir a la cama y recien me levanto y veo su generosidad; voy a intentar las dos soluciones y en un ratito les cuento.
Mil y mil Gracias.


La franja horaria es GMT +2. Ahora son las 11:44:04.

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