@DGL-luke,
dein Plan mit dem Verschwindenlassen der WM_RButtonDown-Message funktioniert. Allerdings solltes du das inherited in deinem Code erst nach dem Nullen der Message ausführen. Hab's mal schnell gecheckt, da's mich auch interessierte ...und der Einfachheit gleich die WndProc des ListView-Controls selbst überschrieben:
Delphi-Quellcode:
...
private
oldLVWindowProc : TWndMethod;
procedure LVWndProc(var Msg:TMessage); //hier implenmentation
...
Delphi-Quellcode:
procedure TForm1.LVWndProc(var Msg:TMessage); //hier implenmentation
begin
if ( msg.msg = WM_RBUTTONDOWN ) then
begin
msg.msg := wm_null;
end;
oldLVWindowProc(Msg);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
oldLVWindowProc := ListView1.WindowProc;
ListView1.WindowProc := LVWndProc;
end;