Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Simone_A43
Beiträge: 1
Registriert: Mi 16. Sep 2026, 19:31

Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Simone_A43 »

Hallo zusammen

nach meiner Trennung habe ich plötzlich wieder Abende für mich, und statt nur Serien zu schauen, wollte ich etwas bauen, das ich selbst brauche. Herausgekommen ist die Idee für einen kleinen Terminplaner: Kurse, Verabredungen, Sport, Erinnerungen, alles lokal in einer SQLite-Datenbank, ohne Cloud und ohne Handyzwang.

Die Grundstruktur mit TListView und einer Datenbankverbindung steht, aber ich hänge an zwei Stellen. Erstens: Wie geht ihr mit wiederkehrenden Terminen um, speichert ihr jede Instanz oder eine Regel? Zweitens: Gibt es eine brauchbare Kalenderkomponente für Lazarus, die nicht nach 2003 aussieht?
Zuletzt geändert von m.fuchs am Mo 21. Sep 2026, 12:19, insgesamt 2-mal geändert.
Grund: Spam entfernt

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

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von wp_xyz »

Simone_A43 hat geschrieben: Mi 16. Sep 2026, 19:59 Erstens: Wie geht ihr mit wiederkehrenden Terminen um, speichert ihr jede Instanz oder eine Regel?
Als Regel
Simone_A43 hat geschrieben: Mi 16. Sep 2026, 19:59 Zweitens: Gibt es eine brauchbare Kalenderkomponente für Lazarus, die nicht nach 2003 aussieht?
Es gibt TvPlanIt. Stammt ursprünglich von TurboPower und ist aus dem letzten Jahrhundert. Aber zumindest in der Lazarus-Version kannst du eigentlich fast alles einstellen: https://wiki.freepascal.org/Turbopower_Visual_PlanIt. Du kannst das Package ganz einfach im OPM installieren.

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

Zusatz: Auch wenn wp auf TvPlanit verwiesen hat:
Wirf das TListView in die Tonne. Nimm ein StringGrid (oder DBGrid)

Wiederkehrende Termine: Da bin ich zweierlei Meinung
Ja, ich verstehe, dass es einfacher sein kann als Regel, würde aber dennoch den eigenständigen (und somit redundanten) Termin bevorzugen.
Beispiel:
Ich habe jeden Mittwoch Bandprobe, und erzeuge es als wiederkehrenden Termin/Termin-Serie
Jetzt fällt aber ein Termin aus (Schlagzeuger im Urlaub)

Als Regel (so wie es Outlook macht) hab ich immer nur Ärger gehabt, weil mir dann die ganze Serie kaputtging.
Als eigenständigen eigenen redundanten Termin kann ich an jedem einzelnen Termin rumpfuschen, ohne dass es die Serie zerreisst.
Egal ob aus meinem Frontend, oder durch die Hintertür in DB-Browser for SQlite.
Um so einen redundanten Termin als Teil einer Serie zu kennzeichnen, kann man eine zusätzliche Spalte nehmen, welche dann eine eindeutige ID je Serie enthält (z.B. eine UUID)

Falls du Hilfe bei SQLite brauchst (Tipps&Tricks), kann ich helfen. Hab über 20 Jahre Erfahrung in DB-Design, und kenne auch die eher etwas "exotischeren" Tricks in SQLite.
Es gibt in SQLite die "Klassiker" die man vermeiden sollte, da sie nur unnötigen Overhead erzeugen

Übrigens: In SQLite, Termine bevorzugt als VARCHAR im Format "YYYY-MM-DD HH:NN:SS" speichern.
Die einzige vernünftige Alternative ist JulianDay, falls du DB-gebundene Controls verwenden willst

Obwohl ich ein Verfechter von "Benutze die nativen Datentypen" bin, ist SQLite eine Ausnahme davon:
Benutze VARCHAR(XX) statt TEXT für alle Strings, weil mit TEXT bekommst du das vermeiledeite "(Memo)" in DB-gebundenen Controls.
Falls keine DB-gebundenen Controls, dann natürlich TEXT verwenden
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Joh
Lazarusforum e. V.
Beiträge: 390
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Joh »

Zvoni hat geschrieben: Do 17. Sep 2026, 08:23 Als Regel (so wie es Outlook macht) hab ich immer nur Ärger gehabt, weil mir dann die ganze Serie kaputtging.
Als eigenständigen eigenen redundanten Termin kann ich an jedem einzelnen Termin rumpfuschen, ohne dass es die Serie zerreisst.
Egal ob aus meinem Frontend, oder durch die Hintertür in DB-Browser for SQlite.
Um so einen redundanten Termin als Teil einer Serie zu kennzeichnen, kann man eine zusätzliche Spalte nehmen, welche dann eine eindeutige ID je Serie enthält (z.B. eine UUID)
Typisches Beispiel: meine Altpapiertonne: jeden 4. Montag, außer Ostermontag und am 3. Oktober; dann erst Dienstag...

Andererseits Geburtstage: fast immer am gleichen Tag... außer man hat am 29.2.
just my two Beer

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7447
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: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von af0815 »

Kalenderprogrammierung war für mich immer ein Buch mit 7 Siegeln. Wäre interessant da einmal mitzulesen. Weil gerade die Serientermine mit Ausnahmen für mich abstrakt sind.

Bin neugierig ob es da zu Code kommt, da würde ich gerne mitlesen (und verstehen).

BTW: An Datenbankkenntnissen wird es mir nicht unbedingt mangeln (nehme ich an) :mrgreen:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

Joh hat geschrieben: Do 17. Sep 2026, 14:19 Typisches Beispiel: meine Altpapiertonne: jeden 4. Montag, außer Ostermontag und am 3. Oktober; dann erst Dienstag...
Was ist mit Pfingstmontag? :lol:

Mal davon abgesehen: Lustig wird es, wenn ein Monat 5 Montage hat
Setzt halt voraus, dass du jedes Jahr die Feiertage vorhälst :lol:
Andererseits Geburtstage: fast immer am gleichen Tag... außer man hat am 29.2.
Ah ja....der "Klassiker" :)
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

af0815 hat geschrieben: Do 17. Sep 2026, 14:33 Kalenderprogrammierung war für mich immer ein Buch mit 7 Siegeln. Wäre interessant da einmal mitzulesen. Weil gerade die Serientermine mit Ausnahmen für mich abstrakt sind.
Habe ich gerade an der Backe im Rahmen des ERP-Umstiegs.
Bin im Migrations-Team, und mir wurde letzte Woche der Block "Betriebskalender" zugewiesen....

Prinzipiell ist so eine Kalender-Programmierung nicht weiter schwer, sofern man sich auch wirklich an die Regeln hält bzw. die Regeln vorher bekannt sind.
Bsp. Fällt ein Termin auf einen Feiertag, soll dann vorgezogen werden (auf welchen Termin?) oder nach hinten geschoben werden (auf welchen Termin?)?

Setzt natürlich voraus, dass die "Ausnahmen" in einer LUT zur Verfügung stehen.

Wenn das einmal steht, ist es im Prinzip einfache Mathematik, wo man dann nur unterscheiden muss:
Ist das Vorgabe-Kriterium ein Datum, oder ein Wochentag?

Da gibt es ja dann den ganzen Blumenstrauss (Beispiele):
1) Vorgabe: Datum --> Immer am Monats-Ersten (sind dann unterschiedliche Wochentage)
2) Vorgabe: Datum --> Immer am Monats-Letzten (sind dann unterschiedliche Wochentage)
3) Vorgabe: Datum --> Immer am 10. eines Monats (Denk mal an Bank-Daueraufträge)
4) Vorgabe: Wochentag –-> Immer der zweite Montag im Monat
usw....

Je nach Vorgabe ist die "Berechnung" der Folgetermine in der Serie unterschiedlich, zzgl. Anpassung, falls ein Termin auf einen Feiertag/Samstag/Sonntag u.ä. fällt

Prinzipiell muss man unterscheiden:
1) Ist ein Feiertag durch ein Datum festgelegt (Bsp. 01.05., 03.10., 25.12., 01.01. usw.) --> Wochentag "variabel"
2) oder durch einen Wochentag (Bsp. Karfreitag, Ostermontag usw.) --> Datum "variabel", jedoch Datum trotzdem "bekannt" und "fix" für das Jahr

Und bei unserem Betriebskalender mache ich es halt so, dass ich ALLE "Ausnahmen" (auch Samstage und Sonntage, weil da wird nicht gearbeitet. Auch z.B. die "Betriebsruhe" zwischen Weihnachten und Neujahr) in eine Lookup-Table als Datum (!!) eintrage.
Dann erzeuge ich eine komplette Zeitleiste (Reines Datum. Alle 365/366 Tage eines Jahres bzw. dynamisch auch über Jahreswechsel hinaus),
welche ich mit einen Left Join auf die LUT über das Datum verknüpfe.
Grober Algoritmus:
Laufe meine Zeitleiste ab, bis ich meinen Termin finde, schaue in die Spalte nebendran, ob diese NULL ist.
Falls Ja: "Gültiger" Tag für deinen Termin
Falls Nein (Der Join hat in der LUT was gefunden): Termin ist eine der Ausnahmen --> Wende jetzt festgelegte Regel an: vorwärts bzw. rückwärts solange bis ich eine NULL gemäss den Regeln treffe
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2919
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von m.fuchs »

Moderationshinweis: Simone ist leider auch nur eine Spammerin. Wenn auch clever gemacht, sie hat ihren Beitrag erst freigeben lassen und wollte ihn nun nachträglich um einen Spam-Link für eine Datingseite ergänzen. Unsere hochkomplexe Spammer-Abwehr findet aber auch so etwas heraus. Die gute "Dame" ist jetzt gesperrt, diesen Thread hier lassen wir aber so bestehen weil er ja inhaltlich nicht falsch ist.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

*facepalm*
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1837
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von fliegermichl »

Zvoni hat geschrieben: Mo 21. Sep 2026, 12:57*facepalm*
Haha, ich musste erst mal gockeln was das ist :-)

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

fliegermichl hat geschrieben: Mo 21. Sep 2026, 13:05
Zvoni hat geschrieben: Mo 21. Sep 2026, 12:57*facepalm*
Haha, ich musste erst mal gockeln was das ist :-)
Und jetzt hab ich Kopfkino, nachdem ich mir den Thread nochmal durchgelesen habe.

"Termin-SERIE" bekommt jetzt bei mir einen ganz anderen "Geschmack"..... :lol: :lol: :lol: :lol:
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Epcop
Beiträge: 176
Registriert: Di 29. Mai 2012, 09:36

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Epcop »

m.fuchs hat geschrieben: Mo 21. Sep 2026, 12:21 Moderationshinweis: Simone ist leider auch nur eine Spammerin. Wenn auch clever gemacht, sie hat ihren Beitrag erst freigeben lassen und wollte ihn nun nachträglich um einen Spam-Link für eine Datingseite ergänzen. Unsere hochkomplexe Spammer-Abwehr findet aber auch so etwas heraus. Die gute "Dame" ist jetzt gesperrt, diesen Thread hier lassen wir aber so bestehen weil er ja inhaltlich nicht falsch ist.
So macht das Internet keinen Spaß. War das wenigstens ein Mensch?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2919
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von m.fuchs »

Epcop hat geschrieben: Mo 21. Sep 2026, 14:36 So macht das Internet keinen Spaß. War das wenigstens ein Mensch?
Tja, keine Ahnung wie gut die LLM-Bots inzwischen sind um so etwas zu machen. Andererseits: es steht ja immer ein Mensch dahinter.

Internet macht aber sowieso keinen Spaß mehr. "KI"-Slop nimmt zu, die Webcrawler grasen alles ab und verarbeiten unsere Beiträge dann zu Datensalat um es dann wieder an die User zu verkaufen, etc.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7447
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: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von af0815 »

Das Thema ist trotzdem interessant, ich finde einen guten Kalender ist eines der schwierigsten Themen. Egal ob wer den Thread losgetreten hat, er ist und bleibt für mich interessant.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Zvoni
Beiträge: 742
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Kleines Projekt zum Wiedereinstieg: Terminplaner für mein neues Leben

Beitrag von Zvoni »

af0815 hat geschrieben: Mo 21. Sep 2026, 14:58 Das Thema ist trotzdem interessant, ich finde einen guten Kalender ist eines der schwierigsten Themen. Egal ob wer den Thread losgetreten hat, er ist und bleibt für mich interessant.
Könnten ja mal vielleicht ein "HowTo" machen mit/ohne Datenbank-Anbindung, wobei man an einer "Storage"-Methode in 99% der Fälle eh nicht vorbeikommt.

Wobei man natürlich klar unterscheiden muss, wie etwas "berechnet"/"gespeichert" wird, und wie etwas "angezeigt" wird
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Antworten