Inhaltsverzeichnis
Schaltflächen (TButton)
Einleitung
Ein TButton ist eine rechteckige „Schaltfläche“ auf einem Formular zum „Anklicken“. Die Größe, Position, Eigenschaften und Beschriftung auf dem Formular muss im Vorfeld eindeutig konfiguriert werden. Folgendes Bild zeigt ein Beispiel-Formular mit verschiedenen TButton und Label:
Eigenschaften vom TButton
Jeder TButton muss einmalig einzeln konfiguriert werden. Im folgenden Sourcecode sind die notwendigsten und wichtigsten Eigenschaften kurz aufgeführt:
var btnPlus : TButton; ... ... begin ... btnPlus := TButton.Create(formStart); btnPlus.Name := 'Plus'; btnPlus.Parent := formStart; btnPlus.Font.Name := 'Frank Goth Cd'; btnPlus.Font.Size := -10; btnPlus.SetBounds(410, 34, 15, 15); btnPlus.Caption := '+'; btnPlus.Hint := '+1'; btnPlus.ShowHint := true; btnPlus.visible := true; ... end.
btnPlus : TButton;
notwendige Zuordnung von btnPlus
btnPlus := TButton.Create(formStart);
hier wird ein TButton mit Name btnPlus auf dem Formular formStart generiert
btnPlus.Name := 'Plus';
der btnPlus heißt auf diesem Formular dann Plus
btnPlus.Parent := formStart;
hiermit wird der TButton btnPlus mit dem Formular formStart verknüpft
btnPlus.Font.Name := 'Frank Goth Cd';
hier definiert man die Schriftart
btnPlus.Font.Size := -10;
hier wird die Schriftgröße festgelegt
btnPlus.SetBounds(410, 34, 15, 15);
hiermit definiert man die Startposition auf dem Formular und die Größe vom TButton:
- 410 ist die X-Position in Pixel gemessen von oben links vom Formular
- 34 ist die Y-Position in Pixel gemessen von oben links vom Formular
- 15 ist die Größe vom Button in X-Richtung
- 15 ist die Größe vom Button in Y-Richtung
btnPlus.Hint := '+1';
bewegt man später den Mauszeiger auf den Button, dann wird dieser Eintrag angezeigt
btnPlus.ShowHint := true;
hier kann man ein\ausschalten ob der oben beschrieben Hint angezeigt werden soll
btnPlus.visible := true;
hiermit lässt sich die Sichtbarkeit des Buttons auf dem Formular ein\ausschalten
Eine brauchbare Dokumentation gibt es online, z.B.hier
Verhalten vom TButton
Wie bereits erwähnt lässt sich solch ein erzeugter TButton mit der Maus anklicken. Was dann geschehen soll, muss in einer weiteren procedure nähers beschrieben werden. Als Erstes muss man allerdings in den Formular-Eigenschaften das „Klick“-Verhalten beschreiben und einer procedure zuordnen. Im folgenden Beispiel gibt es einen TButton mit Namen btnPlus. Wird der TButton btnPlus geklickt, dann wird gemäß dierser Zuordnung die procedure PlusClick ausgeführt:
//------------------------------------------------------------------ btnPlus.OnClick:= @PlusClick; //------------------------------------------------------------------
//------------------------------------------------------------------ procedure PlusClick(Sender: TButton); begin Speed :=cpgetintegervar('Speed_Soft'); Speed := Speed+1; cpsetintegervar('Speed_Soft',Speed); end; //------------------------------------------------------------------
Was in dieser procedure dann ausgeführt werden soll, kann individuell programmiert werden. Da gibt es keine Einschränkungen. In diesem Fall wird der Inhalt der Variablen Speed_Soft ausgelesen, um +1 erhöht und wieder abgespeichert.
.
Beispiel-Code mit Erläuterungen
Folgender Beispiel-Code enthält alle notwendigen Formular-Eigenschaften und einen TButton inkl. was geschehen soll, wenn dieser Button „geklickt“ wird:
procedure ShowFormStart(); begin //----------------------------------------------------------------- //-- Definition Größe vom Formular und Startposition auf dem RBS -- //----------------------------------------------------------------- formStartWidth := 1200; //Breite des Formulars in Pixel formStartHeight := 964; //Höhe des Formulars in Pixel formStartPosX := 100; //Startposition des Formulars X-Richt. formStartPosY := 100; //Startposition des Formulars Y-Richt. //----------------------------------------------------------------- formStart := TForm.Create(nil); formStart.Caption := 'Reifenauswahl-Dialog'; formStart.BorderStyle := bsDialog; formStart.SetBounds(formStartPosX,formStartPosY,formStartWidth,formStartHeight); //----------------------------------------------------------------- ... ... //---- Hier kommen jetzt die TButton-Eigenschaften ---------------- btnPlus := TButton.Create(formStart); btnPlus.Name := 'Plus'; btnPlus.Parent := formStart; btnPlus.Font.Name := 'Frank Goth Cd'; btnPlus.Font.Size := -10; btnPlus.SetBounds(410, 34, 15, 15); btnPlus.Caption := '+'; btnPlus.Hint := '+1'; btnPlus.ShowHint := true; btnPlus.visible := true; //------------------------------------------------------------------ ... ... //---- hier ist die Zuordnung TButton-Click zu Aufruf procedure ---- //------------------------------------------------------------------ btnPlus.OnClick:= @PlusClick; //------------------------------------------------------------------ ... ... //----- Folgende Programmzeilen halten das Formular aktiv ---------- //----- Erst wenn fine auf "1" gesetzt wird schließ sich das ------- //----- Formular --------------------------------------------------- cpsetintegervar('fine',0); cpShow(formStart); //Fenster einblenden //---- Formular solange offen lassen bis fine =1 ----------------- while (cpgetintegervar('fine')=0) do begin cpSleep(750); //--- 750ms warten end; cpFormFree(formStart); //--- Formular ausblenden exit; end; ... ... //------------------------------------------------------------------ procedure PlusClick(Sender: TButton); begin Speed :=cpgetintegervar('Speed_Soft'); Speed := Speed+1; cpsetintegervar('Speed_Soft',Speed); end; //------------------------------------------------------------------ ... ... //--------Hauptprogramm-------------------------------------------- begin ... ShowFormStart(); ... end.
Was sicherlich etwas kompliziert aussieht, ist halb so wild. Man muss das Formular in einer procedure beschreiben inkl. aller gewünschten TButton, TBitBtn, Label, ListBox etc.
In unserem Beispiel oben sind das die Zeilen 1-37.
Ganz wichtig, man muss zuordnen welche procedure bei welchem Klick aufgerufen werden soll. Das wird bei unserem Beispiel in der Zeile 34 beschrieben. Bei Klick auf den TButton btnPlus wird die procedure PlusClick aufgerufen.