Bart schrieb:
A TBitBtn with Kind = bkClose will not set ModalResult of the ParentForm.
As a result ShowModal on a form with such a TBitBtn will return
mrCancel if this button is clicked, and not mrClose.

Only few button kinds have a defined ModalResult. It seems to be up to the developer to select the proper Kind, depending on the use in a modal or non-modal form.

This is the piece of code that is responsable for this behaviour:

in lcl/include/bitbtn.inc

procedure TCustomBitBtn.Click;
var
  Form : TCustomForm;
begin
  if FKind = bkClose then begin
    Form := GetParentForm(Self);
    if Form <> nil then begin
      Form.Close;
      exit;
    end;
  end;
  inherited Click;
end;

I'd suggest that an explicitly set ModalResult should be checked, before actions are invoked that are incompatible with modal forms. But Delphi also checks Kind *before* ModalResult, so this is a compatibility issue.

DoDi


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to