Seite 2 von 2

Verfasst: 22.05.2008 14:00
von Blu-Ray
OK. Ich glaube, dass lasse ich lieber ;-)

Aber nochmals vielen Dank für die Antworten!

Verfasst: 22.05.2008 19:10
von FGK
@ Blu-Ray

Ich hab dir mal ein lauffähiges Beispiel gemacht.
Inklusive ner Routine die das Tab und Del im Browser managt.
Ich denke damit kommst du dann schon klar.

Code: Alles auswählen

#WebGadget = 1

Procedure Webgadget_PostMessage(Gadget.l,wParam,lParam)
  Static FirstCall.l
  If IsGadget(Gadget) And GadgetType(Gadget)=#PB_GadgetType_Web
    If FirstCall = 0
      CoInitialize_(0) 
      CoCreateInstance_(?CLSID_IOleInPlaceActiveObject, 0, 1, ?IID_IOleInPlaceActiveObject,@OleObject.IOleInPlaceActiveObject) 
      FirstCall = 1
    EndIf 
    WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(Gadget), #GWL_USERDATA) 
    WebObject\QueryInterface(?IID_IOleInPlaceActiveObject, @OleObject.IOleInPlaceActiveObject) 
    web.MSG\message = #WM_KEYDOWN 
    web\wParam = wParam 
    web\lParam = lParam 
    OleObject\TranslateAccelerator(@web) 
    OleObject\Release() 
  EndIf
EndProcedure

If OpenWindow(0,10,10,820,620,"Webbrowser")
  If CreateGadgetList(WindowID(0))
    WebGadget(#WebGadget,10,10,800,600,"www.google.de")
  EndIf

  Repeat 
    EventID.l = WaitWindowEvent() 
    EventType.l = EventType()
    EventGadget.l = EventGadget()
    Select EventID
      Case #WM_KEYDOWN 
        If EventGadget = #WebGadget
          If EventwParam() = #VK_TAB Or EventwParam() = #VK_DELETE 
            Webgadget_PostMessage(#WebGadget,EventwParam(),EventlParam())
          EndIf 
        EndIf
    EndSelect    
  Until EventID=#PB_Event_CloseWindow 
EndIf
CoUninitialize_() 
End

DataSection
  IID_IOleInPlaceActiveObject: ; {00000117-0000-0000-C000-000000000046} 
    Data.l $00000117 
    Data.w $0000, $0000 
    Data.b $C0, $00, $00, $00, $00, $00, $00, $46 
  CLSID_IOleInPlaceActiveObject: ; {00000320-0000-0000-C000-000000000046} 
    Data.l $00000320 
    Data.w $0000, $0000 
    Data.b $C0, $00, $00, $00, $00, $00, $00, $46   
EndDataSection
Gruß FGK

Verfasst: 26.05.2008 00:43
von Blu-Ray
Vielen Dank, ich versuche mal, das einzubauen

Verfasst: 26.01.2009 17:20
von dige
FGK hat geschrieben:

Code: Alles auswählen

Procedure   NoScriptingErrors(Gadget.l)
  If IsGadget(Gadget)  And GadgetType(Gadget) = #PB_GadgetType_Web
    Browser.IWebBrowser2 = GetWindowLong_(GadgetID(Gadget), #GWL_USERDATA) 
    If Browser
      Browser\put_Silent(#True)
    EndIf
  EndIf
EndProcedure 
Mit put_Silent(#True) wird zwar das Nachfragefenster fürs Skriptdebugging unterdrückt, aber nun direkt der Debugger gestartet. Kann mann nicht auch
definieren, das Fehler generell unterdrückt werden?