Ver Mensaje Individual
  #16  
Antiguo 11-12-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Reputación: 0
AlejandroCalica Va por buen camino
Muy buenas tardes, hice una mescolanza de codigos que me funcionaron, pero me gustaria saber si existe forma de reducir el codigo, este es el codigo que gracias a todos ustedes agrupe de esta forma, espero tengan tiempo para echarme la mano.

Código Delphi [-]

procedure TForm1.SomePanelsVisible(TSN:Boolean;const Panels: array of TPanel;SiNo:Boolean);
var
  i,ii: Integer;
begin // arreglo 1
      // Ocultar todos  o Mostrar Todos los Panel
     // independientemente del arreglo 2
  For ii := 0 To ComponentCount - 1 Do
  If Components[ii] Is TPanel Then
     TPanel(Components[ii]).Visible:= TSN;  //todos visibles o no
 begin
   //arreglo 2
   //independiente al arreglo 1
   //este arreglo sera lo contrario al arreglo 3
  For i := 0 To ComponentCount - 1 Do
  If Components[i] Is TPanel Then
  TPanel(Components[i]).Visible:= Not SiNo; //False
  // Mostrar los deseados
  //arreglo 3 el cual sera para nostrar o no un grupo determinado
  //de controles TPanel
  for i := Low(Panels) to High(Panels) do
    Panels[i].Visible :=SiNo;
end;end;

y de esta forma llamo el proceso,con estas opciones

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
begin
SomePanelsVisible(False,[],True);   //ocultar todos
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
SomePanelsVisible(False,[],False);    //mostrar todos
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
SomePanelsVisible(False,[Panel1, Panel10],true);   //mostrar 1 y 10
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
SomePanelsVisible(False,[Panel1,Panel3,Panel5,Panel7],true); //Mostrar 1,3,5 y 7
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
SomePanelsVisible(True,[Panel1, Panel10],False);  //ocultar 1 y 10
end;
Responder Con Cita