Problem mit TCalendarDialog

Für Fragen von Einsteigern und Programmieranfängern...
Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Problem mit TCalendarDialog

Beitrag von Justuv »

Hallo, ich finde da nichts passendes als Hilfe. Wenn ich in dem Dialogfenster unten(!) ein ausgegrautes Datum auswähle (z.B die 10 des Folgemonats) dann wird das selbige Datum (dann die 10) des aktuellen Monats aktiviert. So weit so gut. Klicke ich aber auf z.B. die 30 oder 31 des Vormonats dann steigt das Programm sofort noch bevor ich 'Abbrechen' oder 'Ok aktiviere mit einer Fehlermeldung komplett aus.
Wie lässt sich das verhindern? Wie fange ich so einen Fehler ab?

Danke für einen hilfreichen Tipp,
Grüße Jürgen
Dateianhänge
2023-02-28 21-01-50.png
2023-02-28 21-01-50.png (18.53 KiB) 1527 mal betrachtet

Benutzeravatar
KodeZwerg
Beiträge: 110
Registriert: Mo 6. Feb 2023, 11:04
OS, Lazarus, FPC: Win64, Lazarus 64 [trunk], FPC win64-win32 [stable]
CPU-Target: x86_64

Re: Problem mit TCalendarDialog

Beitrag von KodeZwerg »

Getestet mit Lazarus 2.3.0 (rev main-2_3-2889-g1b9d3d4cbf) FPC 3.2.2 x86_64-win64-win32/win64 unter Windows 64bit.
Da kann ich keinen Deiner Fehler feststellen.
Klick ich auf graue Zahlen dann springt bei mir auch der Monat korrekt, egal ob +1 oder -1 Monat.
Vielleicht liegt es an Deiner Lazarus/FPC Version oder Deinem OS?
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 282
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Problem mit TCalendarDialog

Beitrag von h-elsner »

Bei Lazarus 2.2.4 unter LINUX zeigt sich das Problem auch nicht. Alles funktioniert wie erwartet.

Gruß HE

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

Re: Problem mit TCalendarDialog

Beitrag von wp_xyz »

Verrate uns doch deine Lazarus/FPC-Version. Der Screenshot sieht nach Linux aus, und da haben die Leute oft uralte Versionen am Laufen. Mit Laz-2.3/FPC 3.2.2 tritt der Fehler unter Linux/Mint (gtk2) zumindest nicht auf.

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 587
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.1 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Problem mit TCalendarDialog

Beitrag von Niesi »

Auch unter Windows mit Lazarus 2.2.4 und FPC 3.2.2 funktioniert alles bestens.
Den wollte ich schon immer mal ausprobieren ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
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: Problem mit TCalendarDialog

Beitrag von af0815 »

Justuv hat geschrieben: Di 28. Feb 2023, 21:17Klicke ich aber auf z.B. die 30 oder 31 des Vormonats dann steigt das Programm sofort noch bevor ich 'Abbrechen' oder 'Ok aktiviere mit einer Fehlermeldung komplett aus.
- > Wie schon gesagt, welches System, welcher Lazarus/fpc (einfach Lazarus selbst fragen, der hat unter help -> About, dort
mit der Maus recht reinklicken, das eingebaut)
- > Was ist die Fehlermeldung ?
- > Ist der Debugger aktiv oder nicht ? Es gab mal Probleme mit dem Debugger bei älteren Lazarus Versionen bei einigen Dialogen des Systems
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Re: Problem mit TCalendarDialog

Beitrag von Justuv »

af0815 hat geschrieben: Mi 1. Mär 2023, 06:56
Justuv hat geschrieben: Di 28. Feb 2023, 21:17Klicke ich aber auf z.B. die 30 oder 31 des Vormonats dann steigt das Programm sofort noch bevor ich 'Abbrechen' oder 'Ok aktiviere mit einer Fehlermeldung komplett aus.
- > Wie schon gesagt, welches System, welcher Lazarus/fpc (einfach Lazarus selbst fragen, der hat unter help -> About, dort
mit der Maus recht reinklicken, das eingebaut)
- > Was ist die Fehlermeldung ?
Ich habe Ubuntu 20.04, Lazarus 2.2.0 und FPC 3.2.2

Etwas mehr zum Problem: Ich muss(!) im aktuellen Monat bleiben. Um nicht in einer extra Routine/ Schleife auf den korrekt ausgewählten Monat prüfen zu müssen habe ich 'dsNoMonthChange' auf True gesetzt. Dann passiert es. Meldung: "2023-2-31 is not a vaild date specification". Klar das Datum gibt es nicht. Aber es hätte ja auch nicht auswählbar sein sollen. Ist ja auch ausgegraut.
Übrigens, in Windows(11) funktioniert es auch nicht wenn auch in anderer Form. Dort wird 'dsNoMonthChange' auf True gesetzt einfach ignoriert und trotzdem bei Bedarf der Monat gewechselt. Bzw. man kann im Dialogfenster weiterhin den Monat wählen. Also muss(!) bei Windows eine Abfrage auf ausgewählten Monat folgen. . .

Jürgen

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 587
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.1 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: Problem mit TCalendarDialog

Beitrag von Niesi »

Das unter Windows trotz dsNoMonthChange := true der Monat beliebig gewechselt werden kann, kann ich bestätigen ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
KodeZwerg
Beiträge: 110
Registriert: Mo 6. Feb 2023, 11:04
OS, Lazarus, FPC: Win64, Lazarus 64 [trunk], FPC win64-win32 [stable]
CPU-Target: x86_64

Re: Problem mit TCalendarDialog

Beitrag von KodeZwerg »

Niesi hat geschrieben: Mi 1. Mär 2023, 09:33 Das unter Windows trotz dsNoMonthChange := true der Monat beliebig gewechselt werden kann, kann ich bestätigen ...
Ich auch, allerdings schmiert da der Dialog nicht ab, es wird schlichtweg ignoriert so scheint es.
Ich versuche mal dem Dialog auf den Zahn zu fühlen,
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Problem mit TCalendarDialog

Beitrag von theo »

Auf GTK2 geht das mit dem dsNoMonthChange.
Auch kein Absturz.

Lazarus 2.3.0 (rev main-2_3-2827-g64b27f1207) FPC 3.3.1 x86_64-linux-gtk2

Auf Qt5 funktioniert es allerdings nicht mit dem "Nichtwechseln". Trotzdem kein Absturz.
Wenn das jemand reparieren möchte: Bitte auf allen relevanten Plattformen (Win, GTK2, Qt5) testen, sonst geht es dann wieder nur auf einer und auf der anderen nicht, wie jetzt.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 282
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Problem mit TCalendarDialog

Beitrag von h-elsner »

theo hat geschrieben: Mi 1. Mär 2023, 10:18 Auf GTK2 geht das mit dem dsNoMonthChange.
Auch kein Absturz.
Doch, bei mir wird da auch eine Exception geworfen, weil es den 30. und der 31. im Februar nicht gibt, den grauen 10. zum Beispiel aber doch. Der kann dann auf den Februar gemappt werden.
Schöner und verständlicher für den Benutzer wäre allerdings, dass bei dsNoMonthChange die grauen (also außerhalb des Monats liegenden) Tage ignoriert werden.

Gruß HE

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: Problem mit TCalendarDialog

Beitrag von theo »

h-elsner hat geschrieben: Mi 1. Mär 2023, 10:31 Doch, bei mir wird da auch eine Exception geworfen, weil es den 30. und der 31. im Februar nicht gibt, den grauen 10. zum Beispiel aber doch. Der kann dann auf den Februar gemappt werden.
Schöner und verständlicher für den Benutzer wäre allerdings, dass bei dsNoMonthChange die grauen (also außerhalb des Monats liegenden) Tage ignoriert werden.
Wie meinst du das?
Bei mir gibt es keinen 30./31. Februar.

calendar_laz.png
calendar_laz.png (18.1 KiB) 1387 mal betrachtet

EDIT: OK, stimmt. Das passiert aber im Moment nur, wenn man im Obj. Insp. den Februar auswählt und dsNoMonthChange gesetzt ist.

calendar_laz2.png
calendar_laz2.png (68.77 KiB) 1369 mal betrachtet

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

Re: Problem mit TCalendarDialog

Beitrag von wp_xyz »

Habe gerade die CalLite-Komponente aktualisiert, so dass die Optionen coNoMonthChange (man kann den aktuellen Monat nicht verlassen) und coNoOtherMonthDays (die Tage aus den angrenzenden Monaten werden gar nicht angezeigt) unterstützt werden. Die Komponente ist auf https://sourceforge.net/p/lazarus-ccr/s ... s/callite/ (Download über svn oder als gezippten Snapshot).

Ist aber nur ein "nackter" Kalender, den man noch selbst in ein Formular einbauen muss, um einen Dialog zu erhalten.

[P.S.]
Im Anhang mit Dialog und allen benötigten Dateien (man muss nichts installieren).
Dateianhänge
callite_dialog.zip
(20.57 KiB) 66-mal heruntergeladen

Justuv
Beiträge: 13
Registriert: So 1. Dez 2013, 11:41

Re: Problem mit TCalendarDialog

Beitrag von Justuv »

Danke für die 'zip'. Hat geholfen und funktioniert auf Anhieb. Aber nur unter Linux. Bei windows erhalte ich:
"
Projekt kompilieren, Ziel: project1.exe: Exit code 1, Fehler: 1
unit1.pas(160,3) Fatal: Kann callite_dialog nicht finden verwendet von Unit1. Stellen Sie sicher, daß alle .ppu-Dateien eines Packages sich in dessem Ausgabeverzeichnis befinden. ppu im falschen Verzeichnis=D:\Projekte\09_03_2023\callite_dialog.ppu..
"
Egal was ich auch versuche, es will einfach nicht. Wo müssen die .ppu-Dateien sein? Was ist bei Windows anders als bei Linux?

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

Re: Problem mit TCalendarDialog

Beitrag von wp_xyz »

Keine Ahnung, was da los ist, bei mir funktioniert es auch unter Windows. Hast du alle Dateien ausgepackt? Beim Auspacken musst du die Verzeichnisstruktur beibehalten. Dann hast du die folgenden Dateien:
- project1.lpi und .lpr
- unit1.pas und .lfm
- third-party\calendarlite.pas
- third-party\calite_dialog.pas, und .lfm
In den Projekt-Optionen ist unter "Pfade" > "Andere Units" der Pfad "third-party" eingetragen, wo sich die vermisste Datei befinden soll.

Antworten