Free Pascal programmieren lernen.
Aktuelles
Herzlich willkommen auf freepascal.de
Free Pascal programmieren lernen.
TPageControl
Die nächste Komponente die ich dir vorstellen möchte ist die Komponente TPageControl. Die Komponente findest du in der Lazarus-IDE im Hauptmenü unter dem Reiter CommonControls. Die Komponente ist die sechste von rechts. Klick die TPageControl Komponente an und füge sie in dein neues Programm in das Form1 ein.
Du erhältst ein weises Viereck mit einer hellgrauen Umrandung. Klicke das Viereck mit einem Rechtsklick an und gehe auf Seite hinzufügen. Wiederhole dies ein weiteres Mal und benennen die beiden Seiten über den Objektinspektor in Seite01 und Seite 02 um. Ich habe jetzt einfach unterschiedliche Komponenten in die beiden Seiten eingefügt. In Abbildung 1.00 kannst du die von mir erstellen Seiten: Seite 01 und Seite 02 ansehen. Die Komponente bietet dir die Möglichkeit mehrere Seiten für dein Programm zu erstellen.
Auf die einzelnen Seiten Eigenschaften wie die Caption kann man wie folgt zugreifen.
PageControl1.Pages[0].caption := 'Neuer Name'; // Seite 01
TabSheet1.caption := 'Neuer Name'; // Seite 01
Pages[0] ist ein Array diese fängt immer bei Null an. Seite 01 ist Also Pages[0] Seite 02 ist Pages[1].
Free Pascal programmieren lernen.
TComboBox: PullDown Menü
Die Komponente TComboBox ist ein Pulldown Komponente über den Objektinspektor kannst du diese unter Eigenschaften Items ->(TStrings) anklicken mit Inhalten füllen. Die Items beginnen beim ItemIndex bei 0. Standard ist -1. Bei dieser Einstellung wird der Name der Komponente angezeigt. Ich habe hier ein Kleines Programm als Anwendung zum Abfragen des ItemIndex der der jeweils aktuellen Auswahl geschrieben. Hierfür habe ich die Komponente TComboBox1 mit den Items Windows 7, Windows 8, Windows 10, Linux Mint, Linux Ubuntu, Linux Debian, jeweils in einer Zeile geschrieben. Den ItemIndex habe ich auf 0 eingestellt.
Der Button in Abbildung 1.00 hat die Caption: IndexAbfrage und den Namen BtnAbfrage. Das Editfeld ist beim Text leer und der Name ist EdtAbfrage. Füge nun bitte ein Ereignis vom Typ ONClick() über den Objektinspektor hinzu.
procedure TForm1.BtnAbfrageClick(Sender: TObject);
begin
EdtAbfrage.Text := IntToStr(ComboBox1.ItemIndex);
end;
Füge die Zeile EdtAbfrage.Text := InToStr(ComboBox1.ItemIndex); hinzu. Kurz zur Erklärung. EditAbfrage.Text ist das Editfeld die Komponente kann nur Strings als Text verarbeiten. Der doppelpunkt und das Gleichzeichen weisen den rechtsstehenden Wert zu. Die Funktion IntToStr() wandelt den aktuell ausgewählten Integer Wert des ItemIndex der TComboBox in einen String um. Damit sind beide Seiten vom selben Typ und die Abfrage kann umgewandelt werden. Das Programm bitte noch unter Projekt -> Projekteinstellungen -> Debuggen den Hacken bei Debugger – Informationen für GDB erzeugen (verlangsamt das Kompilieren) herausnehmen.
Free Pascal programmieren lernen.
TBitBtn: Button mit Bild
Video 1.01 – TBitBtn – Button mit Bild
Ich möchte nachfolgend noch einige wichtige Komponenten für die grafische Benutzeroberfläche vorstellen. Diese wist du auch in die Komponenten Bibliothek auf meinem Blog als Text und Video wiederfinden. Für unser kleines erstes Programm möchte ich diese nun auch hier vorstellen. Dies ist eine Kurzvorstellung die ausführliche Vorstellung der Eigenschaften und Ereignisse gibt es dann in der Komponenten Bibliothek.
TBitBtn: Button mit Bild
Buttons mit schönen Bildern ausstatten, den sogenannten Icons macht jedes Programm ein wenig schicker! Die beiden Buttons in der Abbildung 1.00 sind beide Buttons vom Typ: TBitBtn. Ich habe hier ein kleines Icon eingefügt. Das Icon ist einfach ein Bild im .png Format und der Größe 16×16 Pixel. Du kannst auch größere Bilder einfügen. Du solltest aber darauf aufpassen, dass es für eine Navigation immer dieselbe Pixelgröße bei unterschiedlichen Icons ist. Dies ist natürlich nur ein optisches Argument, um dein Programm schicker zu gestalten.
- Im Objektinspektor kannst du die Einstellungen für das Icon unter der Komponente BitBtn1: TBitBtn unter Eigenschaften -> Glyph auswählen. Die Eigenschaft Glyph ist vom Typ TBitmap und kann alle Standardformate in deinen Button einfügen.
- Klickt hinter dem Text (TBitmap) den Button mit den drei Punkten (…) an.
- Jetzt öffnet sich ein neues Fenster. Klicke auf den Button Laden und
- Wähle im sich nun öffnenden Fenster dein Bild aus und klicke auf öffnen
- Das Fenster schließt sich und du kannst auf OK Klicken um dein Bild einzufügen.
Free Pascal programmieren lernen.
Eingabe und Ausgabe in Lazarus mit GUI
TLabel: Label -> Text
Nun zeige ich dir, wie du ein einfaches Programm mit Benutzeroberfläche in Lazarus und Free Pascal entwickeln kannst. Bitte speichere dein aktuelles Projekt indem du die Diskette anklickst. Danach gehst du auf Projekt-> neues Projekt -> Anwendung. Es öffnet sich ein Entwicklungsfenster mit dem Namen Form1 und ein Quelltext mit dem Namen Unit1. Das Fenster ist in Lazarus eine Komponente. Die Eigenschaften wie Farbe, Caption (Title in der Kopfzeile), Abstand von Links und von Oben usw. kannst du im Objektinspektor festlegen.
Zusätzlich können hier auch Ereignisse erstellt werden. Ein Ereignis kann das Schließen des Fensters, das Erstellen, Darstellen oder auch Anklicken eines Fensters sein. Dazu gibt es später noch mehr. Im Quelltext öffnet sich nach dem Erstellen eines Ereignisses der Quelltext Editor. Hier werden die Funktionen wie z.B. eine OnClick Funktion programmiert. Bitte speichere das Programm unter Ordner Kapitel 4. Du musst zwei Dateien speichern, einmal die .lpi und die .pas. Datei. Die .lpi Datei ist das Formular und der Quelltext befindet sich in der .pas Datei. Die erste .lpi Datei speicherst du einem neuen Ordner im Kapitel 4 Ordner und gibst der Datei den Namen eva.lpi. Das eva steht bei beiden Dateinamen für Eingabe, Verarbeitung und Ausgabe. Die zweite Datei nennst du evau1.pas.Das u1 steht hier für Unit1.
Eingabe und Ausgabe mit GUI als Video
TLabel: Label -> Tex (Fortsetzung)t
Wir möchten nun unser Form1 mit einer weiteren Komponente ausstatten und zwar mit einem Label. Die Komponente findet sich unter Standard -> ABC. Du musst die Komponente nur anklicken und danach in das Form1 klicken. Das Form1 ist als Komponente vom Typ ein TForm unser neues Label heißt nun Label1 und ist vom Typ ein TLabel. Die Bezeichnung und Darstellung des Labels ist ebenfalls Label1. Wir ändern den Namen der Komponente Label1 im Objektinspektor unter Name in LBLName dies steht für LBL = Label und Name für die Bezeichnung. Es ist hierbei wichtig den Typ immer vorne im Namen anzugeben, da du später auch Editfelder und Button haben wirst. Bei einem großen Programm mit mehreren Forms, schreibt man auch noch den Form Name dazu.
Als nächstes ändern wir die Caption in „Bitte geben Sie Ihren Namen ein!“. Die Caption ist die Beschriftung. Der Textinhalt, der Caption, wird dem Nutzer später im Programm angezeigt.
TEdit: Editfeld
Jetzt müsst du noch irgendwo deinen Namen eingeben können. Die Dazu passende Komponente lautet TEdit und ist ein Editfeld. Die TEdit Komponente findest du unter Standart-> TEdit rechts neben dem bereits ausgewählten TLabel. Ziege die Komponente unter unser TLabel und ändere den Namen der Komponente in EdtName. Das Edt steht hier für Editfeld. Die Schreibweise des Namens sieht etwas komisch aus oder? Zusammengeschrieben und jeder Name großgeschrieben? Ein Komponentenname muss durch die Vorgabe, von Lazarus immer zusammengeschrieben werden und dar nur Buchstaben beinhalten. Die Schreibweise jedes neue Wort mit Großbuchstaben zu beginnen heißt Camel Case Notation. Bei einem Editfeld gibt es keine Caption (Bezeichnung), sondern einen voreingestellten Text als Eigenschaft. Diesen ändern wir indem wir den Inhalt löschen und leer lassen.
4.5 TButton: Button
Wir können nun durch das Label den Nutzer auffordern seinen Namen in das Editfeld einzutragen. Mit einem Button können wir jetzt etwas über ein OnClick Ereignis ausführen. Die Komponente für einen Button heißt TButton oder für einen Bildbutton TBitButton. Nimm als erstes Mal die Komponente TButton unter Standard -> TButton links neben der TLabel Komponente und ziehe den Button unter das Editfeld. Den Name des Button änderst du im Objektinspektor bitte auf BtnName. Das Btn steht als Abkürzung für Button und der Zusatz Name beschreibt, dass die drei Komponenten LBLName, EdtName und BtnButton zusammengehören. Der Button hat nun wieder wie das TLabel eine Caption in der du die Beschriftung festlegen kannst. Trage bei der Caption „Begrüßung ausführen“ ein.
Bevor wir nun weiter machen ziehe bitte ein weiteres Label unter den Button und lege den Namen auf LBLBegruessung fest. Sonderzeichen wie das ß oder das ü können in einer Caption dargestellt werden im Quelltext und in Kommentare um Fehler zu vermeiden nutze bitte keine Sonderzeichen. Als Caption legst du LBLBegruessung fest.
Wir haben nun alle Komponenten erstellt die wir für unser kleines Programm benötigen. Jetzt kommen wir zu der Programmierung. Wähle dafür im Objektinspektor den TButton mit dem Namen BtnName aus und wähle anstelle Eigenschaften die Ereignisse aus. Jetzt kannst auf das OnClick Ereignis auswählen und mit dem Button (…) die Funktion erstellen. Im Quelltext wird nun eine neue Prozedure mit dem Namen prozedure TForm1.BtnNameClick(Sender: TObjekt) dargestellt. Die Prozedure sollte wie folgt aussehen:
...
35: procedure TForm1.BtnNameClick(Sender: TObject);
36: begin
37: LBLBegruessung.caption := 'Hallo ' + EdtName.Text;
38: end;
…
Abb. 1.02 Quellcode Auszug der Prozedure BtnNameClick.
Eine kurze Erklärung zum Quelltext von Zeile 35 bis 38. Zeile 35: Prozedure TForm1.BtnNameCLick(Sender: TObjekt); Eine Prozedure ist ein Textbaustein dessen Quelltext nur beim Aufrufen des Prozedurenamens ausgeführt wird und ein Teil der Objektorientierten Programmierung, mehr musst du im Moment noch nicht dazu wissen. Das TForm1 ist der Ort an dem das Objekt und der Quellcode ausgeführt werden. Das TForm1 ist im Quellcodekopf nochmal aufgeführt und verweist dadurch auf die auszuführende Prozedure. BtnNameClick ist der Name der Prozedure. (Sender: TObjekt) ist der Typ der hier übergeben wird. Was genau Objekte sind müssen hier an dieser Stelle noch nicht wissen. Das begin in der 36 Zeile öffnet den Beginn des auszuführenden Quellcodes, das end; in Zeile 38 schließt diesen wieder. In Zeile 37 weisen wir nun der Bezeichnung des TLabels -> LBLBegruessung den Text des Edit Feldes zu und setzten mit den in Anführungszeichen gesetzten Textes noch ein ‚Hallo ‚ mit Leerzeichen davor.
Um das Programm zu testen nutze den grünen Playbutton im Hauptfenster von Lazarus. Mit dem Stop Button kannst du das Programm stoppen um eventuell nach Fehlern zu suchen. Mit dem Halt Button kannst du das Programm abbrechen. Probiere es jetzt mal aus.
Dir wird auffallen das das Programm während der Ausführung, das Label LBLBegruessung den Namen auch als Caption anzeigt. Für unsere Zwecke und zum Entwicklungszeitpunkt ist das wichtig einen Text zu haben um es zu positionieren und sehen zu können. Zur Laufzeit ist es nicht schön anzusehen. Klicke nun auf das Form1 und gehe auf Ereignisse, scrolle hier solange herunter bis du das Ereignis OnCreate gefunden hast. Klicke es an und erstelle mit dem Button (…) eine neue Prozedure mit dem Namen procedure TForm1.FormCreate(Sender: TObject); Zwischen dem begin und end; gibt du nun folgendes ein LBLBegruessung.caption := ”; dies sagt dem Programm das nach der Erstellung des Programms das die Beschreibung (Caption) LBLBeruessung des Labels leer sein soll. Anbei nochmal der Quelltext der Prozedure.
...
41: procedure TForm1.FormCreate(Sender: TObject);
42: begin
43: LBLBegruessung.caption := '';
44: end;
...
Zum Abschluss nocheinmal ein Bild des Programm bei der Ausführung.
Software herunterladen: AWEVAAnwendung.7z
Hinweis: Die Software ist mit der kostenlosen Version von 7zip gezippt worden, daher auch die Endung .7z. Unter 7-zip.de kann die Software 7Zip kostenlos heruntergeladen werden und das Programm zu entpacken.
Free Pascal programmieren lernen.
FreepascalDE | Aktuelles vom 14.02.2023
Es sind verschiedene Überarbeitungen der Kurse geplant.
Überarbeitung 01:
- Datenübertragung auf unseren neuen Server und neuer Domain
- Prüfen aller Bilddaten, Software Downloads, Video Pfade
- Datentrennung: Auf FreepascalDE kommen nur Inhalte zu Lazarus und FreepascalDE
- Linux Installation und virtuelle Maschinen fliegen raus. Diese INhalte findet ihr in Zukunft auf dem neuen Blog von Winkelmann.Software
Abschluss bis zum 28.02.2023 geplant.
Überarbeitung 02:
- Inhaltliche Prüfung durch Kommentare von Lesern. Die Fehler entdeckt haben.
Überarbeitung 02:
- Moderniesierung der Texte und Bilder
- Neue Videos zu den bestehenden Inhalten
Überarbeitung 03:
- Neue Projekte die Textuell und als Video beschrieben werden.
Neue Kommentare