he echo unos cambios y aca los comparto con ustedes..
en este pedazo colorea denuevo los paneles creados dentro sel srolbox para que mantenda un estilo en la aplicacion..
Código Delphi
[-]
function ColoreaPanels(SB: TScrollBox): string;
var i,j: Integer;
begin
Result := '';
changecolor := 0;
for i:= 0 to SB.ControlCount - 1 do
begin
if SB.Controls[i] is TRzPanel then
begin
if changecolor = 0 then
begin
if TRzPanel( SB.Controls[i] ).Color <> $00F0E7E1 then
begin
TRzPanel( SB.Controls[i] ).Color:=$00F7F7F7;
end;
changecolor:=1;
end
else
if changecolor = 1 then
begin
if TRzPanel( SB.Controls[i] ).Color <> $00F0E7E1 then
begin
TRzPanel( SB.Controls[i] ).Color:=clBtnHighlight;
end;
changecolor:=0;
end;
end;
end;
end;
aca crea un checkbox que me marque todos los de su tipo en el area que kieran ..
Código Delphi
[-]
procedure TForm1.RzCheckBox1Click(Sender: TObject);
begin
if RzCheckBox1.Checked then
begin
CheckAllPanels(ScrollBox1, true );
end
else
begin
CheckAllPanels(ScrollBox1, false );
end;
end;
function CheckAllPanels(SB: TScrollBox; condition: Boolean ): string;
var i,j: Integer;
begin
Result := '';
for i:= 0 to SB.ControlCount - 1 do
begin
if SB.Controls[i] is TRzPanel then
begin
for j:= 0 to TRzPanel(SB.Controls[i]).ControlCount-1 do
begin
if TRzPanel(SB.Controls[i]).Controls[j] is TRzCheckBox then
begin
TRzCheckBox(TRzPanel(SB.Controls[i]).Controls[j]).Checked := condition;
end;
end;
end;
end;
end;
cuando pense en eliminar el panel dentro de el area, pence en hacerlo de muchas formas, pero me he despertado de buena gana y mente , aqui puedes mandar a buscar el panel por su nombre y luego eliminarlo, asi no hay que hacer un for...
Código Delphi
[-]
procedure TForm1.RzPanel15Click(Sender: TObject);
var u,h:integer;
n,m: string;
var t:TControl;
begin
n := ActiveCheckBoxes(ScrollBox1);
if n <> '' then
begin
u:= CharCount(n,'|');
for h:= 1 to u do
begin
m:= GetToken( n, '|' , h );
if t is TControl then
begin
t.Free; RzCheckBox1.Checked:=false;
end
else
begin
ShowMessage('No se lozalizo el control ' + t.Name);
end;
end;
ColoreaPanels(ScrollBox1);
end;
end;