mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 04:35:57 +02:00
IDE: designer: creating components: set csInline before calling Create
git-svn-id: trunk@15682 -
This commit is contained in:
parent
06eebec281
commit
7d22d4856a
@ -264,6 +264,7 @@ each control that's dropped onto the form
|
|||||||
function DesignerBaseClassCount: Integer; override;
|
function DesignerBaseClassCount: Integer; override;
|
||||||
procedure UnregisterDesignerBaseClass(AClass: TComponentClass); override;
|
procedure UnregisterDesignerBaseClass(AClass: TComponentClass); override;
|
||||||
function IndexOfDesignerBaseClass(AClass: TComponentClass): integer; override;
|
function IndexOfDesignerBaseClass(AClass: TComponentClass): integer; override;
|
||||||
|
function DescendFromDesignerBaseClass(AClass: TComponentClass): integer; override;
|
||||||
function FindDesignerBaseClassByName(const AClassName: shortstring; WithDefaults: boolean): TComponentClass; override;
|
function FindDesignerBaseClassByName(const AClassName: shortstring; WithDefaults: boolean): TComponentClass; override;
|
||||||
|
|
||||||
// define properties
|
// define properties
|
||||||
@ -1510,6 +1511,12 @@ begin
|
|||||||
try
|
try
|
||||||
NewComponent := TComponent(TypeClass.newinstance);
|
NewComponent := TComponent(TypeClass.newinstance);
|
||||||
SetComponentDesignMode(NewComponent,true);
|
SetComponentDesignMode(NewComponent,true);
|
||||||
|
if DescendFromDesignerBaseClass(TypeClass)>=0 then begin
|
||||||
|
// this class can have its own lfm streams (e.g. a TFrame)
|
||||||
|
// => set csInline
|
||||||
|
DebugLn(['TCustomFormEditor.CreateComponent Inline ',DbgSName(TypeClass)]);
|
||||||
|
SetComponentInlineMode(NewComponent,true);
|
||||||
|
end;
|
||||||
NewComponent.Create(OwnerComponent);
|
NewComponent.Create(OwnerComponent);
|
||||||
except
|
except
|
||||||
on e: Exception do begin
|
on e: Exception do begin
|
||||||
@ -1856,6 +1863,15 @@ begin
|
|||||||
Result:=FDesignerBaseClasses.IndexOf(AClass);
|
Result:=FDesignerBaseClasses.IndexOf(AClass);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCustomFormEditor.DescendFromDesignerBaseClass(AClass: TComponentClass
|
||||||
|
): integer;
|
||||||
|
begin
|
||||||
|
Result:=FDesignerBaseClasses.Count-1;
|
||||||
|
while (Result>=0)
|
||||||
|
and (not AClass.InheritsFrom(TClass(FDesignerBaseClasses[Result]))) do
|
||||||
|
dec(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
function TCustomFormEditor.FindDesignerBaseClassByName(
|
function TCustomFormEditor.FindDesignerBaseClassByName(
|
||||||
const AClassName: shortstring; WithDefaults: boolean): TComponentClass;
|
const AClassName: shortstring; WithDefaults: boolean): TComponentClass;
|
||||||
var
|
var
|
||||||
|
@ -127,6 +127,7 @@ type
|
|||||||
property DesignerBaseClasses[Index: integer]: TComponentClass read GetDesignerBaseClasses;
|
property DesignerBaseClasses[Index: integer]: TComponentClass read GetDesignerBaseClasses;
|
||||||
procedure UnregisterDesignerBaseClass(AClass: TComponentClass); virtual; abstract;
|
procedure UnregisterDesignerBaseClass(AClass: TComponentClass); virtual; abstract;
|
||||||
function IndexOfDesignerBaseClass(AClass: TComponentClass): integer; virtual; abstract;
|
function IndexOfDesignerBaseClass(AClass: TComponentClass): integer; virtual; abstract;
|
||||||
|
function DescendFromDesignerBaseClass(AClass: TComponentClass): integer; virtual; abstract;
|
||||||
function FindDesignerBaseClassByName(const AClassName: shortstring; WithDefaults: boolean): TComponentClass; virtual; abstract;
|
function FindDesignerBaseClassByName(const AClassName: shortstring; WithDefaults: boolean): TComponentClass; virtual; abstract;
|
||||||
|
|
||||||
// designers
|
// designers
|
||||||
|
Loading…
Reference in New Issue
Block a user