unit MyDialog; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TMyDialog = class(TComponent) private protected public function Execute: Boolean; published end; TMyDlgForm = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; private public end; procedure Register; var MyDlgForm: TMyDlgForm; implementation {$R *.DFM} procedure Register; begin RegisterComponents('Samples', [TMyDialog]); end; function TMyDialog.Execute: Boolean; begin MyDlgForm := TMyDlgForm.Create(Owner); try case MyDlgForm.ShowModal of mrOk: Result := true; else Result := false; end; finally MyDlgForm.Free; end; end; end.