aca les envio una actualizacion del codigo
uso la misma propiedad color para tomar y debolver el estado del chekbox...
Código Delphi
[-]
procedure TForm1.ChkClick(Sender: TObject);
begin
if TRzCheckBox(Sender).Checked then
begin
TRzCheckBox(Sender).Color:= TRzPanel(TRzCheckBox(Sender).Parent).Color;
TRzPanel(TRzCheckBox(Sender).Parent).ParentColor:=false;
TRzPanel(TRzCheckBox(Sender).Parent).Color := $00CAF0FF;
end
else
begin
TRzPanel(TRzCheckBox(Sender).Parent).Color := TRzCheckBox(Sender).Color
end;
end;
aqui agrego unas lineas, que parecen bobas pero nos permiten guardar independientemente el color de fondo..
y que se mantenga alternados..los colores
.. pero me di cuenta que cuando selecciono mas de dos y los desmarco no se me ponen los colores como son ,, que se le puede sumar a este tema para solucionarlo..
bueno me puse a trabajar en eso y lo consegui..
primero use un TRzCheckBox en vez de TCheckBox , porque?? este cambio , pues , trz me permite asignar un color mientras lo pongo transparente, ahi esta el truco, mantener el color de fondo, guardandolo en el mismo objeto que lo ejecuta...
Código Delphi
[-]
with TRzCheckBox.Create(nil) do
begin
OnClick := ChkClick;
Name:= 'CheckMail'+IntToStr(numberpanel);
Caption:=''; ParentColor:=false;
Transparent:=true;
left:=16;
top:=21;
Width:=17;
Parent:= Pnl;
end;