Lazarus IDE und Datenbanken

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Frankdarwin
Beiträge: 4
Registriert: Mo 28. Jun 2021, 20:05
OS, Lazarus, FPC: Windows 10, Lazarus 2.0.12
CPU-Target: 64 Bit

Lazarus IDE und Datenbanken

Beitrag von Frankdarwin »

Hallo zusammen,
ich fange gerade an mich mit Lazarus (2.0.12) zu beschäftigen.
Programmiersprachen und Datenbanken sind für mich nichts Neues.
Zum Lernen habe ich fleißig Google befragt und bin auf ein PDF Dokument (LazInfosDas Lazarus Beispielbuch, https://docplayer.org/docview/26/704347 ... 043474.pdf) gestoßen
das sehr vielversprechend aussah.
Ich habe begonnen das Beispiel umzusetzen und bin recht früh auf Probleme gestoßen.
Wie im Beispiel vorgegeben habe ich im Formular auch eine ActionList eingefügt.
https://www.amazon.de/clouddrive/share/ ... xdv8lSDkxG
Leider kann ich die im Beispiel genannten Aktionen zur ActionList nicht nachvollziehen, da mir die vorgeschlagenen Aktion im Aktionslisteneditor nicht angeboten werden.
Jetzt bin ich (ohne Google, da habe ich nichts gefunden habe) auf der Suche nach Hilfe.
Ich erwarte nicht, dass mir jemand bei dem Beispiel hilft.
Vielmehr bin ich auf der Suche nach eine brauchbaren Dokumentation oder guten Beispielen, die mir den Einstieg erleichtern.
Hat jemand eine Idee?
Mein Motto: "Geht nicht, gibt's nicht"
Frank

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Lazarus IDE und Datenbanken

Beitrag von Michl »

Bin selbst nicht so buchaffin was coden angeht und kann dir dahingehend keinen Ratschlag über gute Literatur geben. Ich nutze gern Beispielprojekte und lese mich in den Code ein. Wenn da was hilfreich wäre, könnte ich da gern aushelfen.

Ansonsten ist für Lazarus mMn das Wiki eine gute Anlaufstelle, wobei man dabei durchaus neben der deutschen auch die englische Seite mal anschauen sollte. Habs nicht ausprobirt, doch auf den ersten Blick würde ich mich an dem Tutorial orientieren: https://wiki.freepascal.org/SQLdb_Tutorial0

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazarus IDE und Datenbanken

Beitrag von af0815 »

Wenn du mir schreibst, welches Beispiel (Seite) genau, dann kann ich helfen. Nachdem ich das ganze geschrieben habe. Die dort verwendeten Sourcen sind fast 7 Jahre alt :-) Wenn sich wer findet, der auch etwas beisteuern will/kann, dann könnte ich mich wieder motivieren :mrgreen:

Die Sourcen zum 'Buch' sind übrigends hier. https://github.com/afriess/LazInfos - war ursprünglich auf Sourceforge gehostet und hat sich dann verteilt. Das mit Sourcen meine ich wörtlich, es ist in Latex geschrieben :-)


Zu deinem ActionList Problem:
Füge mit + einmal eine eigene Action hinzu. wenn du dann auf die neue Action einen doppelclick machst bekommst du einen Rumpf vorgeschlagen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Frankdarwin
Beiträge: 4
Registriert: Mo 28. Jun 2021, 20:05
OS, Lazarus, FPC: Windows 10, Lazarus 2.0.12
CPU-Target: 64 Bit

Re: Lazarus IDE und Datenbanken

Beitrag von Frankdarwin »

af0815 hat geschrieben:
Di 29. Jun 2021, 08:14
Wenn du mir schreibst, welches Beispiel (Seite) genau, dann kann ich helfen. Nachdem ich das ganze geschrieben habe. Die dort verwendeten Sourcen sind fast 7 Jahre alt :-) Wenn sich wer findet, der auch etwas beisteuern will/kann, dann könnte ich mich wieder motivieren :mrgreen:

Die Sourcen zum 'Buch' sind übrigends hier. https://github.com/afriess/LazInfos - war ursprünglich auf Sourceforge gehostet und hat sich dann verteilt. Das mit Sourcen meine ich wörtlich, es ist in Latex geschrieben :-)


Zu deinem ActionList Problem:
Füge mit + einmal eine eigene Action hinzu. wenn du dann auf die neue Action einen doppelclick machst bekommst du einen Rumpf vorgeschlagen.
Hallo af0815,
danke für die schnelle Antwort.
Ich hatte nicht gedacht direkt an den Autor des Dokumentes zu geraten.
Das mit dem Hinzufügen einer neuen Action habe ich mittlerweile (durch rumprobieren) gelöst.
Wenn ich zu diesem Beispiel noch weitere Fragen habe, komme ich gerne wieder auf dich zu.
Mein Motto: "Geht nicht, gibt's nicht"
Frank

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Lazarus IDE und Datenbanken

Beitrag von charlytango »

Frankdarwin hat geschrieben:
Mo 28. Jun 2021, 21:28
Wie im Beispiel vorgegeben habe ich im Formular auch eine ActionList eingefügt.
https://www.amazon.de/clouddrive/share/ ... xdv8lSDkxG
Leider kann ich die im Beispiel genannten Aktionen zur ActionList nicht nachvollziehen, da mir die vorgeschlagenen Aktion im Aktionslisteneditor nicht angeboten werden.
Hi - willkommen im Forum.

Möglicherweise liegt hier ein Verständnisproblem vor.
In einem ereignisorientieren Programm gibt es (nicht nur für den Benutzer) viele Möglichkeiten ein Ereignis auszulösen bzw seinen Willen kundzutun indem man ein Menü benutzt, einen Knopf drückt, einen Rechtsklick ausführt und vieles andere mehr.
Oft "führen viele Wege nach Rom" - es existieren also mehrere Möglichkeiten immer die gleiche Aktion (also immer das gleiche Stück Code) auszulösen.

Eine Actionlist ist (für mich) in erster Linie eine bequeme Sammlung von "Actions" die man sehr einfach an einen Knopf/Button oder ein anderes Control binden kann das diese Möglichkeit bietet (im Objekinspektor - Properties - Action).
Eine Action (TAction - eben in einer Actionlist bequem zusammengefasst) hat auch noch andere Vorteile. Zugeordnete Images werden ZB in Menüs und Buttons etc verwendet und die Sichtbarkeiten oder Enabled/Disabled wir an die zugeordneten Controls weitergegeben.
Actionlist disabled--> alle Controls mit dieser Actionlist disabled. (sonst mmüsste der Programmierer bei jeder einzelnen Verwendung aktiv werden.

Neue Action erstellen: Actionlist mit Doppelklick öffnen. mit + eine neue hinzufügen -- guten Namen vergeben -- und ein Doppelklick rechts auf den Listeneintraf bringt dich automatisch zu einem bereits vordefinierten Eventrumpf im Code.

Um ehrlich zu sein habe ich immer nur "Neue Aktion" und nie eine Standardaktion benutzt. Daher kenne ich mich damit auch nicht aus und es wäre für mich neu. Ist mir nie in den Sinn gekommen da auf das Dropdown zu klicken. Wahrnehmung ist schon ein komplexer Vorgang ;)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazarus IDE und Datenbanken

Beitrag von af0815 »

Wenn man eine Standardaction nimmt, darf man keine Ereignisprozedure daran binden. Soweit habe ich es verstanden.

charlytango hat recht, mit der Beschreibung das mit TAction und TActionList sehr viel zusammenbinden kann. Auch die Menüeinträge, Speedbuttons etc. steuern sich automatisch und zentral. Das ist praktisch, weil es damit kann man zum Beispiel Knöpfe anpassen, der zuerst eine Funktion hat, und per Programm eine andere. Das ganze Zentral, damit muss man den Code nicht an mehreren Stellen warten.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus IDE und Datenbanken

Beitrag von wp_xyz »

Actions sind "Abkürzungen", dass mehrere Controls z.B. ein Menüeintrag und ein Toolbutton und ein Eintrag im Kontextmenü dasselbe erledigen, ohne dass man den Code mehrmals schreiben muss. Man ordnet die Action der "Action"-Property des MenuItem des Hauptmenüs, des ToolButton und des MenuItem des Kontextmenü zu - und ein Klick auf jeder dieser Komponenten führt den der Action zugeordneten Code aus.

Es gibt zwei Arten von Actions: "normale" Actions und Standardactions. Normalerweise nimmt man die "normalen" Actions ("neue Action" im Action-Editor). Damit diese Action etwas tut, muss man einen Handler für das OnExecute-Ereignis schreiben. Das ist das, was bei dem Menü/Button/Kontextmenü-Click ausgeführt werden soll.

Standardactions (die sind auf deinem Screenshot zu sehen) erledigen eine festvorgegebene Standard-Aufgabe. TFileExit z.B. beendet das Programm, ohne dass du eine Zeile Code schreiben musst (du musst natürlich diese Action einem entsprechenden Button/Menüeintrag zuweisen). Gerade Datenbank-Anwendungen kann man sich mit Hilfe von Standardactions und den Standard-Komponenten zu zusammenklicken, so dass man Datensätze ansehen, bearbeiten einfügen und löschen kann - ohne eine Zeile Code (Warnung aber: Das würde ich im allgemeinen so aber nicht empfehlen...).

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Lazarus IDE und Datenbanken

Beitrag von six1 »

Ich verwende Actionlist in erster Linie, um Shortcuts auf der Form abzufangen und darauf zu reagieren, weil das mit KeyPeview und onKeyDown nicht richtig funktioniert.
Mit der Actionlist definierte Shortcuts funktionieren einwandfrei.
Gruß, Michael

Frankdarwin
Beiträge: 4
Registriert: Mo 28. Jun 2021, 20:05
OS, Lazarus, FPC: Windows 10, Lazarus 2.0.12
CPU-Target: 64 Bit

Re: Lazarus IDE und Datenbanken

Beitrag von Frankdarwin »

Vielen Dank für eure hilfreichen Erklärungen!
Mein Motto: "Geht nicht, gibt's nicht"
Frank

Antworten