mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-14 15:19:11 +02:00
Merge branch 'Designer/SelectClass' into 'main'
Display frame selection dialog when adding TFrame component from Component List window See merge request freepascal.org/lazarus/lazarus!309
This commit is contained in:
commit
f65e2a2aea
@ -279,6 +279,7 @@ var
|
||||
NewParent: TComponent;
|
||||
CurDesigner: TDesigner;
|
||||
lOldEvent: TOnComponentAdded;
|
||||
TypeClass: TComponentClass;
|
||||
begin
|
||||
AComponent := GetSelectedComponent;
|
||||
NewParent := GetSelectedDesignComponent;
|
||||
@ -301,8 +302,13 @@ begin
|
||||
if CurDesigner = nil then
|
||||
Exit;
|
||||
|
||||
// get component class (e.g. display dialog to select TFrame)
|
||||
TypeClass := AComponent.GetCreationClass;
|
||||
if TypeClass = nil then
|
||||
Exit;
|
||||
|
||||
// check parent
|
||||
CurDesigner.AddComponentCheckParent(NewParent, NewParent, nil, AComponent.ComponentClass);
|
||||
CurDesigner.AddComponentCheckParent(NewParent, NewParent, nil, TypeClass);
|
||||
if NewParent = nil then
|
||||
Exit;
|
||||
|
||||
@ -321,10 +327,10 @@ begin
|
||||
begin
|
||||
lOldEvent := CurDesigner.OnComponentAdded; // save event
|
||||
CurDesigner.OnComponentAdded := nil; // clear event
|
||||
CurDesigner.AddComponent(AComponent, AComponent.ComponentClass, NewParent, FAddCompNewLeft, FAddCompNewTop, 0, 0);
|
||||
CurDesigner.AddComponent(AComponent, TypeClass, NewParent, FAddCompNewLeft, FAddCompNewTop, 0, 0);
|
||||
CurDesigner.OnComponentAdded := lOldEvent; // restore event
|
||||
end else begin
|
||||
CurDesigner.AddComponent(AComponent, AComponent.ComponentClass, NewParent, FAddCompNewLeft, FAddCompNewTop, 0, 0);
|
||||
CurDesigner.AddComponent(AComponent, TypeClass, NewParent, FAddCompNewLeft, FAddCompNewTop, 0, 0);
|
||||
end;
|
||||
|
||||
end;
|
||||
|
@ -744,15 +744,18 @@ begin
|
||||
//debugln('TComponentPalette.ComponentBtnDblClick ',TComponent(Sender).Name);
|
||||
if SelectAButton(TSpeedButton(Sender)) and (Selected<>nil) then begin
|
||||
if FormEditingHook<>nil then begin
|
||||
TypeClass:=Selected.ComponentClass;
|
||||
if assigned(Selected.OnGetCreationClass) then
|
||||
Selected.OnGetCreationClass(Self,TypeClass);
|
||||
|
||||
// get component class (e.g. display dialog to select TFrame)
|
||||
TypeClass:=Selected.GetCreationClass;
|
||||
if TypeClass=nil then exit;
|
||||
|
||||
ParentComp:=FormEditingHook.GetDefaultComponentParent(TypeClass);
|
||||
if ParentComp=nil then exit;
|
||||
|
||||
if not FormEditingHook.GetDefaultComponentPosition(TypeClass,ParentComp,X,Y)
|
||||
then exit;
|
||||
//debugln('TComponentPalette.ComponentBtnDblClick ',dbgsName(Sender),' ',dbgs(X),',',dbgs(Y));
|
||||
|
||||
DisableAutoSize:=true;
|
||||
AComponent:=FormEditingHook.CreateComponent(ParentComp,TypeClass,'',X,Y,0,0,
|
||||
DisableAutoSize);
|
||||
|
Loading…
Reference in New Issue
Block a user