ScrollBarEx - Module (all OS / DPI)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

ScrollBarEx - Module (all OS / DPI)

Beitrag von Thorsten1867 »

ScrollBarEx - Module (all OS / DPI / 64Bit)
  • Anpassen der Scrollbarlänge möglich, wenn der vertikale und horizontale Scrollbar gleichzeitig angezeigt werden
  • Unterstützung des Mausrades, wenn der Cursor über dem Scrollbar ist
  • Automatische Größenanpassung
  • Anpassung des Aussehens
  • Unterstützung abgerunderter Ecken
  • Volle Farbunterstützung
Bild

Code: Alles auswählen

; ScrollEx::Gadget()       - similar to ScrollBarGadget()
; ScrollEx::GetAttribute() - similar to GetGadgetAttribute()
; ScrollEx::GetData()      - similar to GetGadgetData()
; ScrollEx::GetID()        - similar to GetGadgetData(), but string instead of integer
; ScrollEx::GetState()     - similar to GetGadgetState()
; ScrollEx::Hide()         - similar to HideGadget()
; ScrollEx::SetAttribute() - similar to SetGadgetAttribute()
; ScrollEx::SetColor()     - similar to SetGadgetColor()
; ScrollEx::SetData()      - similar to SetGadgetData()
; ScrollEx::SetID()        - similar to SetGadgetData() , but string instead of integer
; ScrollEx::SetState()     - similar to SetGadgetState()
Download: ScrollBarExModule.pbi
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ScrollBarEx - Module (all OS / DPI)

Beitrag von STARGÅTE »

Hallo Thorsten1867,

ein paar Anmerkungen von mir, die das Gadget aktuell komplett unhandlich machen:
  • Das MouseWheel geht nicht, weil die #PB_Canvas_Keyboard Konstante beim erstellen deines CanvasGadget fehlt. Dadurch gibt es das Event garnicht.
  • Beim Bewegen der Balken mit der Maus, darf ich den Balken mit der Maus nicht verlassen, das ist ziemlich nervig beim scrollen. Außerdem scrollt der Balken völlig anders (andere speed) als meine Maus :?
  • Features die fehlen sind das Klicken in den Zwischenraum zum scrollen einer ganzen Page und das die beiden ScrollPfeileButtens nicht gedruckt gehalten werden können, da klickt man sich aktuell zu Tode ;-)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: ScrollBarEx - Module (all OS / DPI)

Beitrag von Thorsten1867 »

Update:
  • automatisches Scrollen für die Buttons (Button gedrückt halten)
  • seitenweise scrollen (Klick in den Zwischenraum)
@STARGÅTE
Das Mousewheel funktioniert bei mir problemlos, solange der Mauszeiger über dem Scrollbar ist.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ScrollBarEx - Module (all OS / DPI)

Beitrag von STARGÅTE »

Du bekommst hier ein Event? Ich nicht. Egal ob die Maus drin ist oder nicht.
Mit der Konstante bekomme ich das Event auch wenn das Gadget nur aktive ist, die Maus aber nicht drin ist.

Code: Alles auswählen

Enumeration
	#Window
	#Gadget
EndEnumeration

OpenWindow(#Window, 0, 0, 800, 450, "Vector Canvas Gadget", #PB_Window_MaximizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
CanvasGadget(#Gadget, 0, 0, WindowWidth(#Window), WindowHeight(#Window));, #PB_Canvas_Keyboard)

Repeat
	Select WaitWindowEvent()
		Case #PB_Event_CloseWindow
			Break
		Case #PB_Event_Gadget
			Select EventType()
				Case #PB_EventType_MouseWheel
					Debug "#PB_EventType_MouseWheel"
			EndSelect
	EndSelect
ForEver

End
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: ScrollBarEx - Module (all OS / DPI)

Beitrag von Thorsten1867 »

Ich habe die Konstante hinzugefügt. Macht bei mir keinen Unterschied.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten