Fix crash when double clicking component at design time

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum 2012-06-10 00:47:41 +00:00
parent e333deef99
commit 7b30784ee6
3 changed files with 59 additions and 75 deletions

View File

@ -271,7 +271,7 @@ Component:=self.GetComponent;
if not(Component is TSpkToolbar) then if not(Component is TSpkToolbar) then
exit; exit;
EditWindow.SetData(TSpkToolbar(Component),Self); EditWindow.SetData(TSpkToolbar(Component),Self.GetDesigner);
EditWindow.Show; EditWindow.Show;
end; end;

View File

@ -11,7 +11,6 @@ object frmEditWindow: TfrmEditWindow
Font.Height = -11 Font.Height = -11
Font.Name = 'Tahoma' Font.Name = 'Tahoma'
OnActivate = FormActivate OnActivate = FormActivate
OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnShow = FormShow OnShow = FormShow
LCLVersion = '1.1' LCLVersion = '1.1'

View File

@ -81,13 +81,12 @@ type
procedure FormActivate(Sender: TObject); procedure FormActivate(Sender: TObject);
procedure tvStructureEdited(Sender: TObject; Node: TTreeNode; procedure tvStructureEdited(Sender: TObject; Node: TTreeNode;
var S: string); var S: string);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
private private
{ Private declarations } { Private declarations }
protected protected
FToolbar: TSpkToolbar; FToolbar: TSpkToolbar;
FEditor: TComponentEditor; FDesigner: TComponentEditorDesigner;
procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure Notification(AComponent: TComponent; Operation: TOperation); override;
@ -110,7 +109,7 @@ type
procedure BuildTreeData; procedure BuildTreeData;
procedure RefreshNames; procedure RefreshNames;
procedure SetData(AToolbar : TSpkToolbar; AEditor: TComponentEditor); procedure SetData(AToolbar : TSpkToolbar; ADesigner: TComponentEditorDesigner);
property Toolbar : TSpkToolbar read FToolbar; property Toolbar : TSpkToolbar read FToolbar;
end; end;
@ -131,11 +130,10 @@ var Obj : TObject;
NewNode : TTreeNode; NewNode : TTreeNode;
Tab : TSpkTab; Tab : TSpkTab;
Pane : TSpkPane; Pane : TSpkPane;
Hook: TPropertyEditorHook;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if not FEditor.GetHook(Hook) then if FDesigner.PropertyEditorHook = nil then
Exit; Exit;
Node:=tvStructure.Selected; Node:=tvStructure.Selected;
@ -150,7 +148,7 @@ if Obj is TSpkTab then
Tab:=TSpkTab(Obj); Tab:=TSpkTab(Obj);
Pane:=TSpkPane.Create(FToolbar.Owner); Pane:=TSpkPane.Create(FToolbar.Owner);
Pane.Parent:=FToolbar; Pane.Parent:=FToolbar;
Pane.Name := FEditor.Designer.CreateUniqueComponentName(Pane.ClassName); Pane.Name := FDesigner.CreateUniqueComponentName(Pane.ClassName);
Tab.Panes.AddItem(Pane); Tab.Panes.AddItem(Pane);
NewNode:=tvStructure.Items.AddChild(Node, Pane.Caption); NewNode:=tvStructure.Items.AddChild(Node, Pane.Caption);
NewNode.Data:=Pane; NewNode.Data:=Pane;
@ -167,7 +165,7 @@ if Obj is TSpkPane then
Tab:=TSpkTab(Node.Parent.Data); Tab:=TSpkTab(Node.Parent.Data);
Pane:=TSpkPane.Create(FToolbar.Owner); Pane:=TSpkPane.Create(FToolbar.Owner);
Pane.Parent:=FToolbar; Pane.Parent:=FToolbar;
Pane.Name:=FEditor.Designer.CreateUniqueComponentName(Pane.ClassName); Pane.Name:=FDesigner.CreateUniqueComponentName(Pane.ClassName);
Tab.Panes.AddItem(Pane); Tab.Panes.AddItem(Pane);
NewNode:=tvStructure.Items.AddChild(Node.Parent, Pane.Caption); NewNode:=tvStructure.Items.AddChild(Node.Parent, Pane.Caption);
NewNode.Data:=Pane; NewNode.Data:=Pane;
@ -185,7 +183,7 @@ if Obj is TSpkBaseItem then
Tab:=TSpkTab(Node.Parent.Parent.Data); Tab:=TSpkTab(Node.Parent.Parent.Data);
Pane:=TSpkPane.Create(FToolbar.Owner); Pane:=TSpkPane.Create(FToolbar.Owner);
Pane.Parent:=FToolbar; Pane.Parent:=FToolbar;
Pane.Name:=FEditor.Designer.CreateUniqueComponentName(Pane.ClassName); Pane.Name:=FDesigner.CreateUniqueComponentName(Pane.ClassName);
Tab.Panes.AddItem(Pane); Tab.Panes.AddItem(Pane);
NewNode:=tvStructure.Items.AddChild(Node.Parent.Parent, Pane.Caption); NewNode:=tvStructure.Items.AddChild(Node.Parent.Parent, Pane.Caption);
NewNode.Data:=Pane; NewNode.Data:=Pane;
@ -195,8 +193,8 @@ if Obj is TSpkBaseItem then
CheckActionsAvailability; CheckActionsAvailability;
end else end else
raise exception.create('TfrmEditWindow.aAddPaneExecute: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!'); raise exception.create('TfrmEditWindow.aAddPaneExecute: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!');
Hook.PersistentAdded(Pane,True); FDesigner.PropertyEditorHook.PersistentAdded(Pane,True);
FEditor.Modified; FDesigner.Modified;
end; end;
procedure TfrmEditWindow.aAddSmallButtonExecute(Sender: TObject); procedure TfrmEditWindow.aAddSmallButtonExecute(Sender: TObject);
@ -223,18 +221,17 @@ procedure TfrmEditWindow.aAddTabExecute(Sender: TObject);
var Node : TTreeNode; var Node : TTreeNode;
Tab : TSpkTab; Tab : TSpkTab;
Hook: TPropertyEditorHook;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if not FEditor.GetHook(Hook) then if FDesigner.PropertyEditorHook = nil then
Exit; Exit;
Tab:=TSpkTab.Create(FToolbar.Owner); Tab:=TSpkTab.Create(FToolbar.Owner);
Tab.Parent:=FToolbar; Tab.Parent:=FToolbar;
FToolbar.Tabs.AddItem(Tab); FToolbar.Tabs.AddItem(Tab);
Tab.Name:=FEditor.Designer.CreateUniqueComponentName(Tab.ClassName); Tab.Name:=FDesigner.CreateUniqueComponentName(Tab.ClassName);
Node:=tvStructure.Items.AddChild(nil, Tab.Caption); Node:=tvStructure.Items.AddChild(nil, Tab.Caption);
Node.Data:=Tab; Node.Data:=Tab;
Node.ImageIndex:=0; Node.ImageIndex:=0;
@ -242,8 +239,8 @@ Node.SelectedIndex:=0;
Node.Selected:=true; Node.Selected:=true;
CheckActionsAvailability; CheckActionsAvailability;
Hook.PersistentAdded(Tab,True); FDesigner.PropertyEditorHook.PersistentAdded(Tab,True);
FEditor.Modified; FDesigner.Modified;
end; end;
procedure TfrmEditWindow.AddItem(ItemClass: TSpkBaseItemClass); procedure TfrmEditWindow.AddItem(ItemClass: TSpkBaseItemClass);
@ -254,11 +251,10 @@ var Node : TTreeNode;
Item: TSpkBaseItem; Item: TSpkBaseItem;
NewNode: TTreeNode; NewNode: TTreeNode;
s: string; s: string;
Hook: TPropertyEditorHook;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
Exit; Exit;
if not FEditor.GetHook(Hook) then if FDesigner.PropertyEditorHook = nil then
Exit; Exit;
Node:=tvStructure.Selected; Node:=tvStructure.Selected;
@ -274,7 +270,7 @@ if Obj is TSpkPane then
Item:=ItemClass.Create(FToolbar.Owner); Item:=ItemClass.Create(FToolbar.Owner);
Item.Parent:=FToolbar; Item.Parent:=FToolbar;
Pane.Items.AddItem(Item); Pane.Items.AddItem(Item);
Item.Name:=FEditor.Designer.CreateUniqueComponentName(Item.ClassName); Item.Name:=FDesigner.CreateUniqueComponentName(Item.ClassName);
s:=GetItemCaption(Item); s:=GetItemCaption(Item);
NewNode:=tvStructure.Items.AddChild(Node, s); NewNode:=tvStructure.Items.AddChild(Node, s);
NewNode.Data:=Item; NewNode.Data:=Item;
@ -292,7 +288,7 @@ if Obj is TSpkBaseItem then
Item:=ItemClass.Create(FToolbar.Owner); Item:=ItemClass.Create(FToolbar.Owner);
Item.Parent:=FToolbar; Item.Parent:=FToolbar;
Pane.Items.AddItem(Item); Pane.Items.AddItem(Item);
Item.Name:=FEditor.Designer.CreateUniqueComponentName(Item.ClassName); Item.Name:=FDesigner.CreateUniqueComponentName(Item.ClassName);
s:=GetItemCaption(Item); s:=GetItemCaption(Item);
NewNode:=tvStructure.Items.AddChild(Node.Parent, s); NewNode:=tvStructure.Items.AddChild(Node.Parent, s);
NewNode.Data:=Item; NewNode.Data:=Item;
@ -302,8 +298,8 @@ if Obj is TSpkBaseItem then
CheckActionsAvailability; CheckActionsAvailability;
end else end else
raise exception.create('TfrmEditWindow.AddItem: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!'); raise exception.create('TfrmEditWindow.AddItem: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!');
Hook.PersistentAdded(Item,True); FDesigner.PropertyEditorHook.PersistentAdded(Item,True);
FEditor.Modified; FDesigner.Modified;
end; end;
procedure TfrmEditWindow.aMoveDownExecute(Sender: TObject); procedure TfrmEditWindow.aMoveDownExecute(Sender: TObject);
@ -316,7 +312,7 @@ var Node : TTreeNode;
Item: TSpkBaseItem; Item: TSpkBaseItem;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
Node:=tvStructure.Selected; Node:=tvStructure.Selected;
@ -399,7 +395,7 @@ var Node : TTreeNode;
Item: TSpkBaseItem; Item: TSpkBaseItem;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
Node:=tvStructure.Selected; Node:=tvStructure.Selected;
@ -475,7 +471,7 @@ end;
procedure TfrmEditWindow.aRemoveItemExecute(Sender: TObject); procedure TfrmEditWindow.aRemoveItemExecute(Sender: TObject);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
DoRemoveItem; DoRemoveItem;
@ -484,7 +480,7 @@ end;
procedure TfrmEditWindow.aRemovePaneExecute(Sender: TObject); procedure TfrmEditWindow.aRemovePaneExecute(Sender: TObject);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
DoRemovePane; DoRemovePane;
@ -493,7 +489,7 @@ end;
procedure TfrmEditWindow.aRemoveTabExecute(Sender: TObject); procedure TfrmEditWindow.aRemoveTabExecute(Sender: TObject);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
DoRemoveTab; DoRemoveTab;
@ -509,7 +505,7 @@ var Node : TTreeNode;
Item: TSpkBaseItem; Item: TSpkBaseItem;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
begin begin
// Brak toolbara lub designera // Brak toolbara lub designera
@ -637,7 +633,7 @@ end;
function TfrmEditWindow.CheckValidItemNode(Node: TTreeNode): boolean; function TfrmEditWindow.CheckValidItemNode(Node: TTreeNode): boolean;
begin begin
result:=false; result:=false;
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
{$B-} {$B-}
@ -650,7 +646,7 @@ end;
function TfrmEditWindow.CheckValidPaneNode(Node: TTreeNode): boolean; function TfrmEditWindow.CheckValidPaneNode(Node: TTreeNode): boolean;
begin begin
result:=false; result:=false;
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
{$B-} {$B-}
@ -663,7 +659,7 @@ end;
function TfrmEditWindow.CheckValidTabNode(Node: TTreeNode): boolean; function TfrmEditWindow.CheckValidTabNode(Node: TTreeNode): boolean;
begin begin
result:=false; result:=false;
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
{$B-} {$B-}
@ -674,19 +670,13 @@ end;
procedure TfrmEditWindow.FormActivate(Sender: TObject); procedure TfrmEditWindow.FormActivate(Sender: TObject);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if not(ValidateTreeData) then if not(ValidateTreeData) then
BuildTreeData; BuildTreeData;
end; end;
procedure TfrmEditWindow.FormCreate(Sender: TObject);
begin
FToolbar:=nil;
FEditor:=nil;
end;
procedure TfrmEditWindow.FormDestroy(Sender: TObject); procedure TfrmEditWindow.FormDestroy(Sender: TObject);
begin begin
if FToolbar<>nil then if FToolbar<>nil then
@ -695,7 +685,7 @@ end;
procedure TfrmEditWindow.FormShow(Sender: TObject); procedure TfrmEditWindow.FormShow(Sender: TObject);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
BuildTreeData; BuildTreeData;
@ -703,7 +693,7 @@ end;
function TfrmEditWindow.GetItemCaption(Item: TSpkBaseItem): string; function TfrmEditWindow.GetItemCaption(Item: TSpkBaseItem): string;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if Item is TSpkBaseButton then if Item is TSpkBaseButton then
@ -731,21 +721,21 @@ end;
procedure TfrmEditWindow.SetItemCaption(Item: TSpkBaseItem; const Value : string); procedure TfrmEditWindow.SetItemCaption(Item: TSpkBaseItem; const Value : string);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if Item is TSpkBaseButton then if Item is TSpkBaseButton then
TSpkBaseButton(Item).Caption:=Value; TSpkBaseButton(Item).Caption:=Value;
end; end;
procedure TfrmEditWindow.SetData(AToolbar: TSpkToolbar; AEditor: TComponentEditor); procedure TfrmEditWindow.SetData(AToolbar: TSpkToolbar; ADesigner: TComponentEditorDesigner);
begin begin
if FToolbar<>nil then if FToolbar<>nil then
FToolbar.RemoveFreeNotification(self); FToolbar.RemoveFreeNotification(self);
FToolbar:=AToolbar; FToolbar:=AToolbar;
FEditor:=AEditor; FDesigner:=ADesigner;
if FToolbar<>nil then if FToolbar<>nil then
FToolbar.FreeNotification(self); FToolbar.FreeNotification(self);
@ -761,7 +751,7 @@ var
Pane: TSpkPane; Pane: TSpkPane;
NextNode: TTreeNode; NextNode: TTreeNode;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
Node := tvStructure.Selected; Node := tvStructure.Selected;
@ -792,7 +782,7 @@ var
Node: TTreeNode; Node: TTreeNode;
Tab: TSpkTab; Tab: TSpkTab;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
Node := tvStructure.Selected; Node := tvStructure.Selected;
@ -823,7 +813,7 @@ var
NextNode: TTreeNode; NextNode: TTreeNode;
//DesignObj: IDesignObject; //DesignObj: IDesignObject;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
Node := tvStructure.Selected; Node := tvStructure.Selected;
@ -855,7 +845,7 @@ if (FToolbar=nil) or (FEditor=nil) then
// wypadku IDE bêdzie próbowa³o wyœwietliæ w Object Inspectorze w³aœciwoœci // wypadku IDE bêdzie próbowa³o wyœwietliæ w Object Inspectorze w³aœciwoœci
// w³aœnie zwolnionego obiektu, co skoñczy siê, powiedzmy, niezbyt mi³o) // w³aœnie zwolnionego obiektu, co skoñczy siê, powiedzmy, niezbyt mi³o)
//DesignObj := PersistentToDesignObject(FToolbar); //DesignObj := PersistentToDesignObject(FToolbar);
FEditor.Designer.SelectOnlyThisComponent(FToolbar); FDesigner.SelectOnlyThisComponent(FToolbar);
CheckActionsAvailability; CheckActionsAvailability;
end; end;
end; end;
@ -879,7 +869,7 @@ begin
tvStructure.Items.Clear; tvStructure.Items.Clear;
tvStructure.OnDeletion := tvStructureDeletion; tvStructure.OnDeletion := tvStructureDeletion;
if (FToolbar<>nil) and (FEditor<>nil) then if (FToolbar<>nil) and (FDesigner<>nil) then
begin begin
if FToolbar.Tabs.Count > 0 then if FToolbar.Tabs.Count > 0 then
for i := 0 to FToolbar.Tabs.Count - 1 do for i := 0 to FToolbar.Tabs.Count - 1 do
@ -932,7 +922,7 @@ var tabnode, panenode, itemnode : TTreeNode;
s: string; s: string;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
tabnode:=tvStructure.Items.GetFirstNode; tabnode:=tvStructure.Items.GetFirstNode;
@ -982,7 +972,7 @@ var Obj : TObject;
index : integer; index : integer;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if assigned(Node) then if assigned(Node) then
@ -994,10 +984,8 @@ if assigned(Node) then
if Obj is TSpkTab then if Obj is TSpkTab then
begin begin
Tab:=Obj as TSpkTab; Tab:=TSpkTab(Obj);
//DesignObj:=PersistentToDesignObject(Tab); FDesigner.SelectOnlyThisComponent(Tab);
FEditor.Designer.SelectOnlyThisComponent(Tab);
index:=FToolbar.Tabs.IndexOf(Tab); index:=FToolbar.Tabs.IndexOf(Tab);
if index=-1 then if index=-1 then
raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!'); raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!');
@ -1005,9 +993,8 @@ if assigned(Node) then
end else end else
if Obj is TSpkPane then if Obj is TSpkPane then
begin begin
Pane:=Obj as TSpkPane; Pane:=TSpkPane(Obj);
//DesignObj:=PersistentToDesignObject(Pane); FDesigner.SelectOnlyThisComponent(Pane);
FEditor.Designer.SelectOnlyThisComponent(Pane);
if not(CheckValidPaneNode(Node)) then if not(CheckValidPaneNode(Node)) then
raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!'); raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!');
@ -1021,9 +1008,8 @@ if assigned(Node) then
end else end else
if Obj is TSpkBaseItem then if Obj is TSpkBaseItem then
begin begin
Item:=Obj as TSpkBaseItem; Item:=TSpkBaseItem(Obj);
//DesignObj:=PersistentToDesignObject(Item); FDesigner.SelectOnlyThisComponent(Item);
FEditor.Designer.SelectOnlyThisComponent(Item);
if not(CheckValidItemNode(Node)) then if not(CheckValidItemNode(Node)) then
raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!'); raise exception.create('TfrmEditWindow.tvStructureChange: Uszkodzona struktura drzewa!');
@ -1038,8 +1024,7 @@ if assigned(Node) then
raise exception.create('TfrmEditWindow.tvStructureChange: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!'); raise exception.create('TfrmEditWindow.tvStructureChange: Nieprawid³owy obiekt podwieszony pod ga³êzi¹!');
end else end else
begin begin
//DesignObj:=PersistentToDesignObject(FToolbar); FDesigner.SelectOnlyThisComponent(FToolbar);
FEditor.Designer.SelectOnlyThisComponent(FToolbar);
end; end;
CheckActionsAvailability; CheckActionsAvailability;
@ -1071,7 +1056,7 @@ var
Item: TSpkBaseItem; Item: TSpkBaseItem;
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if Node.Data = nil then if Node.Data = nil then
@ -1079,24 +1064,24 @@ if Node.Data = nil then
if TObject(Node.Data) is TSpkTab then if TObject(Node.Data) is TSpkTab then
begin begin
Tab:=TObject(Node.Data) as TSpkTab; Tab:=TSpkTab(Node.Data);
Tab.Caption:=S; Tab.Caption:=S;
FEditor.Modified; FDesigner.Modified;
end else end else
if TObject(Node.Data) is TSpkPane then if TObject(Node.Data) is TSpkPane then
begin begin
Pane:=TObject(Node.Data) as TSpkPane; Pane:=TSpkPane(Node.Data);
Pane.Caption:=S; Pane.Caption:=S;
FEditor.Modified; FDesigner.Modified;
end else end else
if TObject(Node.Data) is TSpkBaseItem then if TObject(Node.Data) is TSpkBaseItem then
begin begin
Item:=TObject(Node.Data) as TSpkBaseItem; Item:=TSpkBaseItem(Node.Data);
SetItemCaption(Item, S); SetItemCaption(Item, S);
FEditor.Modified; FDesigner.Modified;
end else end else
raise exception.create('TfrmEditWindow.tvStructureEdited: Uszkodzona struktura drzewa!'); raise exception.create('TfrmEditWindow.tvStructureEdited: Uszkodzona struktura drzewa!');
end; end;
@ -1104,7 +1089,7 @@ end;
procedure TfrmEditWindow.tvStructureKeyDown(Sender: TObject; var Key: Word; procedure TfrmEditWindow.tvStructureKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); Shift: TShiftState);
begin begin
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
if Key = VK_DELETE then if Key = VK_DELETE then
@ -1145,7 +1130,7 @@ var
begin begin
result:=false; result:=false;
if (FToolbar=nil) or (FEditor=nil) then if (FToolbar=nil) or (FDesigner=nil) then
exit; exit;
i:=0; i:=0;