Seite 1 von 2

ImageGadget mit ScrollBar, geht das ?

Verfasst: 16.11.2005 00:45
von Thatsanee
Hallo zusammen,

Wie der Titel schon sagt,
ImageGadget mit ScrollBar, geht das ?

Oder gibt es eine elegantere Möglichkeit ein großes Bild
einzublenden und auch hin und her zu scrollen ?

Thatsanee

Verfasst: 16.11.2005 00:47
von Andre
ImageGadget() im ScrollAreaGadget() anzeigen.
Das sollte einfaches + automatisches Scrollen ermöglichen - unter Berücksichtigung der eingestellten Größe für den Scroll-Bereich ("ScrollArea").

Verfasst: 16.11.2005 02:05
von Thatsanee
Andre hat geschrieben:ImageGadget() im ScrollAreaGadget() anzeigen.
Das sollte einfaches + automatisches Scrollen ermöglichen - unter Berücksichtigung der eingestellten Größe für den Scroll-Bereich ("ScrollArea").
Hallo Andre,
warum sollte .....
klappt wunderbar, danke.

Muß wohl doch mal langsam die komplette Hilfe einmal durchlesen,
dann würde sich die eine oder andere Fragen wohl von selbst klären.

Thatsanee

Verfasst: 16.11.2005 02:15
von ts-soft
Schade, hab gerade ein ImageScrollGadget für Dich entwickelt, aber vielleicht braucht es ja jemand anders!

Code: Alles auswählen

Procedure ImageScrollGadget( Gadget, x, y, Breite, Hoehe, ImageID )
  Protected ID.l
  If ScrollAreaGadget( #PB_Any, x, y, Breite, Hoehe, ImageWidth(), ImageHeight() , 30 )
    ID = ImageGadget( Gadget, x, y, ImageWidth(), ImageHeight(), ImageID )
    CloseGadgetList()
    ProcedureReturn ID
  EndIf
  ProcedureReturn #False 
EndProcedure

If OpenWindow( 0, 0, 0, 640, 480, #PB_Window_ScreenCentered | #PB_Window_SystemMenu , "ImageScrollGadget Test" )
  CreateGadgetList(WindowID(0))
  ImageScrollGadget( 0, 0, 0, 640, 480, LoadImage(0, "E:\Eigene Dateien\Eigene Bilder\Man Women.bmp"))
  Repeat : Event = WaitWindowEvent() : Until Event = #PB_Event_CloseWindow
EndIf
Viel Spaß damit :wink:

Verfasst: 16.11.2005 19:50
von Tafkadasom2k5
Was ist denn bitte
"Man Women.jpg"?
Was hast du bitte auf deinem Rechner TS-Soft?

*Shocked*

Gr33tz
Der Marc :? :mrgreen:

Verfasst: 16.11.2005 23:07
von ts-soft
Tafkadasom2k5 hat geschrieben:Was ist denn bitte
"Man Women.jpg"?
Was hast du bitte auf deinem Rechner TS-Soft?

*Shocked*

Gr33tz
Der Marc :? :mrgreen:
In dem Source steht Man Woman.bmp !!!
Hier mal die jpg-Version :mrgreen:
Bild
- ohne Worte -

Verfasst: 17.11.2005 03:15
von Donald
:lol: :allright:

Verfasst: 04.12.2005 17:11
von sharkpeter
@ts,

ja so einfach funktionieren Männer :lol:

Aber hier gleich mal eine Frage, die wohl zum Thema paßt:

Wenn ich ein ImageGadget auf einem ScrollArea habe, geht das Scrollrad nicht,
d.h. das Rad schon, aber es scrollt nicht. Sind nur Text oder auch ein ListView
oder ListIcon im ScrollArea enthalten, geht es sehr wohl.

Gruß Jens

scrollrad

Verfasst: 04.12.2005 20:41
von roherter
Ich habe das so gelöst.

Code: Alles auswählen

Procedure WindowCallback(WindowID,Message,wParam,lParam)
  ReturnValue=#PB_ProcessPureBasicEvents
 If Message=#wm_mousewheel
    #sb_lineup = $0 
    #SB_LINEDOWN = $1 
    #wm_vscroll = $115 
    wert=wParam/65000
    If wert=120
      SendMessage_(GadgetID(#scroll_button),#wm_vscroll,#sb_lineup,0)
      SendMessage_(GadgetID(#scroll_button),#wm_vscroll,#sb_lineup,0)
    EndIf 
    If wert=-120
      SendMessage_(GadgetID(#scroll_button),#wm_vscroll,#SB_LINEDOWN,0)
      SendMessage_(GadgetID(#scroll_button),#wm_vscroll,#SB_LINEDOWN,0)
    EndIf 
    EndIf

  ProcedureReturn ReturnValue
EndProcedure
Ist noch verbesserungsfähig.-.Ich weiß.

Verfasst: 05.12.2005 09:03
von roherter
In wie weit gescrollt werden soll das könte mann über eine forschleife lösen da es ja nicht immer ein scrollschritt ist beim einem schritt hat er entweder 120 oder -120 jenachdem in welche richtung es kann aber auch schon mal das 3 fache sein wenn man das rad schneller bewegt dann einfache diesen wert durch 120 teilen dann hat man die scrollweite, die baust du dan über ne forschleife ein! Ich hoffe du weißt was ich meine?