anchor.diff:      ADate:= DateToStr(tmpDate);
     if Assigned(OnExtCustomDate) then
       OnExtCustomDate(Sender, ADate);
  +end;
  +
  +procedure TmDateEdit.ButtonClick;
  +{$IFDEF WINDOWS}
  +var
  +  dt : TDateTime;
  +  B: Boolean;
  +{$ENDIF}
  +begin
  +  {$IFDEF WINDOWS}
  +  dt := Self.Date;
  +  if TmCalendarDialog.ExecuteDialog(rsCalendarFormCaption, dt) then
  +  begin
  +    try
  +      B := True;
  +      if Assigned(OnAcceptDate) then
  +        OnAcceptDate(Self, dt, B);
  +      if B then
  +        Self.Date := dt;
  +    except
  +      on E:Exception do
  +        MessageDlg(E.Message, mtError, [mbOK], 0);
  +    end;
  +  end;
  +  {$ELSE}
  +  inherited;
  +  {$ENDIF}
   end;
   
   constructor TmDateEdit.Create(AOwner: TComponent);
  
positive.code: implementation
  
  uses
    SysUtils, LResources;
  
  { TmDateEdit }
  
  
negative.code:     procedure OnInternalCustomDate (Sender : TObject; var ADate : string);
    protected
      property OnCustomDate; // hide the original event
      procedure ButtonClick; override;
    public
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
  