TScrollLabel, Label welches zu langen Text autom. scrollt

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
lazarusjulian
Beiträge: 39
Registriert: Mi 6. Jan 2016, 21:45

TScrollLabel, Label welches zu langen Text autom. scrollt

Beitrag von lazarusjulian »

Moin Leute,
Ich bin nun endlich dazu gekommen mich mal mit der Komponenten Programmierung in Lazarus zu beschäftigen
und habe ein Projekt umgesetzt, welches mir schon lange auf den CoderFingern brannte ;)

Es geht um die Erweiterung eines Labels, welches zu langen Text automatisch scrollt.
Außerdem können Labels untereinander kommunizieren, damit sie nicht gleichzeitig,
sondern nacheinander scrollen.

Anbei die Komponente mit einem Test Projekt, welche das ScrollLabel demonstriert.

Gleich noch ein paar Erläuterungen zu den Properties:
property automatikMode: sollte enabled sein, wenn das Label selbstständig und unabhängig von anderen Scrolllabels scrollen soll.
property ScrollTimerInterval: Interval des Timers, welcher die Scrollgeschwindigkeit regelt. Kleiner = schneller
property TextWaitIntervalCount: Anzahl der Timerintervalle, welcher der Text an den Scrollenden wartet, bis zurück gescrollt wird.
property OnIterationEnd: Deaktiviert im automatikmode, bei mehreren ScrollLabels sollte hier startScrollIteration des nächsten Labels aufgerufen werden!
property noScrollDelayIterationCount: wenn der Text des Labels nicht gescrollt werden muss, wird eine Verzögerung von TimerIntervallen genutzt,
damit der Mainthread nicht durch Endloses Durchlaufen der ScrollLabels blockiert wird!
property FontSize: Schriftgröße.
property FontColor: Schriftfarbe.
property LabelText: Text des Labels. Kann auch während der Laufzeit geändert werden. Leider weiß ich nicht wie man den Objektinspektor davon abbringt,
die Caption des Panels, auf dem die Komponente beruht, zu setzen. Momentan muss die Caption also leider manuell auf '' gesetzt werden.


Freue mich über Rückmeldungen, vielleicht hilft es ja Jemandem etwas. Ich habe jedenfalls viele alte Beiträge zu diesem Thema gefunden, teilweise mit grausigen
Vorschlägen wie: normales Label verwenden und per Timer einen ganzen Buchstaben vorne entfernen und hinten anzufügen, um eine Art Scroll Effekt zu generieren.


Gruß Julian
Dateianhänge
ScrollLabel.zip
(1.1 MiB) 253-mal heruntergeladen

Antworten