Designer: Add debug lines to designer code and class destructors for testing issue .

git-svn-id: trunk@62006 -
This commit is contained in:
juha 2019-10-08 17:12:10 +00:00
parent f6616221d8
commit 33ed908dbc
5 changed files with 37 additions and 32 deletions

View File

@ -85,13 +85,12 @@ type
procedure SetPublishedBounds(AIndex: Integer; AValue: Integer); virtual;
public
constructor Create(AOwner: TComponent; ANonFormDesigner: INonFormDesigner); virtual; reintroduce;
destructor Destroy; override;
procedure Paint; override;
procedure SetBounds(ALeft, ATop, AWidth, AHeight: integer); override;
procedure SetDesignerFormBounds(ALeft, ATop, AWidth, AHeight: integer);
procedure SetPublishedBounds(ALeft, ATop, AWidth, AHeight: integer);
procedure SetLookupRootBounds(ALeft, ATop, AWidth, AHeight: integer); virtual;
function DockedDesigner: boolean; virtual;
property NonFormDesigner: INonFormDesigner read FNonFormDesigner implements INonFormDesigner;
@ -460,6 +459,20 @@ end;
{ TNonFormProxyDesignerForm }
constructor TNonFormProxyDesignerForm.Create(AOwner: TComponent;
ANonFormDesigner: INonFormDesigner);
begin
inherited CreateNew(AOwner, 1);
FNonFormDesigner := ANonFormDesigner;
FNonFormDesigner.Create;
end;
destructor TNonFormProxyDesignerForm.Destroy;
begin
inherited Destroy;
DebugLn(['TNonFormProxyDesignerForm.Destroy: Self=', Self, ', LookupRoot=', FLookupRoot]);
end;
procedure TNonFormProxyDesignerForm.Notification(AComponent: TComponent;
AOperation: TOperation);
begin
@ -494,15 +507,6 @@ begin
end;
end;
constructor TNonFormProxyDesignerForm.Create(AOwner: TComponent;
ANonFormDesigner: INonFormDesigner);
begin
inherited CreateNew(AOwner, 1);
FNonFormDesigner := ANonFormDesigner;
FNonFormDesigner.Create;
end;
procedure TNonFormProxyDesignerForm.Paint;
begin
inherited Paint;
@ -557,8 +561,7 @@ begin
FCollectedChildren.Add(Child);
end;
procedure TDesignerMediator.Notification(AComponent: TComponent;
Operation: TOperation);
procedure TDesignerMediator.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if Operation=opRemove then begin
@ -577,9 +580,8 @@ end;
procedure TDesignerMediator.SetDesigner(const AValue: TComponentEditorDesigner);
begin
if FDesigner=AValue then exit;
if FDesigner<>nil then begin
end;
//if FDesigner<>nil then begin
//end;
FDesigner:=AValue;
end;

View File

@ -90,6 +90,22 @@ end;
{ TCustomNonFormDesignerForm }
procedure TCustomNonFormDesignerForm.Create;
begin
inherited Create;
end;
constructor TCustomNonFormDesignerForm.Create(
ANonFormProxyDesignerForm: TNonFormProxyDesignerForm);
begin
FNonFormProxyDesignerForm := ANonFormProxyDesignerForm;
end;
destructor TCustomNonFormDesignerForm.Destroy;
begin
inherited Destroy;
end;
function TCustomNonFormDesignerForm.GetLookupRoot: TComponent;
begin
Result := FNonFormProxyDesignerForm.LookupRoot;
@ -118,22 +134,6 @@ begin
end;
end;
constructor TCustomNonFormDesignerForm.Create(
ANonFormProxyDesignerForm: TNonFormProxyDesignerForm);
begin
FNonFormProxyDesignerForm := ANonFormProxyDesignerForm;
end;
destructor TCustomNonFormDesignerForm.Destroy;
begin
inherited Destroy;
end;
procedure TCustomNonFormDesignerForm.Create;
begin
inherited Create;
end;
procedure TCustomNonFormDesignerForm.DoLoadBounds;
begin
if Assigned(OnLoadBounds) then

View File

@ -825,6 +825,7 @@ begin
// was FinalizeFreeDesigner
Include(FFlags, dfDestroyingForm);
// free or hide the form
DebugLn(['TDesigner.PrepareFreeDesigner: TheFormEditor=', TheFormEditor, ', Designer=', Self]);
TheFormEditor.DeleteComponent(FLookupRoot,AFreeComponent);
DisconnectComponent;
Free;

View File

@ -65,6 +65,7 @@ implementation
destructor TFrameDesignerForm.Destroy;
begin
DebugLn(['TFrameDesignerForm.Destroy: Self=', Self, ', LookupRoot=', LookupRoot]);
if LookupRoot is TControl then
TControl(LookupRoot).RemoveAllHandlersOfObject(Self);
inherited Destroy;

View File

@ -75,6 +75,7 @@ end;
procedure FreeFormEditor;
begin
if FormEditor1=nil then exit;
DebugLn(['FreeFormEditor: FormEditor1=', FormEditor1]);
FormEditingHook:=nil;
FormEditor1.Free;
FormEditor1:=nil;