mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-24 21:51:39 +02:00
ide: fix for TMainMenuComponentEditor edit method. Fix crash of MenuEditor, on edited menu component deleted
git-svn-id: trunk@25611 -
This commit is contained in:
parent
ea295a4244
commit
f9e656e9a1
@ -73,15 +73,12 @@ type
|
|||||||
The default component editor for TMenu. }
|
The default component editor for TMenu. }
|
||||||
TMainMenuComponentEditor = class(TComponentEditor)
|
TMainMenuComponentEditor = class(TComponentEditor)
|
||||||
private
|
private
|
||||||
FMenu: TMainMenu;
|
|
||||||
FDesigner: TComponentEditorDesigner;
|
FDesigner: TComponentEditorDesigner;
|
||||||
protected
|
protected
|
||||||
public
|
public
|
||||||
constructor Create(AComponent: TComponent;
|
constructor Create(AComponent: TComponent;
|
||||||
ADesigner: TComponentEditorDesigner); override;
|
ADesigner: TComponentEditorDesigner); override;
|
||||||
destructor Destroy; override;
|
|
||||||
procedure Edit; override;
|
procedure Edit; override;
|
||||||
property Menu: TMainMenu read FMenu write FMenu;
|
|
||||||
function GetVerbCount: Integer; override;
|
function GetVerbCount: Integer; override;
|
||||||
function GetVerb(Index: Integer): string; override;
|
function GetVerb(Index: Integer): string; override;
|
||||||
procedure ExecuteVerb(Index: Integer); override;
|
procedure ExecuteVerb(Index: Integer); override;
|
||||||
@ -175,13 +172,15 @@ begin
|
|||||||
if FindRootDesigner(AComponent) <> FDesigner then Exit;
|
if FindRootDesigner(AComponent) <> FDesigner then Exit;
|
||||||
i := List_menus.Items.IndexOf(AComponent.Name);
|
i := List_menus.Items.IndexOf(AComponent.Name);
|
||||||
if i >= 0 then List_menus.Items.Delete(i);
|
if i >= 0 then List_menus.Items.Delete(i);
|
||||||
|
|
||||||
|
if AComponent = FMenu then SetMenu(nil);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainMenuEditorForm.OnPersistentAdded(APersistent: TPersistent;
|
procedure TMainMenuEditorForm.OnPersistentAdded(APersistent: TPersistent;
|
||||||
Select: boolean);
|
Select: boolean);
|
||||||
begin
|
begin
|
||||||
debugln('TMainMenuEditorForm.OnPersistentAdded ',dbgsName(APersistent));
|
//debugln('TMainMenuEditorForm.OnPersistentAdded ',dbgsName(APersistent));
|
||||||
if APersistent is TMenu then
|
if APersistent is TMenu then
|
||||||
UpdateListOfMenus;
|
UpdateListOfMenus;
|
||||||
end;
|
end;
|
||||||
@ -258,15 +257,6 @@ begin
|
|||||||
FDesigner := ADesigner;
|
FDesigner := ADesigner;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TMainMenuComponentEditor.Destroy;
|
|
||||||
begin
|
|
||||||
if (MainMenuEditorForm <> nil) and (MainMenuEditorForm.DesignerMainMenu <> nil)
|
|
||||||
and (MainMenuEditorForm.DesignerMainMenu.Menu=Component) then
|
|
||||||
FreeThenNil(MainMenuEditorForm);
|
|
||||||
|
|
||||||
inherited Destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TMainMenuComponentEditor.Edit;
|
procedure TMainMenuComponentEditor.Edit;
|
||||||
begin
|
begin
|
||||||
ShowMenuEditor(Component as TMenu);
|
ShowMenuEditor(Component as TMenu);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user