Free Pascal programmieren lernen.

TTrackBar

Abb. 1.01 Komponente TTrackbar „Slider“ oder „Schieberegler“

Abb. 1.01 Komponente TTrackbar „Slider“ oder „Schieberegler“

Ihr seht hier auf der Abbildung in grün umrandet die TTrackBar als Komponente. Diese könnte man auch als Slider oder Schieberegler bezeichnen. Um diese zu nutzen und en aktuellen Stand des Ziegers im einen Editfeld anzeigen zu lassen, dafür ist dieser Artikel erstellt worden. ich möchte als erstes auf die Eigenschaften der TTrackBar eingehen.

Eigenschaften der TTrackBar

Die grüne Umrandung könnte durch die Eigenschaft Color hinzufügen. Leider könnt ihr damit nur die Umrandung farblich markieren und nicht die TrackBar selber.
Unter Frequency stellte ihr die grauen Unterteilungen ein. Bei einer TrackBar die von 0 – 100 geht und eine Frequency von 20 hat habt ihr also 5 Unterteilung bei 10 dann 10 usw..

Ddiese könnt ihr beliebig anpassen. Für die Positionierung und Größe der TTrackBar könnt ihr die width, height, top und left nutzen. Diese werden in Pixel ausgeführt. Die Eigenschaft Max ist für die Einstellung eures höchsten Wertes gedacht. Die Eigenschaft Min für den Anfangswert. Die Werte Min und Max können negativ oder Positiv sein. Der Minimalwert sollte hierbei immer kleiner sein als der Maximalwert. Unter Name kannst du der Komponente einen Namen geben. Unter visible stellst du ein, ob diese angezeigt werden soll. Die TabOrder ist die Reihenfolge in der Ihr die Komponenten eines Formulars mit der Tabulatortaste durchklicken könnt.
Gut kommen wir zu unserem kleinen Anwendung. Wir benötigen ein Formular mit dem Namen Form1 vom Typ TForm. Eine TTRackBar mit Namen TBSlider und TEdit Feld mit dem Namen EdtAnzeige. Als Ereignisse stellen wir einmal beim Form1 das Ereigniss OnShow ein und bei dem Slider das Ereignis Change.
Nachfolgend der Quellcode für die TBSliderChange procedure

01: procedure TForm1.TBSliderChange(Sender: TObject);
02: begin
EdtAnzeige.Text := IntToStr(TBSlider.Position); // STRINg := INT
04: end;

Zeile 01 ist der Start der Procedure und die Definition des Procedurenamens und dass diese als Typ ein TObject ist. In Zeile 02 wird diese mit dem begin eigeleitet. In Zeile 03 Weisen wir auf der linken Seite dem Text des Editfeldes EdtAnzeige.Text vom Typ String die Position des Sliders zu. Da diese Slider Position vom Typ Int ist wir diese noch von Int nach String mit der Funktion IntTostr gecastet. In Zeile 04 mit dem end wieder geschlossen.

Nachfolgend der Quelltext der Procedure FormShow

01: procedure TForm1.FormShow(Sender: TObject);
02: begin
03: TBSlider.Position := 0;
04: EdtAnzeige.Text := IntToStr(TBSlider.Position);
05: end;

In der Procedure Form Show, die in Zeile 01 eingeleitet wird und durch das in Zeile 02 befindliche beginn eingeleitet wird, wird in Zeile 03 die TBSlider.Position nachdem das Formular angezeigt wird auf 0 gesetzt. Dies passiert im Compiler in einer so großen Geschwindigkeit das wir den Slider nur an Position 0 sehen, bei Start des Programms. Da auf der linken Seite >> TBSlider.Position<< des ist gleich „:=“ ein Int steht und auf der rechten Seite durch die 0 ebenfalls gibt es auch keine Compiler Probleme. In Zeile 04 wird wie oben bereits beschrieben die Position als Int Wert nach String gecastet und dann in das Editfeld EdtAnzeige.Text geschrieben. Beide Seiten haben hier wiederum ein String durch das casten auf der rechten Seite, damit gibt es hier ebenfalls kein Problem.

Vorschau auf den Debugger
Mögliche Fehlerquellen: Du vergisst die Position der TTrackbar von Int nach String zu casten.

Es taucht folgender Fehler im Fenster Nachrichten auf: Error: >> Incompatible type for arg no. 1: Got „LongInt“, expected „TTranslateString“ << Das heißt für dich Inkompatibler Typ für Argument Nr. 1: Bekam „LongInt“, erwarte „TTranslateString“ Oder einfach die beiden Seiten betrachten:
String := Int (nicht ok)
String := IntToStr(Int) (ok)

 

Video Link auf YouTube:
YouTube Video 

Link zum Download des Beispielprogramms als 7Zip Datei:awtrackbar.7z


Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.