TStatusbarPanels class can now be overriden from Sean McIlwain

git-svn-id: trunk@8259 -
This commit is contained in:
mattias 2005-12-06 18:40:07 +00:00
parent a0e53901fc
commit 5c18d058fb
4 changed files with 38 additions and 2 deletions

View File

@ -66,6 +66,7 @@ Seppo Suutarla - finnish translation
Sergio Marcelo
Shane Miller
Stefan Hille
Sean McIlwain
Taras Boychuk
Tom Lisjac
Tomáš Gregorovič

View File

@ -61,6 +61,9 @@ type
{ TStatusPanel }
//added.
TStatusPanelClass = class of TStatusPanel;
TStatusPanel = class(TCollectionItem)
private
FText: string;
@ -130,6 +133,12 @@ type
procedure UpdateHandleObject(PanelIndex: integer); virtual;
procedure CalculatePreferredSize(
var PreferredWidth, PreferredHeight: integer); override;
//added.
function CreatePanel: TStatusPanel; virtual;
function CreatePanels: TStatusPanels; virtual;
function GetPanelClass: TStatusPanelClass; virtual;
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;

View File

@ -25,7 +25,7 @@ begin
TControlCanvas(FCanvas).Control := Self;
ControlStyle := [csCaptureMouse, csClickEvents, csDoubleClicks, csOpaque];
FSimplePanel := True;
FPanels := TStatusPanels.Create(Self);
FPanels := CreatePanels;
Color := clBtnFace;
Anchors:=[akLeft,akRight,akBottom];
Align := alBottom;
@ -176,5 +176,31 @@ begin
UpdateHandleObject(PanelIndex);
end;
{------------------------------------------------------------------------------
function TStatusBar.CreatePanel(): TStatusPanel;
------------------------------------------------------------------------------}
function TStatusBar.CreatePanel: TStatusPanel;
var
LClass: TStatusPanelClass;
begin
LClass := GetPanelClass;
Result := LClass.Create(Panels);
end;
{------------------------------------------------------------------------------
function TStatusBar.CreatePanels(): TStatusPanels;
------------------------------------------------------------------------------}
function TStatusBar.CreatePanels: TStatusPanels;
begin
Result := TStatusPanels.Create(Self);
end;
{------------------------------------------------------------------------------
function TStatusBar.GetPanelClass(): TStatusPanelClass;
------------------------------------------------------------------------------}
function TStatusBar.GetPanelClass: TStatusPanelClass;
begin
Result := TStatusPanel;
end;
// included by comctrls.pp

View File

@ -19,7 +19,7 @@
constructor TStatusPanels.Create(TheStatusBar: TStatusBar);
begin
inherited Create(TStatusPanel);
inherited Create(TheStatusBar.GetPanelClass);
FStatusBar := TheStatusBar;
end;