The solution for TActionToolBar:
Copy Vcl.ActnMenus and Vcl.ActnCtrls to your project source folder.
Now modify procedure TCustomToolScrollBtn.DrawArrows in ActCtrls
procedure TCustomToolScrollBtn.DrawArrows;
const
ArrowDirection: array[TAlign] of TScrollDirection = (sdDown, sdUp,
sdDown, sdDown, sdDown, sdDown, sdDown);
var
P: TPoint;
TempCanvas: TCanvas;
LDetails: TThemedElementDetails;
LColor: TColor;
begin
case FDirection of
sdUp,
sdDown : P := Point(Width div 2 - FArrowSize, 3);
sdRight,
sdLeft : P := Point(Width div 2 - FArrowSize div 2, 3);
end;
TempCanvas := TCanvas.Create;
TempCanvas.Handle := Canvas.Handle;
try
if TCustomActionToolBar(Parent).HiddenCount < 1 then
begin
self.Enabled:=false;
exit;
end else self.Enabled:=true;
if TStyleManager.IsCustomStyleActive then
begin
if not Enabled then
LDetails := StyleServices.GetElementDetails(ttbButtonDisabled)
else
if Self.FDown then
LDetails := StyleServices.GetElementDetails(ttbButtonPressed)
else
if FMouseInControl then
LDetails := StyleServices.GetElementDetails(ttbButtonHot)
else
LDetails := StyleServices.GetElementDetails(ttbButtonNormal);
if not StyleServices.GetElementColor(LDetails, ecTextColor, LColor) then
if Enabled then
LColor := StyleServices.GetSystemColor(clBtnText)
else
LColor := StyleServices.GetSystemColor(clGrayText);
TempCanvas.Pen.Color := LColor;
end
else
if Enabled then
TempCanvas.Pen.Color := ActionBar.ColorMap.FontColor
else
TempCanvas.Pen.Color := ActionBar.ColorMap.DisabledFontColor;
if Parent is TCustomActionToolBar then
if TCustomActionToolBar(Parent).HiddenCount > 0 then
DrawChevron(TempCanvas, sdDown, Point(Width div 2 - FArrowSize, Height div 2 - FArrowSize), FArrowSize);
finally
TempCanvas.Handle := 0;
TempCanvas.Free;
end;
end;
And change procedure TCustomizeActionToolBar.DoAddCustomizeItems
in Vcl.ActnMenus
Just comment code:
if Assigned(ActionBarItem) then
begin
{
if AnActionClient.Items.Count > 0 then
AddSeparator(AnActionClient.Items);
FAddlItem := AnActionClient.Items.Add;
FAddlItem.Caption := SAddRemoveButtons;
AddItems(FAddlItem.Items, ActionBarItem.Items, ActionBarItem.Items.Count - 1);
with TActionBarItem(RootMenu.ParentControl.ActionBar.ActionClient) do AddItems(FAddlItem.Items, Items, Items.Count - 2);
}
if ActionBarItem.Items.Count > 0 then
begin
{
FResetAction := TCustomAction.Create(Self);
with FResetAction do
Caption := SResetActionToolbar;
if FAddlItem.Items.Count > 0 then
AddSeparator(AnActionClient.Items);
FResetItem := AnActionClient.Items.Add;
with FResetItem do
begin
Action := FResetAction;
UsageCount := -1;
end;
}
end;
end;
end;
Now Chevron is visible if some elements are hidden, and in its menu there are no tools for customization.