Ver Mensaje Individual
  #5  
Antiguo 04-12-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
Bueno de nuevo por aqui.

Esto es lo que he hecho a manera didactica - hasta parece que se de que hablo-

Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Panel1: TPanel;
    Panel2: TPanel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    CheckBox8: TCheckBox;
    Memo1: TMemo;
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    Checados: array [1..8] of boolean;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 i,j: integer;
 Check: TcheckBox;
begin
  {http://www.clubdelphi.com/foros/show...light=checkbox
   Verificamos cuales CheckBox estan "checados"
  }
  { TO DO
   Falta recorrer cada panel y si dos o mas checkbox estan seleccionados en
     cada panel Habilitar el correspondiente elemento del RadioGroup.}
  for i := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
      begin
        Check := TCheckBox(Components[i]);
        if Check.Checked then
          Memo1.Lines.Add(Check.Name + ' = True');
      end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  { http://www.clubdelphi.com/foros/show...d=1#post250309
   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
   Usar el Inspector de Objetos para asignar valor a Tag
  }
  checados[TCheckbox(sender).Tag] := TCheckbox(Sender).checked;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  { http://www.clubdelphi.com/foros/show...7847&highlight=
          deshabilitar+radiogroup
   Al activarse el formulario estos elementos del RadioGroup
    estan Inhabilitados (Disabled)
  }
  RadioGroup1.Controls[4].Enabled := False;
  RadioGroup1.Controls[5].Enabled := False;
end;
end.

Aun quedan cosas por hacer que ando investigando. Se aceptan todas las ayudas. Añado un zip con el codigo fuente y sin ejecutable de este proyecto.

Última edición por FGarcia fecha: 05-12-2007 a las 02:49:49.
Responder Con Cita