IdeIntf: Remove LCL dependency from unit ComponentReg. Adjust TRegisteredComponent method visibility.

This commit is contained in:
Juha 2024-03-12 09:23:27 +02:00
parent 3aaae1a6a8
commit 2c7e959e62
2 changed files with 23 additions and 17 deletions

View File

@ -25,8 +25,6 @@ interface
uses
Classes, SysUtils, TypInfo, AVL_Tree, fgl,
// LCL
Controls,
// LazUtils
LazUtilities, LazLoggerBase, Laz2_XMLCfg, LazMethodList, LazUTF8;
@ -148,29 +146,30 @@ type
FOrigPageName: string;
FRealPage: TBaseComponentPage;
FVisible: boolean;
protected
FNextSameName: TRegisteredComponent;
FPrevSameName: TRegisteredComponent;
procedure AddToPalette;
protected
function CanBeCreatedInDesigner: boolean; virtual;
procedure ConsistencyCheck; virtual;
function GetPriority: TComponentPriority; virtual;
function InheritsFromControl: boolean; virtual; abstract;
public
constructor Create(TheComponentClass: TComponentClass; const ThePageName: string);
destructor Destroy; override;
procedure ConsistencyCheck; virtual;
function GetUnitName: string; virtual; abstract;
function GetPriority: TComponentPriority; virtual;
procedure AddToPalette; virtual;
function CanBeCreatedInDesigner: boolean; virtual;
function GetCreationClass: TComponentClass; virtual;
function HasAmbiguousClassName: boolean; virtual; // true if another component class with same name (different unit) is registered
function GetFullClassName(const UnitSep: char = '/'): string; virtual;
function GetUnitName: string; virtual; abstract;
function HasAmbiguousClassName: boolean; virtual; // true if another component class with same name (different unit) is registered
public
property ComponentClass: TComponentClass read FComponentClass; // Beware of ambiguous classnames
property OnGetCreationClass: TOnGetCreationClass read FOnGetCreationClass
write FOnGetCreationClass;
property OrigPageName: string read FOrigPageName; // case sensitive
property RealPage: TBaseComponentPage read FRealPage write FRealPage;
property Visible: boolean read FVisible write FVisible;
property NextSameName: TRegisteredComponent read FNextSameName;
property PrevSameName: TRegisteredComponent read FPrevSameName;
property OnGetCreationClass: TOnGetCreationClass read FOnGetCreationClass
write FOnGetCreationClass;
end;
{ TBaseComponentPage }
@ -1284,7 +1283,7 @@ var
i, Vote: Integer;
begin
Vote:=1;
if HideControls and AComponent.ComponentClass.InheritsFrom(TControl) then
if HideControls and AComponent.InheritsFromControl then
Dec(Vote);
i:=FHandlers[cphtVoteVisibility].Count;
while FHandlers[cphtVoteVisibility].NextDownIndex(i) do

View File

@ -40,7 +40,7 @@ uses
// FCL
Classes, SysUtils, Contnrs, TypInfo, AVL_Tree, System.UITypes,
// LCL
Forms, ImgList,
Forms, Controls, ImgList,
// Codetools
LazConfigStorage, DefineTemplates, CodeToolManager,
CodeCache, CodeToolsCfgScript, CodeToolsStructs, BasicCodeTools,
@ -90,17 +90,19 @@ type
private
FPkgFile: TPkgFile;
procedure SetPkgFile(const AValue: TPkgFile);
protected
function CanBeCreatedInDesigner: boolean; override;
procedure ConsistencyCheck; override;
function GetPriority: TComponentPriority; override;
function InheritsFromControl: boolean; override;
public
constructor Create(ThePkgFile: TPkgFile; TheComponentClass: TComponentClass;
const ThePageName: string);
destructor Destroy; override;
function GetUnitName: string; override;
function GetPriority: TComponentPriority; override;
procedure ConsistencyCheck; override;
function HasIcon: boolean;
function ImageIndex: TImageIndex;
class function Images: TCustomImageList;
function HasIcon: boolean;
function CanBeCreatedInDesigner: boolean; override;
public
property PkgFile: TPkgFile read FPkgFile write SetPkgFile;
end;
@ -4052,6 +4054,11 @@ begin
if (FPkgFile<>nil) then PkgFile.AddPkgComponent(Self);
end;
function TPkgComponent.InheritsFromControl: boolean;
begin
Result:=ComponentClass.InheritsFrom(TControl);
end;
constructor TPkgComponent.Create(ThePkgFile: TPkgFile;
TheComponentClass: TComponentClass; const ThePageName: string);
begin