Ver Mensaje Individual
  #3  
Antiguo 04-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Si son 12 Checkboxes, necesitarás 12 variables; que mejor que usar un array y la propiedad Tag de cada Checkbox.

A cada Checkbox en su propiedad Tag le pones un número correlativo, desde 1 hasta 12:
Código Delphi [-]
var estados : array [1..12] of Boolean;

procedure TfrmGDatos.CheckBox1Click(Sender: TObject);
begin
{ Todos los checkboxes comparten este evento.

   Usamos el moldeo de tipo "TCheckbox(Sender)" para decirle al 
   compilador que siempre será un TCheckbox el que genere
   este evento
}

estados[TCheckbox(sender).Tag] := TCheckbox(Sender).checked;

end;

El moldeo es necesario, porque en delphi tenemos un evento TNotifyEvent que es estándar para muchos controles, por ejemplo el evento OnClick, que podríamos asignar el mismo procedimiento para un TCheckbox, Tbutton, TEdit, etc.

Nosotros somos los que asignamos el evento en el inspector de objetos, por tanto, somos los responsables de decirle a Delphi con el moldeo de tipos qué control generó el evento en cuestión.


El caso más general:
Código Delphi [-]

procedure TfrmGDatos.CheckBox1Click(Sender: TObject);
begin
  if (Sender is TCheckBox) then
  begin
     // tratar como un checkbox:  
    with TCheckBox(Sender) do
 
  end
  else if (Sender is TButton) then
  With TButton(Sender) do 


end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 04-12-2007 a las 12:39:43.
Responder Con Cita