ctGUI (Tabbed GUI auf Basis JvTabBar)
Re: ctGUI (Tabbed GUI auf Basis JvTabBar)
Kann es sein, dass das mit der Tab-Wechsel-Blockierung zusammenhängt? Ich meine: Bevor man einen Tab schließen kann, muss dieser aktiv sein. Wenn aber der Tab-Wechsel unterbunden ist, dann kann man auch das "x" auf dem zu schließenden Tab nicht erreichen.
In deinem FullDemo-Programm gibt es einen Haufen Speicherlecks. Es fehlt der Finalization-Abschnitt der uPageManager-Unit mit "ThePM.Free".
In deinem FullDemo-Programm gibt es einen Haufen Speicherlecks. Es fehlt der Finalization-Abschnitt der uPageManager-Unit mit "ThePM.Free".
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
war auch meine Vermutung -- habe aber gerade wenig zeit, das zu debuggen.wp_xyz hat geschrieben: So 12. Okt 2025, 12:51 Kann es sein, dass das mit der Tab-Wechsel-Blockierung zusammenhängt?
Wird etwas Zeit brauchen.
glaube ich sofort ;-(wp_xyz hat geschrieben: So 12. Okt 2025, 12:51 In deinem FullDemo-Programm gibt es einen Haufen Speicherlecks. Es fehlt der Finalization-Abschnitt der uPageManager-Unit mit "ThePM.Free".
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
ich fürchte, ich bin es nicht alleine.
Die Demo JvTabBar_PageList reagiert genau so wie meine Demo.
BeimClick auf das X wird JvTabBar1TabCloseQuery nicht oder nicht immer aufgerufen, demnach wird dann auch kein CanClose zurückgegeben
Die Demo JvTabBar_PageList reagiert genau so wie meine Demo.
BeimClick auf das X wird JvTabBar1TabCloseQuery nicht oder nicht immer aufgerufen, demnach wird dann auch kein CanClose zurückgegeben
Re: ctGUI (Tabbed GUI auf Basis JvTabBar)
Versuch mal die neue Version r9882
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
bin mit Testen noch nicht ganz durch, sieht gut aus, THX
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
also: Die Erlaubnis zum Verlassen des Tabs wird abgefragt und dann wird auch brav geschlossen.
Leider scheinen aktive (Selected) Tabs mit dem X nicht mehr zu schließen sein
Habe mit deiner Demo getestet (JvTabBar_PageList).
Demo öffnen -- Close Buttons checken
Tab Memo ist selected,
Direkt auf den Tab memo das x anklicken -- keine Reaktion
Wenn man das x eines anderen (also noch nicht selected) Tabs klickt, funktioniert es wie erwartet auch mit MessageDlg.
==> aktive Tabs lassen sich mit X nicht schließen
Leider scheinen aktive (Selected) Tabs mit dem X nicht mehr zu schließen sein
Habe mit deiner Demo getestet (JvTabBar_PageList).
Demo öffnen -- Close Buttons checken
Tab Memo ist selected,
Direkt auf den Tab memo das x anklicken -- keine Reaktion
Wenn man das x eines anderen (also noch nicht selected) Tabs klickt, funktioniert es wie erwartet auch mit MessageDlg.
==> aktive Tabs lassen sich mit X nicht schließen
Re: ctGUI (Tabbed GUI auf Basis JvTabBar)
Bist du sicher, dass du dir die aktuelle Version aus dem SVN gezogen hast? Da sollte genau das, was du beschreibst, behoben sein. (Beachte: "JvTabBar.SelectBeforeClose" sollte nicht auf True gesetzt sein, sonst brauchst du zwei Klicks)
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
Bin auf r9883.
Es geht hier erst einmal darum das Verlassen einer Seite zu verhindern.
Das erfolgt im JvTabBarTabSelecting (Sender ist der Source Tab und Item der Zieltab)
Wenn man durch eine checkbox (die in der eingedockten Seite abgefragt wird) verhindert dass ein Wechsel stattfinden darf, wird die Messagebox angezeigt und der Wechsel wird verhindert -- soweit alles ok.
Aber der Mauszeiger ändert sich in eine Art Verbotsschild.
Wenn ich mit diesen Verbotsschild-Mauszeiger über einen nicht selektierten Tab bewege, ändert er sich zu einem Pfeil mit Rechteck.
Klicke ich mit diesem Pfeil/Rechteck-Mauszeiger auf den Tab passiert etwas seltsames.
Es wird zwar JvTabBarTabSelecting mit den Messageboxen durchlaufen, TjvPagelist scheint richtig zu reagieren und wechselt nicht, aber der Tabbar wechselt auch nicht aber er verschiebt den Source Tab vor den ZielTab, eher wie bei einem Verschieben. Der Mauszeiger ist der gleiche wie beim Verschieben
Klicke ich aber nach dem Ersten (korrekterweise abgelehnten) Wechselversuch irgendwo hin (egal ob im Formular oder auch auf irgend ein beliebiges anderes Element das auch ein anderes Programm sien kann)
ändert sich der Mauszeiger wieder zu einem normalen Pfeil und alles läuft korrekt ab und funktioniert wie vor dem ersten Wechselversuch.
Der Mauszeiger ändert sich dann aber wieder auf das Verbotsschild.
Dein Testprogramm (demo JvTabBar_Pagelist) reagiert genau gleich, wenn man "Allow Tab Moving" anklickt. Nur die eine Option reicht schon für das seltsame Verhalten.
Offensichtlich denkt der TabBar, er wäre im Move-Modus, nimmt aber die Seite der Pagelist nicht mit
Es geht hier erst einmal darum das Verlassen einer Seite zu verhindern.
Das erfolgt im JvTabBarTabSelecting (Sender ist der Source Tab und Item der Zieltab)
Wenn man durch eine checkbox (die in der eingedockten Seite abgefragt wird) verhindert dass ein Wechsel stattfinden darf, wird die Messagebox angezeigt und der Wechsel wird verhindert -- soweit alles ok.
Aber der Mauszeiger ändert sich in eine Art Verbotsschild.
Wenn ich mit diesen Verbotsschild-Mauszeiger über einen nicht selektierten Tab bewege, ändert er sich zu einem Pfeil mit Rechteck.
Klicke ich mit diesem Pfeil/Rechteck-Mauszeiger auf den Tab passiert etwas seltsames.
Es wird zwar JvTabBarTabSelecting mit den Messageboxen durchlaufen, TjvPagelist scheint richtig zu reagieren und wechselt nicht, aber der Tabbar wechselt auch nicht aber er verschiebt den Source Tab vor den ZielTab, eher wie bei einem Verschieben. Der Mauszeiger ist der gleiche wie beim Verschieben
Klicke ich aber nach dem Ersten (korrekterweise abgelehnten) Wechselversuch irgendwo hin (egal ob im Formular oder auch auf irgend ein beliebiges anderes Element das auch ein anderes Programm sien kann)
ändert sich der Mauszeiger wieder zu einem normalen Pfeil und alles läuft korrekt ab und funktioniert wie vor dem ersten Wechselversuch.
Der Mauszeiger ändert sich dann aber wieder auf das Verbotsschild.
Dein Testprogramm (demo JvTabBar_Pagelist) reagiert genau gleich, wenn man "Allow Tab Moving" anklickt. Nur die eine Option reicht schon für das seltsame Verhalten.
Offensichtlich denkt der TabBar, er wäre im Move-Modus, nimmt aber die Seite der Pagelist nicht mit
Re: ctGUI (Tabbed GUI auf Basis JvTabBar)
Probier's mit r9884.
Beim Löschen eines Tabs, der nicht verlassen werden darf, kommen meiner Meinung nach zuviele Message-Boxen. Aber eigentlich sind das widersprüchliche Anforderungen, die Komponente kann nicht wissen, wie die Prioritäten sind. Daher bin ich der Meinung, dass der Programmierer selbst diesen Konflikt auflösen muss (erkennen, ob der zu löschende Tab gesperrt ist und entweder das Löschen wegen der Sperre verhindern. Oder die Sperre aufheben und nach dem Löschen den nächsten Tab markieren lassen).
Die am 13. Okt 2025, 12:37 gemachte Aussage "aktive Tabs lassen sich mit X nicht schließen" - ist da jetzt noch aktuell oder nicht?
Beim Löschen eines Tabs, der nicht verlassen werden darf, kommen meiner Meinung nach zuviele Message-Boxen. Aber eigentlich sind das widersprüchliche Anforderungen, die Komponente kann nicht wissen, wie die Prioritäten sind. Daher bin ich der Meinung, dass der Programmierer selbst diesen Konflikt auflösen muss (erkennen, ob der zu löschende Tab gesperrt ist und entweder das Löschen wegen der Sperre verhindern. Oder die Sperre aufheben und nach dem Löschen den nächsten Tab markieren lassen).
Die am 13. Okt 2025, 12:37 gemachte Aussage "aktive Tabs lassen sich mit X nicht schließen" - ist da jetzt noch aktuell oder nicht?
-
- Beiträge: 1195
- 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: ctGUI (Tabbed GUI auf Basis JvTabBar)
Test mit r9884:
aktive Tabs lassen sich mit X schließen - passt
Der Mauszeiger wechselt nicht die Form wenn ein Verlassen eines Tabs abgelehnt wird - passt.
Daher wird auch sauber gewechselt und nicht mehr verschoben -- passt
soweit ich das bis jetzt überblicken kann, scheint r9884 stabiler zu sein als alle vorher.
Ich muss ctGUI noch rundlutschen und gebe dir Bescheid wenn ich noch etwas finde
THX
aktive Tabs lassen sich mit X schließen - passt
Der Mauszeiger wechselt nicht die Form wenn ein Verlassen eines Tabs abgelehnt wird - passt.
Daher wird auch sauber gewechselt und nicht mehr verschoben -- passt
soweit ich das bis jetzt überblicken kann, scheint r9884 stabiler zu sein als alle vorher.
Ich muss ctGUI noch rundlutschen und gebe dir Bescheid wenn ich noch etwas finde
THX