Board logo

Subject: 组件板多行显示是如何实现的? [Print This Page]

Author: tobacco123    Time: 2004-12-15 10:07     Subject: 组件板多行显示是如何实现的?


我想知道 CnPack 是如何让组件板多行显示的?我一直源程序里找.但就是不懂它是如何修改IDE的!可以帮忙指导一下吗?本人感激不尽!thank you
Author: Passion    Time: 2004-12-15 20:10

是在CnPaletteEnhancements.pas 中实现的,代码如下:

procedure TCnPaletteEnhanceWizard.UpdateComponentPalette(AMultiLine: Boolean);
begin
  if Assigned(ComponentPalette) then
  begin
    if ComponentPalette.MultiLine <> AMultiLine then
    begin
      ComponentPalette.MultiLine := AMultiLine;

      if AMultiLine then
      begin
        ComponentPalette.OnResize := ResizeComponentPalette;
        ComponentPalette.OnResize(ComponentPalette);
      end
      else
        ComponentPalette.OnResize := nil;
    end;
  end;
end;

关键是控制ComponentPalette这个TTabControl的MultiLine属性。当它被设置成True时,需要手工调用一次OnResize事件让其重画并且调整窗体等大小。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0