Fix crash in checklist cell editor, eg used for column selection in foreign key list. Closes #473.

This commit is contained in:
Ansgar Becker
2019-01-13 13:54:28 +01:00
parent 8d27e1d4ec
commit fe3660b274

View File

@ -118,6 +118,9 @@ type
FPanel: TPanel;
FCheckList: TCheckListBox;
FBtnOK, FBtnCancel: TButton;
FEndTimer: TTimer;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
public
ValueList: TStringList;
constructor Create(Tree: TVirtualStringTree); override;
@ -947,12 +950,16 @@ begin
FBtnOk := TButton.Create(FPanel);
FBtnOk.Parent := FPanel;
FBtnOk.Caption := _('OK');
FBtnOk.OnClick := DoEndEdit;
FBtnOk.OnClick := BtnOkClick;
FBtnCancel := TButton.Create(FPanel);
FBtnCancel.Parent := FPanel;
FBtnCancel.Caption := _('Cancel');
FBtnCancel.OnClick := DoCancelEdit;
FBtnCancel.OnClick := BtnCancelClick;
FEndTimer := TTimer.Create(FPanel);
FEndTimer.Interval := 50;
FEndTimer.Enabled := False;
end;
@ -1037,6 +1044,22 @@ begin
end;
procedure TSetEditorLink.BtnOkClick(Sender: TObject);
begin
// Timer based click on OK button, to prevent crash when theming is active
FEndTimer.OnTimer := DoEndEdit;
FEndTimer.Enabled := True;
end;
procedure TSetEditorLink.BtnCancelClick(Sender: TObject);
begin
// Timer based click on Cancel button, to prevent crash when theming is active
FEndTimer.OnTimer := DoCancelEdit;
FEndTimer.Enabled := True;
end;
{ TInplaceEditorLink }