是否有人使用Delphi 2009的TCategoryPanelGroup组件,特别是在类别面板中动态添加按钮?
我无法让它正常工作。按钮未出现或对齐已拧紧。我想做的基本概要:
procedure AddButton (const Caption, Group : String);
const
ButtonSize = 55;
Border = 10;
var
CategoryPanel : TCategoryPanel;
Button : TButton;
begin
CategoryPanel := FindCategoryPanel (CategoryPanelGroup, Group);
CategoryPanel.Height := CategoryPanel.Height + ButtonSize + Border;
Button := TButton.Create (CategoryPanel);
Button.Parent := CategoryPanel;
Button.Width := ButtonSize;
Button.Height := ButtonSize;
Button.Left := 27;
Button.Top := CategoryPanel.ClientHeight - Border - ButtonSize;
end;
任何提示?
答案 0 :(得分:0)
究竟是什么问题?按钮显示在所需的位置。
你确定你想要没有文字的方形按钮吗?
使用:
Button.Left := 0;
Button.Width := CategoryPanel.ClientWidth - 2;
使它们成为面板的精确宽度减去像素的偏移量。
使用:
Button.Width:= CategoryPanel.ClientWidth; Button.Left:= -1;
创建最大宽度。它有一个像素偏移。
[[我使用2010年公平]]。
答案 1 :(得分:0)
问题是我指定顶部坐标的方式。
我将其改为
ButtonCount := CategoryPanel.ComponentCount - 2;
Button.Top := Border + ButtonCount * (ButtonSize + Border);
CategoryPanel.ClientHeight := Border + (ButtonCount+1) * (ButtonSize + Border);
它有效。
不知道究竟是什么原因引起了这个问题。