Avoid AVs when index lists are in editing mode and user clicks "Remove" or "Clear" button. Fixes issue #1733.

This commit is contained in:
Ansgar Becker
2010-03-02 23:23:02 +00:00
parent c426bc5e16
commit bc487d089c

View File

@ -1381,6 +1381,8 @@ var
NewSelectNode: PVirtualNode; NewSelectNode: PVirtualNode;
begin begin
// Remove index or part // Remove index or part
if treeIndexes.IsEditing then
treeIndexes.CancelEditNode;
case treeIndexes.GetNodeLevel(treeIndexes.FocusedNode) of case treeIndexes.GetNodeLevel(treeIndexes.FocusedNode) of
0: begin 0: begin
idx := treeIndexes.FocusedNode.Index; idx := treeIndexes.FocusedNode.Index;
@ -1952,6 +1954,8 @@ var
Key: TForeignKey; Key: TForeignKey;
begin begin
// Remove a foreign key // Remove a foreign key
if listForeignKeys.IsEditing then
listForeignKeys.CancelEditNode;
Key := FForeignKeys[listForeignKeys.FocusedNode.Index]; Key := FForeignKeys[listForeignKeys.FocusedNode.Index];
if not Key.Added then if not Key.Added then
DeletedForeignKeys.Add(Key.KeyName); DeletedForeignKeys.Add(Key.KeyName);
@ -1966,6 +1970,8 @@ var
i: Integer; i: Integer;
begin begin
// Clear all foreign keys // Clear all foreign keys
if listForeignKeys.IsEditing then
listForeignKeys.CancelEditNode;
for i:=FForeignKeys.Count-1 downto 0 do begin for i:=FForeignKeys.Count-1 downto 0 do begin
if not FForeignKeys[i].Added then if not FForeignKeys[i].Added then
DeletedForeignKeys.Add(FForeignKeys[i].KeyName); DeletedForeignKeys.Add(FForeignKeys[i].KeyName);