Seite 1 von 1

Bild im Webgadget scrollt nicht richtig

Verfasst: 07.03.2009 10:20
von dysti
Hallo,
wenn man ein Bild stark vergrößert, erscheinen die Laufleisten des Webgadget.
Wenn ich die linke Maustaste drücke und die Maus z.B. am rechten Webgadgetrand bewege, dann scollt das Bild.
Leider nicht, wenn ich das selbe in der Mitte des Webgadget mache.
Geht das überhaupt nicht?

Code: Alles auswählen

StandardFile$ = ""
Pattern$ = "Bilder (*.jpg)|*.jpg|Alle Dateien (*.*)|*.*"
Pattern = 0
File$ = OpenFileRequester("Bitte Datei zum Laden auswählen", StandardFile$, Pattern$, Pattern)

If File$

path$=GetPathPart(File$)

NewList bilder.s()
Directory$ = Left(path$,Len(path$)-1)+"/"
  If ExamineDirectory(0, Directory$, "*.*") 
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      If UCase(GetExtensionPart(DirectoryEntryName(0))) = "JPG"
      AddElement(bilder())
      bilder() = DirectoryEntryName(0)
      EndIf
      EndIf
    Wend
    FinishDirectory(0)
  EndIf

If ListSize(bilder()) = 0
 MessageRequester("", "Keine darstellbaren Bilder gefunden. Programm wird beendet")
 End
EndIf 
SelectElement(bilder(), 0)
anzBild1$= bilder()
SelectElement(bilder(), 6)
anzBild2$= bilder()
bh=200

Gosub htmlseite

OpenWindow(0,10,10,600,600,"Bilder anzeigen",#PB_Window_WindowCentered|#PB_Window_SystemMenu)

WebGadget(1,100,50,400,400,"")
ButtonGadget(2,10,10,100,30,"Vergrößern")
ButtonGadget(3,130,10,100,30,"Verkleinern")
ButtonGadget(4,250,10,100,30,"vorheriges Bild")
ButtonGadget(5,370,10,100,30,"nächstes Bild")
ButtonGadget(6,490,10,100,30,"Verlassen")

SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)


Repeat
   
   Event = WaitWindowEvent() 
   WindowID = EventWindow() 
   GadgetID = EventGadget() 
   EventType = EventType() 
   
   Select event
   
   Case #PB_Event_Gadget
   
   If EventGadget() = 1 And EventType() =#PB_EventType_LeftClick
   
   SetGadgetAttribute(1,#PB_Web_ScrollX,WindowMouseX(0))
   SetGadgetAttribute(1,#PB_Web_ScrollY,WindowMouseY(0))
   
  EndIf

   If EventGadget() = 2
            
            bh=bh+50
            Gosub htmlseite
            SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)               
         EndIf
    If EventGadget() = 3
            
            bh=bh-50
            Gosub htmlseite
            SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)               
         EndIf
   
    If EventGadget() = 4
            anzBild1$= bilder()
            PreviousElement(bilder())
            anzBild2$= bilder()
            Gosub htmlseite
            SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)               
         EndIf
             
    If EventGadget() = 5
            anzBild1$= bilder()
            NextElement(bilder())
            anzBild2$= bilder()
            Gosub htmlseite
            SetGadgetItemText(1,#PB_Web_HtmlCode,bhtml$)               
         EndIf
       
    If EventGadget() = 6
         Event = #PB_Event_CloseWindow
         End
         EndIf
   
   EndSelect   
   
   Until Event = #PB_Event_CloseWindow
   Else
    MessageRequester("Information", "Sie müssen eine Datei auswählen!", 0)
  EndIf
  End
  
htmlseite:
bhtml$ = "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>"
bhtml$ + "<html><head><meta content='text/html; charset=ISO-8859-1' http-equiv='content-type'>"
bhtml$ + "<title>Bilder anzeigen</title></head><body>"
bhtml$ + "<img style='height: "+ Str(bh)+"px' alt='Bilder' title='Bild1' src='file://" + Directory$ + bilder() +"'>"                                                                               
bhtml$ + "</body></html>"
Return

Verfasst: 07.03.2009 12:37
von Andesdaf
erstens... mal bitte quote-Tags zu Code-Tags machen.

zweitens... wieso sollte das auch in der Mitte gehen? Wenn ich das Bild scrollen
will kann ich entweder die Scrollleisten bewegen oder am Rand die Maus bewegen.

Du willst sozusagen das Bild im Scroll "verschieben", egal an welcher Stelle
die Maus gerade ist?

Verfasst: 07.03.2009 15:31
von dysti
@Andesdaf schrieb:
Du willst sozusagen das Bild im Scroll "verschieben", egal an welcher Stelle
die Maus gerade ist?[/code]

Genau. Die gleiche Funktion, wenn du den Acrobat-Reader benutzt und das Document vergrößerst und die linke Maustaste drückst, dann scrollt das Document nach allen Seiten, jeweils in die Richtung der Bewegung der Maus.

Verfasst: 07.03.2009 18:08
von Andesdaf
aha. Noch ein Tipp: Bitte die Vorschaufunktion benutzen, um die Tag-fehler
zu beheben. Ich denke du meintest oben:

[dysti-modus] :wink:
Andesdaf hat geschrieben:Du willst sozusagen das Bild im Scroll "verschieben", egal an welcher Stelle
die Maus gerade ist?
Genau. Die gleiche Funktion, wenn du den Acrobat-Reader benutzt und das Document vergrößerst und die linke Maustaste drückst, dann scrollt das Document nach allen Seiten, jeweils in die Richtung der Bewegung der Maus.

[/dysti-modus]

Verfasst: 07.03.2009 18:34
von Kiffi
dysti hat geschrieben:Genau. Die gleiche Funktion, wenn du den Acrobat-Reader benutzt und das Document vergrößerst und die linke Maustaste drückst, dann scrollt das Document nach allen Seiten, jeweils in die Richtung der Bewegung der Maus.
Das liefert das Webgadget von Hause aus nicht (ist ja lediglich eine Instanz
des Internet Explorers und der kann das auch nicht).

Sowas muss man also Programmieren.

Nur ne Idee: Kann man mit der linker Maustaste die mittlere Maustaste
simulieren? Zumindest bei mir würde da der Modus aktiv, mit dem man
'mausscrollen' kann (siehe Screenshot; weiß nicht, wie das bei anderen
Mäusen ist)

Bild

Grüße ... Kiffi

Verfasst: 07.03.2009 18:38
von Andesdaf
bei meiner Maus geht das (Logitech, ganz neu :wink: ) auf dem Image.
Wäre eine Idee.

Verfasst: 07.03.2009 19:17
von dysti
Nun ja, nicht jeder hat eine drei Tastenmaus und mein Laptop! Der hat diese Funktion nicht.
Also muß man sich was anderes einfallen lassen.

Verfasst: 07.03.2009 19:22
von ts-soft
>> Also muß man sich was anderes einfallen lassen
ScrollAreaGadget!