diff --git "a/idesearchpanel.pas" "b/idesearchpanel.pas" index 6dd7f6c..4aaab0d 100644 --- "a/idesearchpanel.pas" +++ "b/idesearchpanel.pas" @@ -558,7 +558,8 @@ begin {$IFDEF DebugSayt} DebugSayt('Destroy', Cmd.Checked.ToString(True)); {$ENDIF} - DoChangePanelVisibility(not Cmd.Checked); + if Cmd <> nil then + DoChangePanelVisibility(not Cmd.Checked); end; function TIDESearchPanel.OnProjectOpen(Sender: TObject; @@ -834,7 +835,8 @@ end; procedure TIDESearchPanel.UpdateDockState(var astate: TSearchState; wnd: TWinControl); begin {$IFDEF DebugSayt} DebugSayt('UpdateDockState', ''); {$ENDIF} - Astate.InitiallyVisible := fPanel.Visible; + if fPanel <> nil then + Astate.InitiallyVisible := fPanel.Visible; end; procedure TIDESearchPanel.LoadState(cfg: TXMLConfig; const StateName: string); @@ -915,6 +917,7 @@ begin ASearchPanel := TIDESearchPanel.Create; cmd := RegisterIDEMenuCommand(itmSearchFindReplace, 'showSearchPanel', mnuShowPanel, @ASearchPanel.OnCmdClick, nil, nil, ''); + ASearchPanel.LoadStates; LazarusIDE.AddHandlerOnProjectOpened(@ASearchPanel.OnProjectOpen, False); LazarusIDE.GetMainBar.OnWindowStateChange := @ASearchPanel.MainWindowStateChange; end;