Eh, trudno, poświęcę się i odpowiem. Na stonie torry.net jest błąd. Dochodziłem sam do tego żeby działało i wygląda to tak :
type
TPrivFrm = class(TForm)
PrvChatWebBrowser: TWebBrowser;
PopMenuPrvChatWebBrowser: TPopupMenu;
procedure MessageLoop(var Msg : TMsg ; var Handled : Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PrivFrm: TPrivFrm;
function Klasa(Handle : THandle) : string;
var str : array[0..MAX_PATH] of Char;
begin
GetClassName(Handle, str, MAX_PATH);
result := StrPas(str);
end;
procedure TPrivFrm.MessageLoop(var Msg: TMsg; var Handled: Boolean);
var
mouse:Tpoint;
begin
if (Klasa(msg.hwnd) = 'Internet Explorer_Server') then
begin
if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) or (Msg.Message = WM_CONTEXTMENU)
then begin
handled:=true;
getcursorpos(Mouse);
self.PopMenuPrvChatWebBrowser.Popup(Mouse.X, Mouse.Y);
end
else Handled := False; //not rbutton
end
else
Handled := false; //not webbrowser msg
end;
procedure TPrivFrm.FormActivate(Sender: TObject);
begin
Application.OnMessage := self.MessageLoop;
end;
PopMenuPrvChatWebBrowser <== popupmenu