procedure TFrmMain.ClearControls(AParent: TWinControl);
var
i: Integer;
begin
for i := AParent.ControlCount - 1 downto 0 do begin
if not AParent.Controls[i].InheritsFrom(TWinControl) then Continue;
try
if TWinControl(AParent.Controls[i]).ControlCount > 0 then begin
ClearControls(TWinControl(AParent.Controls[i]));
end;
AParent.Controls[i].Free;
except
end;
end;
end;
procedure TForm1.AdvToolButton2Click(Sender: TObject);
var
i,tempTop:Integer;
btnList: array of TAdvToolButton;
begin
if not isFirst then
begin
isFirst :=True;
ClearControls(AdvScrollBox1);
SetLength(btnList,10);
for i := 0 to 9 do
begin
btnList[i] := TAdvToolButton.Create(AdvScrollBox1);
if i=0 then
tempTop :=0//AdvScrollBox1.Top
else tempTop :=tempTop+30;
btnList[i].Parent :=AdvScrollBox1;
btnList[i].Name := 'Btn'+IntToStr(i);
btnList[i].Caption :='自定义'+IntToStr(i);
btnList[i].Width :=AdvScrollBox1.Width;
btnList[i].Height :=30;
btnList[i].Color :=clWindow;
btnList[i].Font.Color :=clWindowText;
btnList[i].Font.Name :='微软雅黑';
btnList[i].Font.Size :=10;
btnList[i].ColorHot :=clSkyBlue;
btnList[i].Top := tempTop;
btnList[i].Left :=0;
btnList[i].OnClick := AdvToolButton2Click;
end;
end;
for i := 0 to AdvScrollBox1.ControlCount - 1 do
begin
if (AdvScrollBox1.Controls[i] is TAdvToolButton ) then
begin
if AdvScrollBox1.Controls[i].Name = TAdvToolButton(Sender).Name then
begin
TAdvToolButton(Sender).Color :=clSkyBlue;
TAdvToolButton(Sender).Font.Color :=clWhite;
TAdvToolButton(Sender).Font.Name :='微软雅黑';
TAdvToolButton(Sender).Font.Size :=10;
TAdvToolButton(Sender).Height :=30;
TAdvToolButton(AdvScrollBox1.Controls[i]).ColorHot :=clSkyBlue;
end
else begin
TAdvToolButton(AdvScrollBox1.Controls[i]).Color :=clWindow;
TAdvToolButton(AdvScrollBox1.Controls[i]).Font.Color :=clWindowText;
TAdvToolButton(AdvScrollBox1.Controls[i]).Font.Name :='微软雅黑';
TAdvToolButton(AdvScrollBox1.Controls[i]).Font.Size :=10;
TAdvToolButton(AdvScrollBox1.Controls[i]).Height :=30;
TAdvToolButton(AdvScrollBox1.Controls[i]).ColorHot :=clSkyBlue;
end;
end;
end;