Fenster maximieren

Rund um die LCL und andere Komponenten
Antworten
Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Fenster maximieren

Beitrag von Aliobaba »

Hallo,

ich habe nun sicherlich über 1 Jahr mit Linux Mint gearbeitet, vorher lange Zeit mit Kubuntu. Da ich aber mit Linux Mint nie wirklich glücklich war (regelmäßiges Einfrieren des Bildschirms, nur gelegentliches Anzeigen eins Fortschrittsbalkens beim Datei kopieren, Linkplatzierung auf dem Desktop umständlich usw. usw.) habe ich immer wieder versucht, wieder zu Kubuntu zurückzukehren. Aber da gab es stets Probleme beim Installieren von Lazarus, so dass ich bei der Version 1.8.4 (die aber stets problemlos gelaufen ist) zusammen mit Linux Mint geblieben bin.

Gestern Abend nun wieder ein Versuch mit Kubuntu, diesmal aber mit einem Installationsversuch mit "fpcupdeluxe". Nach Beachten dieser Hinweise:
http://wiki.freepascal.org/fpcupdeluxe/de
funktionierte die Installation völlig problemlos :-)
Danke für dieses tolle Programm!

Jetzt aber zu meiner Frage:
In meinem Projekt ("MyMemoryDB") möchte ich bei einigen Fenstern verhindern, dass mittels des kleinen Ikons per Maus ganz rechts oben an jedem Fenster das Fenster maximiert werden kann.
Bei identischem Quellcode ist unter Linux Mint die Einstellung folgende:

Fenster_Mint_2_LazarusVers_1_8_4.png
Fenster_Mint_2_LazarusVers_1_8_4.png (10.8 KiB) 1454 mal betrachtet

und der Effekt - wie gewünscht dieser:
Fenster_Mint_1_LazarusVers_1_8_4.png
Fenster_Mint_1_LazarusVers_1_8_4.png (18.68 KiB) 1454 mal betrachtet

Die kleinen zwei Pfeilchen rechts oben werden also nicht dargestellt. Das Maximieren des Fensters ist also - wie gewünscht - auf diese Weise mit der Maus nicht möglich.

Unter Kubuntu (wie gesagt bei identischem Quellcode) sieht das so aus:

Also identische Einstellung im Objekt-Inspektor:

Fenster_Kubuntu_2_LazarusVers_2_0_2.png
Fenster_Kubuntu_2_LazarusVers_2_0_2.png (14.84 KiB) 1454 mal betrachtet

Fenster_Kubuntu_1_LazarusVers_2_0_2.png
Fenster_Kubuntu_1_LazarusVers_2_0_2.png (12.01 KiB) 1454 mal betrachtet

.... und die Pfeilchen sind wieder da.
(Ein kleiner Bug?)

Viele Grüße
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Fenster maximieren

Beitrag von Warf »

Das liegt wahrscheinlich am Widgetset.

Kurze erklärung, Die LCL "malt" die Forms nicht selber, sondern verwendet dafür Widgetsets. Das heißt du hast die Möglichkeit verschiedene Backends zu verwenden, die sich dann darum kümmern das alles schön gezeichnet wird, und die LCL kümmert sich nur darum ein gemeinsames interface für all diese Widgetsets bereitszustellen.

Das heißt, unter Windows wird direkt WinForms aus der Windows system API verwendet, und da Lazarus versucht möglichst Delphi kompatibel zu sein ist das auch mehr oder weniger der "Goldstandard" an funktionalität (Fast alle komponenten gibt es 1-1 so in der WinAPI). Weitere backends die benutzt werden können sind Carbon und Cocoa unter mac und GTK und QT als Cross-Plattform Lösung.
Jedes dieser Backends ist anders aufgebaut, und da Lazarus sehr nah an der Windows API ist, kannst du dir wahrscheinlich vorstellen das es eine nicht triviale aufgabe ist identiches verhalten auf komplett unterschiedlichen Bibliotheken aufzubauen (und glaub mir, diese Backends sind absolut unterschiedlich in der Benutzung). Dementsprechend ist die entwicklung auch etwas langsamer, z.B. QT5 kam 2012 raus und das LCL interface dafür war erst 2016 "fertig" (fertig bedeutet hier halbwegs benutzbar). Der status ist aktuell so, GTK2 und QT4 sind vollständig Implementiert (allerdings sind die beiden Versionen aus 2011 und damit auch schon wieder 8 jahre alt, die Unterstützung sollte also bald sterben, auf die würd ich also nicht mehr setzen). QT5 ist mittlerweile gut benutzbar, und auch das was ich unter Linux benutze. GTK3 ist noch immer in der Alpha, und da die selbe Person die GTK3 implementiert auch QT5 wartet, würde ich nicht sonderlich viel drauf setzen das das bald fertig wird (gibt ja nur so viel was eine person tuen kann). Außerdem habe ich schon oft gehört das GTK3 im allgemeinen eine doch eher Unfreundliche API haben soll, was die LCL entwicklung auch nicht einfacher macht.

Was für eine Version du verwendest keine ahnung, je nachdem wie dein Lazarus kompiliert wurde benutzt es eine dieser Widgetsets (und damit auch alle Programme die du damit baust, zumindest als standard). Ich hab auf meinem Manjaro mal eben alle durchprobiert, und das verhalten was du beschreibst kommt bei mir nur bei GTK3 vor. Mein vorschlag also, benutz nicht ein Widgetset das noch in der alpha ist. Unter Tools->Lazarus Kompilieren einrichten kannst du das Widgetset ändern. QT5 hat zwar noch ein paar kleinere Probleme, kann ich aber dennoch empfehlen. Ansonsten halt QT4 oder GTK2. ABER wie gesagt, GTK2 und QT4 sind schon etwas älter, und zumindest bei GTK2 bin ich recht sicher das mit der stable version von GTK4 (ende dieses Jahr) der Support für GTK2 fallen gelassen wird und es damit effektiv tot ist (es wird nicht mehr gepatcht, und sehr wahrscheinlich auch auf kurz oder lang aus den Linux paketmanagern verschwinden sodass die Installation davon ein absoluter krampf wird). Für QT4 keine ahnung wie lang da der Support noch sein wird, aber auch nicht mehr allzulange.

Natürlich könnte man auch fragen wie sinnig es überhaupt ist so viele Widgetsets zu warten (Im vergleich zu: "wir benutzen jetzt ein Crossplattform framework wie QT und bleiben dabei"). Wärend die Idee zwar ganz nett ist die Wahl zwischen verschiedenen Optionen zu haben (vor allem die Nativen Frameworks unter Windows und Mac), in der Praxis sieht es so aus das du nur die Wahl hast zwischen einem funktionierendem, einem kaputten und 2 outdateten, und unter Mac OS ist das noch trauriger (denn da gtk2 oder QT4 zum laufen zu bekommen ist absolut bescheuert, und die beiden Nativen funktionieren auch eher schlecht als recht). Aber das ist nunmal der Stand.

Etwas mehr infos zu dem Stand der LCL findest du hier: https://wiki.freepascal.org/Roadmap


PS:
ich habe nun sicherlich über 1 Jahr mit Linux Mint gearbeitet, vorher lange Zeit mit Kubuntu. Da ich aber mit Linux Mint nie wirklich glücklich war (regelmäßiges Einfrieren des Bildschirms, nur gelegentliches Anzeigen eins Fortschrittsbalkens beim Datei kopieren, Linkplatzierung auf dem Desktop umständlich usw. usw.) habe ich immer wieder versucht, wieder zu Kubuntu zurückzukehren. Aber da gab es stets Probleme beim Installieren von Lazarus, so dass ich bei der Version 1.8.4 (die aber stets problemlos gelaufen ist) zusammen mit Linux Mint geblieben bin.


Die wahl zwischen zwei debian basierten Distributionen wie Kubuntu und Mint ist ja auch wie die wahl zwischen Pest und Kolera. Vor allem sind Mint und Kubuntu bis auf den Window Manager praktisch das selbe System (und Mint hat ein paar mehr scripts die man auch in der Performance richtig merkt). Arch (bzw. Manjaro, das Arch für dumme) ist toll, einfach Lazarus (gilt auch für praktisch alle anderen programme) über den Paketmanager installieren und man hat die neuste version, und für das wofürs kein Offizielles package gibt, gibts n aur. Auf debian hast du glück wenn du in den testing repositories "nur" 2 jahre alte software findest, und wenn man die Experimental repositories benutzt kann man auch genauso gut eine echte RR distro wie OpenSuSe oder Arch benutzen. Ein mittelding ist Fedora, was alle paar monate ne neue Stable version rausbringt, damit hat man immer die neuste Software, aber längere Testing Zyklen als bei arch (wo ganz gerne auch mal kaputte software in den Repos ist, meist nicht für lang, max ein paar stunden, wenn man aber zum falschen zeitpunkt ein update macht kannst du dir auch mal dein system zerschießen)

sierdolg
Beiträge: 66
Registriert: Mi 24. Okt 2012, 15:50

Re: Fenster maximieren

Beitrag von sierdolg »

ich habe nun sicherlich über 1 Jahr mit Linux Mint gearbeitet, vorher lange Zeit mit Kubuntu. Da ich aber mit Linux Mint nie wirklich glücklich war (regelmäßiges Einfrieren des Bildschirms, nur gelegentliches Anzeigen eins Fortschrittsbalkens beim Datei kopieren, Linkplatzierung auf dem Desktop umständlich usw. usw.) habe ich immer wieder versucht, wieder zu Kubuntu zurückzukehren. Aber da gab es stets Probleme beim Installieren von Lazarus, so dass ich bei der Version 1.8.4 (die aber stets problemlos gelaufen ist) zusammen mit Linux Mint geblieben bin.


Die wahl zwischen zwei debian basierten Distributionen wie Kubuntu und Mint ist ja auch wie die wahl zwischen Pest und Kolera. Vor allem sind Mint und Kubuntu bis auf den Window Manager praktisch das selbe System (und Mint hat ein paar mehr scripts die man auch in der Performance richtig merkt). Arch (bzw. Manjaro, das Arch für dumme) ist toll, einfach Lazarus (gilt auch für praktisch alle anderen programme) über den Paketmanager installieren und man hat die neuste version, und für das wofürs kein Offizielles package gibt, gibts n aur. Auf debian hast du glück wenn du in den testing repositories "nur" 2 jahre alte software findest, und wenn man die Experimental repositories benutzt kann man auch genauso gut eine echte RR distro wie OpenSuSe oder Arch benutzen. Ein mittelding ist Fedora, was alle paar monate ne neue Stable version rausbringt, damit hat man immer die neuste Software, aber längere Testing Zyklen als bei arch (wo ganz gerne auch mal kaputte software in den Repos ist, meist nicht für lang, max ein paar stunden, wenn man aber zum falschen zeitpunkt ein update macht kannst du dir auch mal dein system zerschießen)



Ein wenig OT, weil nur Nebenaspekt der Eingangsfrage - aber dennoch: wer bei kubuntu und mint landet, nicht ganz glücklich damit wurde und KDE benutzt, der sollte sich unbedingt die Distribution KDE Neon anschauen!

Dabei handelt es sich um die Referenzdistribution der Plasma-Entwickler, auf der logischerweise ihre Oberfläche am allerbesten läuft und am aktuellsten gehalten wird. Der Unterbau ist dabei technisch ganz einfach ein Ubuntu LTS, momentan also noch 18.04, ergänzt um ein eigenes Neon-Repository, das monatlich die aktuelle Plasma-Welt aktualisiert. Der Einwand, es gebe in Ubuntu (LTS) "nur zwei Jahre alte Software" relativiert sich dahingehend stark, als neben dem deb-Paketsystem ergänzend nicht weniger als snap, flatpak und appimage als ergänzende Quellen verfügbar sind - hier findet sich i.d.R. auch alles, was man dringend in brandaktueller Version braucht (etwa GIMP oder LibreOffice). Das dann aber ohne das Risko, das ganze System zu zerschießen - die LTS-Versionen von Ubuntu sind gut abgehangen und genau darum auch sehr robust, also der ideale Unterbau.

Plasmas Software-Anwendung "diskover" bündelt alle diese vier Welten sehr schön zusammen und ist mittlerweile aus den Kinderschuhen herausgewachsen. Für die Kommandozeile gibt es ein eigenes integrierendes Verwaltungswerkzeug, pkcon.

All das war für mich seit etwa 15 Jahren mit Debian und Ubuntu vor ca. einem Jahren ein echtes Aha-Erlebnis, das ich derart angenehm nicht erwartet hätte.

Community gibt es auch reichlich: Neben den legendären Ubuntu-Ressourcen, die ja auch für Neon "gelten", gibt es gute deutschsprachige und internationale Foren. Gebraucht habe ich es dennoch bisher wenig, denn Neon installiert man einfach und benutzt es :o)

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: Fenster maximieren

Beitrag von Aliobaba »

Danke für die ausführlichen Antworten!
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Antworten