multiline.pas

来自「使DELPHI的控件面板成为多行显示」· PAS 代码 · 共 57 行

PAS
57
字号
unit MultiLine;

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.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?