怎么设置才能让控件面板折叠起来?(100分)

  • 主题发起人 主题发起人 cuteh
  • 开始时间 开始时间
说具体一点行吗
 
就是把控件面板分成几行显示,这样就不用来回滚动了
 
用第三方工具,
 
用第三方工具
 

新建一个Unit,将下面的代码全部拷贝进去,保存为MultiLinePaletteExpert.pas文件,
新建一个Package,Add刚刚保存的MultiLinePaletteExpert.pas文件,编译、安装。
想卸载该Package,在Delphi菜单项选择Component/Install Pacgage,找到我们的bpl,
remove它就可以了,

//一下为Unit源文件
unit MultiLinePaletteExpert;

interface

uses
Forms, Controls, ComCtrls;

implementation

type
TMultiLinePalette = class
public
procedure ResizeComponentPalette(Sender : TObject);
end;

var
MultiLinePalette : TMultiLinePalette;

procedure TMultiLinePalette.ResizeComponentPalette(Sender : TObject);
var
AHeight : integer;
begin
with (Sender as TTabControl) do begin
AHeight := Height + DisplayRect.Top - DisplayRect.Bottom + 29;
Constraints.MinHeight := AHeight;
Parent.Constraints.MaxHeight := AHeight;
end;
end;{ResizeMultiLineComponentPalette}

procedure SetMultiLineComponentPalette(MultiLine : boolean);
var
AppBuilder : TForm;
TabControl : TTabControl;
begin
AppBuilder := TForm(Application.FindComponent('AppBuilder'));
if (AppBuilder <> nil) then
begin
TabControl := TTabControl(AppBuilder.FindComponent('TabControl'));
if (TabControl <> nil) then
begin
TabControl.MultiLine := MultiLine;
if MultiLine then
TabControl.OnResize := MultiLinePalette.ResizeComponentPalette
else
TabControl.OnResize := nil;
end;
end;
end; {SetMultiLineComponentPalette}

initialization
MultiLinePalette := TMultiLinePalette.Create;
SetMultiLineComponentPalette(true);

finalization
SetMultiLineComponentPalette(false);
MultiLinePalette.Free;

end.

 
后退
顶部