Seite 1 von 2

Wie bekomme ich herraus ob die maus auf ein gadget klickt

Verfasst: 31.07.2007 16:28
von Benni125
Naja... das es Gadgets gibt, die sowas unterstützen via eventtype() weiß ich ja... aber was is bei gadgets wie Webgadget....? Da geht sowas nämlich nicht... aber wie bekomme ich herraus ob nun die Maus darauf geklickt hat? Ich brauche dringend und schnell Hilfe!

Verfasst: 31.07.2007 16:40
von edel
Nen einfachen Klick kannst du ueber subclassing abfangen, aber
vielleicht schreibst du was du genau machen moechtest
(auf 'nen link klicken ?), damit man eine entsprechende Lösungsweg
posten kann.

Verfasst: 31.07.2007 16:47
von milan1612
Hier ein Beispiel wie man auch auf ein ImageGadget klicken kann:

Code: Alles auswählen

OpenWindow(0, 0, 0, 240, 80, "Image Click", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) : CreateGadgetList(WindowID(0))
If CreateImage(0, 200, 50)
  If StartDrawing(ImageOutput(0))
    Box(0, 0, 200, 50, RGB(255,0,0))
    StopDrawing()
  EndIf
  ImageGadget(1, 20, 20, 200, 50, ImageID(0), #SS_NOTIFY) ;<- Dieses Flag muss gesetzt werden
EndIf

Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget And EventType() = #PB_EventType_LeftClick
    If EventGadget() = 1 : Debug "ImageGadget Click" : EndIf
  EndIf
Until Event = #PB_Event_CloseWindow

Verfasst: 31.07.2007 16:51
von Benni125
Nunja ich bin dabei eine Surfbar zubasteln... Und um Leuten die halt auf einen Bannerklicken eine extra Vergütung zukommen zulassen muss ich halt erstmal wissen ob sie drauf geklickt haben... Das Banner wird in einen Webgadget (was auch sonst) angezeigt...

Verfasst: 31.07.2007 16:53
von milan1612
Das würd ich nicht mit nem WebGadget lösen (viel zu langsam).
Nimm ein ImageGadget, ist schneller und flexibler...

Verfasst: 31.07.2007 19:10
von Benni125
Naja aber das Webgadget wird ja auch über das Internet von meinen Server aus aktualisiert und das würde riesige umstände machen das ganze über ein Imagegadget zu realisieren...

Verfasst: 31.07.2007 19:57
von edel
gibt da sicherlich noch elegantere Moeglichkeiten, die mir
aber nicht einfallen wollen ;)

Code: Alles auswählen

Procedure NavigationCallback(Gadget, Url$)
   
   If Left(Url$,27) = "http://www.google.de/search"
      MessageRequester("","Die Suche steht dir nicht zur Verfuegung !") 
      ProcedureReturn #False
   EndIf
   
   ProcedureReturn #True
EndProcedure


hWnd = OpenWindow(0,#PB_Ignore,#PB_Ignore,640,480,"leer",#WS_OVERLAPPEDWINDOW)


CreateGadgetList(hWnd)
WebGadget(0,0,0,640,480,"google.de")
SetGadgetAttribute(0,#PB_Web_NavigationCallback,@NavigationCallback())

Repeat
	event = WaitWindowEvent()

Until event = #PB_Event_CloseWindow

Verfasst: 31.07.2007 21:03
von Benni125
der compiler sagt aber "Constant not found: #Pb_Web_Navigationcallback"
:freak:

Verfasst: 31.07.2007 21:22
von ts-soft
Benni125 hat geschrieben:der compiler sagt aber "Constant not found: #Pb_Web_Navigationcallback"
:freak:
Wird der Compiler wohl recht haben und Du nutzt die aktuelle Beta nicht :mrgreen:

Verfasst: 31.07.2007 22:29
von Benni125
jupp kann sein
Ich kann aber nicht updaten da ich keine update version hab