PopumMenu w WebBrowser...

0

Witam !

Mam problem z komponentem WebBrowser (tzn importowaną kontrolką ActiveX).
Gdy w inspektorze obiektów ustawię wartość PopupMenu np. na PopupMenu1, to zawartość tego popup'a wyświetlana jest do czasu załadowania jakiejś strony do WebBrowsera (potem jest już standardowe menu explorera).
Co mam zrobić, aby zawartość PopupMenu1 wyświetlana była przez cały czas ???

Pozdrawiam wszystkich...

0

na torry.net w dziale tips/internet masz kod blokujący menu explorera

0

OK, działa, dzięki

0

tez mam taki problem, wykorzystalem kod z tamtej strony i teraz zadne menu mi sie nie pojawia jak klikne prawym przyciskiem ..

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1