CnPack Forum


 
Subject: 组件板多行显示是如何实现的?
tobacco123
新警察
Rank: 1



UID 610
Digest Posts 0
Credits 1
Posts 1
点点分 1
Reading Access 10
Registered 2004-12-15
Status Offline
Post at 2004-12-15 10:07  Profile | Blog | P.M. 
组件板多行显示是如何实现的?


我想知道 CnPack 是如何让组件板多行显示的?我一直源程序里找.但就是不懂它是如何修改IDE的!可以帮忙指导一下吗?本人感激不尽!thank you
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2004-12-15 20:10  Profile | Blog | P.M. 
是在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事件让其重画并且调整窗体等大小。
Top
 




All times are GMT++8, the time now is 2024-11-22 06:42

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009877 second(s), 7 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP