>>959 こんなふうにして下さい
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type TForm1 = class(TForm)
  Button1: TButton;
  procedure Button1Click(Sender: TObject);
  procedure FormCreate(Sender: TObject);
 private
  procedure NewButtonProc(var Msg: TMessage);
 public
  OldButtonProc:TWndMethod;
 end;

var Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.NewButtonProc( var Msg: TMessage);
begin
 with Msg do
  case Msg of
  WM_RBUTTONDOWN: Msg := WM_LBUTTONDOWN;
  WM_RBUTTONUP:  Msg := WM_LBUTTONUP;
  end;
  OldButtonProc(Msg);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin   ShowMessage( 'こんにちは' );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OldButtonProc:= Button1.WindowProc;
  Button1.WindowProc:= NewButtonProc;
end;

end.