Scrollbalken selbst machen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Scrollbalken selbst machen

Beitrag von pluto »

Hallo,
schon länger habe ich das Problem, das ich einfach nicht weiß wie ich Scrollbalken selbst zeichnen kann. Für ein aktuelles Vorhaben kann ich leider die Scrollbar nicht benutzen.

Das Scrollen an sich ist kein Problem. Das habe ich schon mehrfach mit der Tastertur hinbekommen. Das Problem sind die Balken.

Ich habe es zwar schon geschafft Balken zu zeichnen und zu Bewegen mit der Maus(so wie man das gewohnt ist).

Aber was ich noch nicht Geschafft habe ist das sich der Inhalt z.b. in einer eigenen Listbox auto. anpasst wenn ich die Scrollbalken bewege.

Oder wenn ich per Tastertur den markierungs Balken verschiebe das dann auto. die Scrollbalken richtig gesetzt wird.

Könnte mir das jemand von euch erklären ?

Bitte nur Antworten, wenn ihr eine Frage zu der Frage habt. oder eine Lösung wisst.
Und wenn es geht nicht einfach sagen: ja ich weiß, sonder auch gleich sagen wie !
Eine Schritt liste reicht voll und ganz. ein Soruce Code muss nicht Umgedingt. Erstellt werden.

Vielen Dank für eure umfassende Hilfe.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Im Hintergrund benutzt ich eine TBitmap Variable.
und ein TRect. dieses Treckt soll sich jetzt bewegen per Maus und Tastertur.
MFG
Michael Springwald

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Vorschlag:
Ich würde hier versuchen einen Algorithmus zu benutzen der in etwa so aussieht:
Falls textlänge=scrollbarlänge dann nichts machen
Falls textlänge größer ist als die Scrollbarlänge erweitere die Scrollbarlänge um eine Einheit.
Oder du machst es ganz "dumm" und gibst jeder länge genau eine einheit

John

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Oder etwa: Scrollbarlänge = Länge des Textfeldes div Textlänge

Und maximale Scrollbarlänge auf Länge des Textfeldes setzen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Danke für eure Vorschläge ! Aber die habe ich schon ausprobiert.

Ich würde gerne unhabänig von der Scrollbalken größe(höhe) ihn mit der Maus bewegen können.
MFG
Michael Springwald

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Verstehe ich jetzt nicht

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich doch einen ganz Langen Text laden. wo ich eine Mind. Scrollbalken Höhe haben muss. damit ich noch einen Scrollbalken sehen kann.

Die Höhe möchte ich natürlich auch berechnen. Aber Ich möchte gerne beim Scrollen nicht auf die Höhe angewiesen sein. Das sollte in der Berechnung Berücksichtigt werden. Wie halt in Winamp dort wird z.b. in der Playliste die Scrollbalken höhe gar nicht berechnet.

Mein Ziel ist es das ich den Balken mit der Maus verschieben kann(nach unten und nach oben) und das sich dabei der Text in der z.b. Paintbox richtig anpasst.
MFG
Michael Springwald

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Dann würde ich versuchen inetwa den algo zu benutzen:
Mach ne Scrollbar mit der Länge die du haben willst.
Und vergleiche ihn mit dem Text. Du nimmst eine Maximale größe des textes und zählst dann nach unten wo immer eine textgröße abgezogen wird bis du die passende größe hast.

Hoffe das war jetzt das was du gemeint hast.

John

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Leider noch nicht 100%ig das was ich gemeint habe oder ich verstehe dich noch nicht richtig.
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Die von Lazarus verwendeten Scrollbalken passen sich übrigends dem Widgetset an ;)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Die hat pluto bestimmt einfach noch nicht gefunden ;)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Ganz einfach...das, was bei gtk so hässlich aussieht ;)
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

kommt aufs Thema an :p
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

John
Beiträge: 273
Registriert: Mo 30. Jul 2007, 19:55

Beitrag von John »

Christian hat geschrieben:kommt aufs Thema an :p
Nein aufs
Christian hat geschrieben:kommt aufs Thema
zurück


John 8)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Es geht mir doch ums Prinzip !
ich möchte nicht eine Besseren Scrollbalken machen ich möchte doch einfach nur verstehen wie so was geht ! mehr doch nicht !
MFG
Michael Springwald

Antworten