Free Pascal programmieren lernen.

Aktuelles

Herzlich willkommen auf freepascal.de


Free Pascal programmieren lernen.

TPopupMenu

Einleitung

Was ist ein Popup Menü. Nachfolgend möchte ich euch mal das Windows Start Menü zeigen. Dies stellt z.B. ein PopUp dar.

Abb. 1.01 PopupMenu Windows 10

Abb. 1.01 PopupMenu Windows 10

Teil 01: TPopupMenu in Lazarus

Das PopupMenu ist das Menü das aufpoppt, wenn man in einem Betriebssystem oder einer Software einen Rechtsklick ausführt.

Abb. 1.02 TPopupMenu Lazarus IDE

Abb. 1.02 TPopupMenu Lazarus IDE

Das TPopupMenu in Lazarus ist das zweite Symbol im Reiter Standard Abb. 1.02.

Abb. 1.03 TPopupMenu Einstellungen

Abb. 1.03 TPopupMenu Einstellungen

Mit einem Klick auf dem Symbol und dann auf das Form1 kann man sich ein TPopupMenu in sein Programm holen.
Durch einen Doppelklick auf das Symbol kann man die Einstellungen Abb. 1.03 für das Menü händisch per Mausklick einstellen.

Abb. 1.04 TPopup Objektinspektor

Abb. 1.04 TPopup Objektinspektor

Im Objektinspektor muss man nun im Form1 das PopupMenu unter der gleichnamigen Eigenschaft eintragen siehe Abb. 1.04

Abb. 1.05 Form1 wird ausgeführt mit TPopupManu

Abb. 1.05 Form1 wird ausgeführt mit TPopupMenu

In Abb. 1.05 sieht man das fertige Programm in der Simulation.


Free Pascal programmieren lernen.

TMainMenu: Hauptmenü

Abb. 1.01 Form1 mit TMainMenu

Abb. 1.01 Form1 mit TMainMenu

Das TMainMenu findest du unter der Rubrik Standard und es ist direkt die erste Komponente. Das Icon erscheint wie in Abb. 1.01 zu sehen in einem Icon auf dem Form1. Um nun das Hauptmenü einzufügen zu können gehst du mit einem Doppelklick auf den Button und erhältst Abb. 1.02. Mit einem Klick auf den Button Menüeintrag erstellen, beginnst du dein Menü zu erstellen. Die Menüeinträge kannst du nun mit den + Buttons erstellen und den – Buttons löschen.

Abb. 1.02 TMainMenu anlegen

Abb. 1.02 TMainMenu anlegen

 

Diese findest du links unter Menüeintrag Aktionen. Zusätzlich kann man durch den Button (+>) einen neuen Hauptpunkt im Hauptmenu erstellen. Im TMainMenu selber kannst du nun unter dem ersten Punkt ein Untermenü erzeugen. Die Bezeichnung in Lazarus die Caption und den Namen kannst du in Lazarus über den Objektinspektor ändern.

Erstelle nun als Übung folgende Menüstruktur mit dem TMainMenü:

Caption: Datei; Name: MMBtnDatei

  • Caption: Neu; Name: MMBtnNeu
  • Caption: Speichern; Name: MMBtnSpeichern
  • Caption: Alles speichern; Name: MMBtnAllesSpeichern
  • Caption: Schließen; Name: MMBtnSchliessen

Caption: Firma; Name: MMBtnFirma

  • Caption: Rechnungen; Name: MMBtnRechnungen
  • Caption: Lieferungen; Name: MMBtnLieferungen
  • Caption: Lager; Name: MMBtnLager
  • Caption: Service; Name: MMBtnService
  • Caption: Abrechnung; Name: MMBtnAbrechnung

Caption: Hilfe; Name:

  • Caption: Online Hilfe; Name: MMBtnOnlineHilfe
  • Caption: Fehler melden; Name: MMBtnFehlerMelden
  • Caption: Über …; Name: MMBtnUber
Abb. 1.03 TMainMenu im Form1

Abb. 1.03 TMainMenu im Form1

Abbildung 1.03 siehst du nun das in Form1 neu erzeugte TMainMenu. Bitte verwende bei den deutschen Namen kein ä;ü;ö oder ß in den Namen. Anstelle einen Ü einfach eine Ue oder U schreiben. Anstelle ß einfach ein doppeltes s.

TMainMenu verschönern

Abb. 1.04 TMainMenu mit Icon

Abb. 1.04 TMainMenu mit Icon

Nun haben wir das TMainMenu erstellt und könnten anfangen es mit Funktionen zu erstellen. Ich möchte an dieser Stelle zeigen wie man das TMainMenu noch etwas schöner gestaltet durch Icons. Eine Möglichkeit an kostenlosen Icons zu kommen sind Webseiten wie www.flaticon.com oder auch Icon Sammlungen die könnt ihr auf verschiedenen Grafikportalen günstig kaufen. Mehr dazu im Anhang. Ich habe mir nun einen Folder von Faticon.com kostenlos heruntergeladen und möchte diesen in unser kleines Programm in der Größe 16×16 Pixel für den Button Öffnen einfügen. Hierzu gehst du in den Objektinspektor wählst das TMainMenu aus. Das Untermenü mit dem entsprechenden Caption und Namen auf Eigenschaften -> Bitmap auf den Button mit den drei Punkten. Hier kannst du im sich öffnenden Fenster auf Laden klicken, das Icon auswählen und speichern. Wie du mit einer TImageList Icons hinzufügen kannst erfährst du in der Komponenten Bibliothek unter TImageList.

Du kannst das TMainMenu auch mit einer TImageList verbinden und die Bilder der TImageList über die Eigenschaft SubMenuImages verbinden. Wie das geht erfährst du unter TImageList.

Prozedure und Ereignisse hinzufügen

Um ein Ereignis hinzuzufügen wählen wir im Objektinspektor den MMBtnUber: TMainMenu Button aus und gehen auf Ereignisse und wählen das OnClick Ereignis aus. Mit einem Klick auf den Button mit den drei Punkten erstellen wir dem Button zugehörige Prozedure MMBtnUberClick. Wir möchten nun durch das Klicken des Buttons ein klicken hervorrufen. Erstellen Sie unter der Leiste Standard im Lazarus Hauptmenü ein neues Label. Mit der Caption: Autor: DeinName und dem Name: LBLAutor. Im Objektinspektor setzen Sie die Eigenschaft Visible des TLabel auf False. Hierfür kannst du durch einen Klick einfach den Haken herausnehmen. Nun gehe in die Prozedure MMBtnUberClick zurück in den Quelltexteditor und schreibe hier hinein:

procedure TForm1.MMBtnUberClick(Sender: TObject);
begin
LBLAutor.visible := true;
end;

Speichere dein Programm unter tmm.lpi und tmm.pas ab und teste es. Beim starten sollte das von dir erstellte Programm nur das Hauptmeü anzeigen durch einen Klick des Buttons Über… wird dann der Text Autor: Dein Name angezeigt.

Das war es auch schon zum TMainMenu nachfolgend noch die Webadressen zu den Icons und Bildportalen.

Anhang Grafikportale:

www.flaticon.com
https://remixicon.com/


Free Pascal programmieren lernen.

FirebirdSQL ZEOS Komponenten

ZEOS Installation

Als erstes müsst du die ZEOS Komponenten hier herunterladen und installieren. Um eine neue Komponente zu installieren gehst du auf Package->Package-Datei (.lpk) öffnen -> verwenden -> installieren und dann Lazarus kompilieren.

Lazarus startet neu und der ZEOS Access Reiter mit den Komponenten kann von dir nach dem Neustart geöffnet werden.

Abb. 1.01 ZEOS Access Reiter.

Abb. 1.01 ZEOS Access Reiter.

Software Entwicklung

Abb. 1.02 Die Software

Abb. 1.02 Die Software

Folgende Komponenten benötigst du für einen einfachen Datenbank Zugriff.

  1. TZConnection
  2. TZQuery

Als dritte Komponente benötigst du eine TDataSouce aus dem Reiter DataAccess der Lazarus Standard Komponenten.

Diese drei Komponenten schaffen den Datenbankaufbau, weitere helfen bei dem Abruf der Daten und das Navigieren durch die Datensätze. Den TDBNavigator findest du unter DataControls, diesen verwendet du einfach um durch die Datensätze zu Navigieren, Updates zu machen, Daten einzutragen und zu löschen.

Die Komponente TDBEdit nutzt du für jeden einzelnen Eintrag der Tabelle personen die wir in der Datenbank angelegt haben (ID, Name, Vorname, Telefon und Mobil). Diese findest du ebenfalls unter DataControls. In Abbildung 1.02 Siehst du das kleine Programm wie es aussehen sollte.

 

Komponenten Einstellungen der Komponente ZConnection1

So nun kommen wir zu den Einstellungen der Komponente ZConnection1: Unter Database gibst du den Pfad zur Datenbank an. Der HostName lautet localhost. LibraryLocation könnt ihr leer lassen. Das Standard Passwort für eine Firebird SQL Datenbank lautet masterkey, solltest du dieses geändert haben ergänzt es. Das Protocol ist in unserem Fall eine firebird-2.5 Datenbank. Der Standard User lautet SYSDBA. Nachdem du die Einstellungen angepasst hast, kannst du bei Connected den Hacken auf true setzen. Damit ist die Komponente aktiv.

Komponenten Einstellung der Komponente ZQuery1

Als Connection nimmst du die ZConnection1. Danach legst du unter SQL den SQL Eintrag für die Datenbank Abfrage an. Diese lautet z.B.: Select * from personen. Die Bedeutung das Statements ist: „Rufe alles von Personen ab“.

Komponenten Einstellung der Komponente DataSource1

Hier stellst du unter DataSet das ZQuery1 ein.

Programm starten und testen

Mit F9 oder durch einen Klick auf den grünen Play Button im Hauptfenster, kann das Programm von dir gestartet werden. Durch den DBNavigator kannst du durch die Datenbank navigieren, neue Datensätze anlegen, verwalten und löschen.

Befehle des ZQuery

Um den Navigator durch Buttons nachzubauen kannst du über die Schaltflächen gehen die Befehle werden dann angezeigt.

Prior = zurück
Next = nächstes
Insert = einfügen
Delete = Löschen
Edit = Bearbeiten
Post = Einfügen
Refresh = neuladen

Um einen Befehl auszuführen könnt ihr dann die Eigenschaften des ZQuery ansprechen und folgendes eingeben.

BtnNext Button:

procedure TForm1.NextClick(Sender: TObject);
begin
ZQuery1.next;
end;

BtnSave Button:

procedure TForm1.SpeichernClick(Sender: TObject);
begin
ZQuery1.edit;
ZQuery1.post;
ZQuery1.refresh;end;
Ausreichen wurde eigentlich ein post Befehl. Dieser verursacht allerdings einen Fehler, wenn der Datensatz gespeichert wird ohne, dass er bearbeitet wurde.

Anhang:

Das kleine Programm als zip Datei, kann hier heruntergeladen werden. Die heruntergeladene Datei trägt den Namen 01-lazarusDBKomponenten.7z


Free Pascal programmieren lernen.

Firebird Embedded Server 2.5

Zum Abschluss dieser kleinen Artikelserie möchtet ich dir erklären wie man einen Firebird Embedded Server zum laufen bekommt. Ein Firebird Embedded Server ist wie das Wort „embedded“ sagt ein eingebauter Server. Du baust also in deiner Software einen eigenen Server ein. Das gute daran ist du benötigst dann keinen lokalen Firebird Server mehr. Passend zu diesem Artikel gibt es eine Anleitung von mir als Video auf YouTube mit einer ähnlichen Software. Mit dieser Technik kann man zum Beispiel eine Software für einen USB Stick erstellen und diese überall ausführen, ohne einen Server auf einen fremden PC installieren zu müssen.

 

Teil 01: Firebird Embedded Server 2.5.9 herunterladen

Gut lass uns zur Vorbereitung kommen. Du ladest als erstes unter dem Link: https://firebirdsql.org/en/firebird-2-5/, die Software für den Firebird Embedded Server herunter. Nutze dafür die 32 oder 64 Bit Version des Betriebssystems Windows. Bitte lade dir die Zip Version bei Windows herunter. Du benötigst nur spezielle Dateien. Mehr dazu gibt es unter Punkt 2.

Für Linux ist die Anpassung nicht möglich. In der Firebird Version 2.5 gibt es den Fehler, dass das Kennwort masterkey unter Linux masterke heißt. Es sind nur acht Zeichen möglich anzugeben. Unter Linux empfiehlt sich eine Linux Datenbank zu erzeugen und die SQL Tabellen eben neu zu erzeugen. Die Zugangsdaten sollten dann in der Software angepasst werden.

Teil 02:  Heruntergeladene Dateien einfügen

Firebird Embedded Server Dateien die zu kopieren sind.

Firebird Embedded Server Dateien die zu kopieren sind.

Auf dem Bild siehst du welche Dateien du in den Ordner deiner Software kopierst. Es handelt sich hierbei um die Dateien:

  1. dll
  2. conf
  3. msg
  4. dll
  5. dll
  6. dll
  7. dll
  8. VC80.CRT.manifest
  9. dll
  10. dll

Teil 03: Software anpassen

Quellcode Anpassung der Software

Quellcode Anpassung der Software

In deiner Software musst du den Hostnamen localhost aus der connectDB Prozedur entfernen. Aus der closeDB das SQLPeople.ExecSQL durch einen Kommentar ersetzen oder ganz löschen. Beide Änderungen an der Software sind Rot markiert. Solltet Ihr das ExecSQL nicht entfernen erhaltet Ihr einen

Teil 04. Software kompilieren und testen

Nachdem du alles angepasst hast, musst du die Software noch kompilieren und einmal simulieren. Danach kann die Software auch ohne Firebird Server von dir genutzt werden.


Free Pascal programmieren lernen.

Firebird SQL Suche

Einleitung

Für eine Firebird SQL Suche habe ich die Benutzeroberfläche der Software erweitert und drei neue Prozeduren erstellt mit den Namen >>PersonenSuche<<, >>BtnPersonenSearchClick<< und >>BtnFilterDeleteClick<<. Eine Weitere Prozedur habe ich erweitert. In diesem Artikel möchte ich Dir erklären, wie ich die SQL Suche in Firebird umgesetzt habe.

Teil 01: Erweiterung der Benutzeroberfläche

Ich habe die gesamte Benutzerüberfläche in Objektinspektor ausgewählt und alle Komponenten in etwa 40 Pixel nach unten verschoben. Danach habe ich oben ein Editfeld mit dem Namen EdtPersonenSearch, eine ComboBox CB1PersonenSearch und einen Button BtnPersonenSearch hinzugefügt. Im unteren Bereich habe ich einen Button angelegt der für, das Auflösen des Filters der Personen Suche zuständig ist. Dieser trägt den Namen BtnFilterDelete.

 

Teil 02: Die Such-Prozedur

Zum Vergrößern anklicken

Zum Vergrößern anklicken

In der Zeile 171 wird deine Prozedur durch den Prozedurkopf eingeleitet. Danach leitest du in Zeile 172 die Variablendeklaration für die Prozedur durch das Wort var ein. Es folgt die Festlegung der Stringvariablen. StrSpalte ist eine dynamische Variable in der du die Auswahl der Combobox speicherst. Die weiteren Variablen sind für die Inhalte der Datenbankabfrage die in den Editfeldern deiner Software gespeichert werden. Von Zeile 176 bis Zeile 189 Fragen wir den Status der Combobox mit drei If Abfragen ab und legen die Spalte fest, in der du suchen möchtest. In der Zeile 191 baust du mit dbConnect eine Datenbank auf. Jetzt folgt in Zeile 192 die eigentliche SQL Suche durch die SQL Query Komponente SQLQPeople. Das SQL Statement bedeutet Select (Wähle) * (alles) von der Tabelle Personen aus der Spalte (strSpalte) das LIKE (beinhaltet) strText und ordne es nach der ID an. In der Zeile 193 schaltest du das SQL Query SQLQPeople aktiv auf true (wahr). Jetzt folgt in der nächsten Zeile, das Öffnen und damit die Datenbank Abfrage. In den folgenden Zeilen fragst du die Datenbank wie in der normalen Datenbank Abfrage ab. Die Prozedur wurde für die Suche angepasst. Du hast nun vor dem Füllen der ListView ab Zeile 203 in der Zeile 202 noch das Löschen der Listview, bevor diese neu gefüllt wird. Dies wird durch die Eigenschaft clear der ListView LVPeople durchgeführt.

Teil 03: Anpassung der Prozedur SelectDBData;

Die Prozedur SelectDBData kannst du für das aufheben des Filters nutzen. Dafür müsst du wie bei der Suche vor der Befüllung der ListView diese durch die Eigenschaft clear leeren.

Teil 04: Die Prozeduren der neuen Buttons

Der neue Button BtnPersonenSearch erhält ein OnClick Ereignis das BtnPersonenSearchClick heißt und in der du die gerade programmierte Prozedur PersonenSuche einfügst und übergibt den Inhalt des neuen Editfeldes EdtPersonenSearch als Text. Du kannst dies auch weglassen und diese Information in der Prozedur abfragen. Beide Datenabfragen sind hier möglich.

Der neue Button BtnFilterDelete ruft die angepasste Prozedur SelectDBData auf um wieder alle Ergebnisse der Datenbank anzuzeigen.

Das war es auch schon mit der Anpassung der Software für eine Firebird SQL Suche.

Die fertige Software können Sie in meinem Downloadbereich kostenlos und ohne Anmeldung herunterladen.


1 3 4 5 6 7 15