Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   checkbox (https://www.clubdelphi.com/foros/showthread.php?t=55038)

Lupita 06-04-2008 03:41:40

checkbox
 
hola tengo varios checkbox y quiero hacer un proceso para guardar el evento checked y su caption pero no quiero estar repitiendo el proceso con cada uno por ejemplo if checkbox1.checked then asi hasta n

me podrian ayudar

ixMike 06-04-2008 03:52:20

Cita:

Empezado por Lupita (Mensaje 277878)
hola tengo...
...guardar el evento checked y su caption...
...me podrian ayudar

¿Podrías redactar mejor el mensaje? Porque lo que ahí pides no tiene mucho sentido. Y puntualiza (interrogaciones, comas, puntos...), se lee de forma más clara y ayuda a la comprensión.

Lupita 06-04-2008 04:02:03

ok
 
ok mira tengo muchos checkbox y quiero hacer esto

insert into PERM (P_CONSECUTIVO,MODULO,BOTON,checked)
values(:P_CONSECUTIVO,:MODULO,:BOTON,:checked)
ParamByName('P_CONSECUTIVO').asinteger := inc(i);
ParamByName('MODULO').asstring := menu ;
ParamByName('BOTON').asstring := checkbox1.caption;
ParamByName('checked').asinteger := ifThen(checkbox1.checked,0,1)

para cada uno y son como 23
como le podira hacer para no estar repitiendo eso las 23 veces
no se algo asi como checkbox[1].checked
la verdad no sep

ixMike 06-04-2008 04:31:46

Podrías hacer algo así:

Código Delphi [-]
for n:=0 to Form1.ControlCount-1 do
  begin
  If Form1.Controls[n].ClassName='TCheckBox' then
    begin
    //...
    ParamByName('BOTON').asstring := (Form1.Controls[n] as TCheckBox).caption;
    ParamByName('checked').asinteger := ifThen((Form1.Controls[n] as TCheckBox).checked,0,1)
    end;
  end;



Salu2.

Lupita 06-04-2008 07:43:55

dejame probar
 
ok gracias lo estoy probando si tengo una duda te comentare. Gracias

Caro 07-04-2008 06:11:09

Hola Lupita, yo utilizaría un ChekListBox y en vez de recorrer todos los controles del formulario, recorres directamente tu CheckListBox como si fuera un arreglo. Puedes añadir los CheckBox que quieras en su propiedad Items del ChekListBox.

Código Delphi [-]
var
 j:Integer;
begin
  for j:=0 to CheckListBox1.Items.Count-1 do
   begin
     insert into PERM (P_CONSECUTIVO,MODULO,BOTON,checked)
     values(:P_CONSECUTIVO,:MODULO,:BOTON,:checked)
     ParamByName('P_CONSECUTIVO').asinteger := inc(i);
     ParamByName('MODULO').asstring := menu ;
     ParamByName('BOTON').asstring := CheckListBox1.Items[i];
     ParamByName('checked').asinteger := ifThen(CheckListBox1.Checked[j],0,1)
   end;
end;

Saluditos

ixMike 07-04-2008 16:12:53

Cita:

Empezado por Caro (Mensaje 277931)
Hola Lupita, yo utilizaría un ChekListBox...

Iba a recomendárselo, pero como en mi antigua versión de Delphi no aparece, no estaba seguro si venía con las nuevas o era un componente de terceros. Además, aunque en un principio sería más cómodo usar el CheckListBox, ahora ella tendría que adaptar todo su código.

Salu2 :)


La franja horaria es GMT +2. Ahora son las 11:55:49.

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