mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-28 10:02:14 +00:00
ADD: TKASPanel and TKASGroupBox controls
(cherry picked from commit f9f2487868)
This commit is contained in:
parent
69ce287b33
commit
226fc97eba
3 changed files with 98 additions and 3 deletions
|
|
@ -26,8 +26,8 @@
|
|||
"/>
|
||||
<License Value="GNU GPL 2
|
||||
"/>
|
||||
<Version Major="1" Minor="9" Release="5"/>
|
||||
<Files Count="11">
|
||||
<Version Major="1" Minor="10"/>
|
||||
<Files Count="12">
|
||||
<Item1>
|
||||
<Filename Value="kastoolbar.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
|
|
@ -82,6 +82,11 @@
|
|||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="KASComCtrls"/>
|
||||
</Item11>
|
||||
<Item12>
|
||||
<Filename Value="kascontrols.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="kascontrols"/>
|
||||
</Item12>
|
||||
</Files>
|
||||
<CompatibilityMode Value="True"/>
|
||||
<RequiredPkgs Count="3">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ interface
|
|||
uses
|
||||
KASToolBar, KASProgressBar, KASPathEdit, KASToolItems, KASComboBox,
|
||||
KASCDEdit, KASStatusBar, KASToolPanel, KASButton, KASButtonPanel,
|
||||
KASComCtrls, LazarusPackageIntf;
|
||||
KASComCtrls, KASControls, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
|
|
@ -26,6 +26,7 @@ begin
|
|||
RegisterUnit('KASButton', @KASButton.Register);
|
||||
RegisterUnit('KASButtonPanel', @KASButtonPanel.Register);
|
||||
RegisterUnit('KASComCtrls', @KASComCtrls.Register);
|
||||
RegisterUnit('KASControls', @KASControls.Register);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
|
|
|||
89
components/KASToolBar/kascontrols.pas
Normal file
89
components/KASToolBar/kascontrols.pas
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
unit KASControls;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Controls, StdCtrls, ExtCtrls;
|
||||
|
||||
type
|
||||
|
||||
{ TKASPanel }
|
||||
|
||||
TKASPanel = class(TPanel)
|
||||
private
|
||||
FOnAutoSize: TNotifyEvent;
|
||||
protected
|
||||
procedure DoAutoSize; override;
|
||||
published
|
||||
property OnAutoSize: TNotifyEvent read FOnAutoSize write FOnAutoSize;
|
||||
end;
|
||||
|
||||
{ TKASGroupBox }
|
||||
|
||||
TKASGroupBox = class(TGroupBox)
|
||||
private
|
||||
FOnAutoSize: TNotifyEvent;
|
||||
protected
|
||||
procedure DoAutoSize; override;
|
||||
published
|
||||
property OnAutoSize: TNotifyEvent read FOnAutoSize write FOnAutoSize;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
|
||||
implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterComponents('KASComponents', [TKASPanel, TKASGroupBox]);
|
||||
end;
|
||||
|
||||
procedure LabelsAutoSize(Self: TWinControl);
|
||||
var
|
||||
Index: Integer;
|
||||
AControl: TControl;
|
||||
begin
|
||||
with Self do
|
||||
begin
|
||||
DisableAutoSizing;
|
||||
for Index:= 0 to ControlCount - 1 do
|
||||
begin
|
||||
AControl:= Controls[Index];
|
||||
if (not (AControl is TLabel)) and Assigned(AControl.AnchorSide[akTop].Control) then
|
||||
begin
|
||||
if AControl.AnchorSide[akTop].Control is TLabel then
|
||||
AControl.AnchorSide[akTop].Control.Constraints.MinHeight:= AControl.Height;
|
||||
end;
|
||||
end;
|
||||
EnableAutoSizing;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TKASPanel }
|
||||
|
||||
procedure TKASPanel.DoAutoSize;
|
||||
begin
|
||||
inherited DoAutoSize;
|
||||
if not (csDesigning in ComponentState) then
|
||||
begin
|
||||
LabelsAutoSize(Self);
|
||||
if Assigned(FOnAutoSize) then FOnAutoSize(Self);
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TKASGroupBox }
|
||||
|
||||
procedure TKASGroupBox.DoAutoSize;
|
||||
begin
|
||||
inherited DoAutoSize;
|
||||
if not (csDesigning in ComponentState) then
|
||||
begin
|
||||
LabelsAutoSize(Self);
|
||||
if Assigned(FOnAutoSize) then FOnAutoSize(Self);
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue