It looks like the form only needs to be created and shown if the checkbox is true. So I would do this in the following way:
var
FormAQEOptions: TFormAQEOptions;
procedure TJPrincipal.CheckBoxAQEExtrachangeClick(Sender: TObject);
begin
If (CheckBoxAQEextra.Checked = True) then begin
if not Assigned(FormAQEOptions) then
FormAQEOptions := TFormAQEOptions.Create(self);
FormAQEOptions.Show;
end else begin
if Assigned(FormAQEOptions) then FormAQEOptions.Close;
end;
end;
Please check this code as I have no Lazarus at the moment to test it myself.
But it will give the general idea of how to do this.
Important is to put the var declaration out of the method for this to work correctly, because otherwise it will go out of scope when the procedure ends. This will make subsequent calls to this method fail.