Problem mit TCalendarDialog
Problem mit TCalendarDialog
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
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 (18.53 KiB) 1523 mal betrachtet
- 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
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?
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.
- 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
Bei Lazarus 2.2.4 unter LINUX zeigt sich das Problem auch nicht. Alles funktioniert wie erwartet.
Gruß HE
Gruß HE
Re: Problem mit TCalendarDialog
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.
- 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
Auch unter Windows mit Lazarus 2.2.4 und FPC 3.2.2 funktioniert alles bestens.
Den wollte ich schon immer mal ausprobieren ...
Den wollte ich schon immer mal ausprobieren ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- 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
- > Wie schon gesagt, welches System, welcher Lazarus/fpc (einfach Lazarus selbst fragen, der hat unter help -> About, dortJustuv 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.
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).
Re: Problem mit TCalendarDialog
Ich habe Ubuntu 20.04, Lazarus 2.2.0 und FPC 3.2.2af0815 hat geschrieben: Mi 1. Mär 2023, 06:56- > Wie schon gesagt, welches System, welcher Lazarus/fpc (einfach Lazarus selbst fragen, der hat unter help -> About, dortJustuv 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.
mit der Maus recht reinklicken, das eingebaut)
- > Was ist die Fehlermeldung ?
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
- 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
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 ...
- 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
Ich auch, allerdings schmiert da der Dialog nicht ab, es wird schlichtweg ignoriert so scheint es.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 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.
Re: Problem mit TCalendarDialog
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.
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.
- 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
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.theo hat geschrieben: Mi 1. Mär 2023, 10:18 Auf GTK2 geht das mit dem dsNoMonthChange.
Auch kein Absturz.
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
Re: Problem mit TCalendarDialog
Wie meinst du das?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.
Bei mir gibt es keinen 30./31. Februar.
EDIT: OK, stimmt. Das passiert aber im Moment nur, wenn man im Obj. Insp. den Februar auswählt und dsNoMonthChange gesetzt ist.
Re: Problem mit TCalendarDialog
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).
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
Re: Problem mit TCalendarDialog
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?
"
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?
Re: Problem mit TCalendarDialog
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.
- 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.