Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Rund um die LCL und andere Komponenten
hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von hum4n0id3 »

Hier war doch ein Entwickler der sein altes Delphi-Programm nach Lazarus portiert hat. Soweit ich mich erinnern kann hat er einen Trick benutzt um seine eigene Titelbar zu implementieren. Dabei hat er irgendwas von der Form-Klasse geerbt. Sorry an mehr erinnere ich mich nicht. :oops:

Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Mathias »

Ich sehe das so das in dem Fall dieses nebensächliche Feature von Lazarus nicht unterstützt wird, weil es nur auf die alte Windows GUI Zugriff hat. Unter Windows gibt es mit WPF, MAUI mittlerweile andere Ansätze, welche große Freiheiten lassen. Das alte GUI von Windows sollte für neue Software gar nicht mehr eingesetzt werden.
Eines darf man nicht vergessen, Lazarus achtet sehr stark darauf, das es auf fast allen Plattformen läuft. Und da muss man gewisse Kompromisse eingehen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von hum4n0id3 »

Das ist nichts mehr wo Lazarus ein alleinstehendes Merkmal hat. Ich kann meine Python/Qt Lösungen auch einmal schreiben und brauche es unter jeweiligen OS bloß auszuführen. Mit einer modernen GUI wohlgemerkt. Die Frage ist auch, muss jedes System unterstützt werden, oder bloß als eine Option für später herhalten.

Edit: viewtopic.php?f=55&t=13778&hilit=Delphi5

Hier hat der User Jim Knopf eine Software in Delphi 5 erstellt, welches eine eigene Titelbar besitzt.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
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: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von h-elsner »

Kann mir mal einer sagen, was eine "moderne" GUI ist? Sind das die, wo ein Glücksgefühl ausgelöst wird, wenn man die seit Tagen gesuchte Funktion endlich gefunden hat? Ich meine, nachdem man sich von Augenkrebs erholt hat.
Ich hatte mal einen HP Drucker mit sicherlich moderner Oberfläche des Steuerprogramms. Ich überlege heute noch, was der Button "Afslut" bedeutet. Wahrscheinlich irgendetwas ganz Modernes wofür ich schon zu alt bin.
Oder die Oberfläche der Heft-DVD der PC-Welt (die ich wegen dem Jahresarchivs und zum Amüsement als LINUX Nutzer gekauft habe). Sehr modern. Man kann zwar wie gewohnt mit Ctrl+Mausrad die Schrift vergrößern, aber das Fenster nicht - genial.
PC-Welt - eine Zeitung wo seitenweise beschrieben wird, wie man Win11 so einstellt, dass man es wieder ähnlich wie Win10 gescheit bedienen kann. Ich vermute Win11 hat die modernere Oberfläche?

Genug gemault! Ich wünsche allen ein gesundes und erfolgreiches Neues Jahr.

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

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von theo »

hum4n0id3 hat geschrieben:
So 31. Dez 2023, 16:57
Das ist nichts mehr wo Lazarus ein alleinstehendes Merkmal hat. Ich kann meine Python/Qt Lösungen auch einmal schreiben und brauche es unter jeweiligen OS bloß auszuführen.
Wenn dir Geschwindigkeit komplett egal ist...
Bin eben über das gestolpert, weil ich gerade mit PyVISA zu tun habe.
Python3 ist da oft weit um mehr als Faktor 10 langsamer als C oder FPC.

@h-elsner: +1 :lol:

@Alle: Es guets Neus!

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 338
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Niesi »

h-elsner hat geschrieben:
Mo 1. Jan 2024, 11:20

... was der Button "Afslut" bedeutet. Wahrscheinlich irgendetwas ganz Modernes wofür ich schon zu alt bin.

...
Das ist dänisch und heißt "Abbrechen".

Nicht sooo modern.

Und zu "moderner" GUI: in google "moderne GUI" eingeben und auf "Bilder" klicken. Da ist alles dabei ... :lol:

Ebenfalls ein gutes 2024 ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

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

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von theo »

Niesi hat geschrieben:
Mo 1. Jan 2024, 12:01
Und zu "moderner" GUI: in google "moderne GUI" eingeben und auf "Bilder" klicken. Da ist alles dabei ... :lol:
Also "modern" = schwarz? :lol:

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 338
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Niesi »

theo hat geschrieben:
Mo 1. Jan 2024, 12:55
Niesi hat geschrieben:
Mo 1. Jan 2024, 12:01
Und zu "moderner" GUI: in google "moderne GUI" eingeben und auf "Bilder" klicken. Da ist alles dabei ... :lol:
Also "modern" = schwarz? :lol:
Da war wirklich viel zu sehen - von bunt bis überwiegend schwarz, von scheußlich bis hübsch ... aber mich haben Moden noch nie sonderlich interessiert. Ein GUI muss übersichtlich, funktional, auf die Anwendung zugeschnitten und mit allen notwendigen Informationen ausgestattet sein. Das ist, denke ich, das Wesentliche. Und darauf versuche ich mich zu konzentrieren - wenn es dann noch gut aussieht, dann ist alles gut ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Mathias »

In Sache Oberfläche war mit diesem Widget der Höhepunkt erreicht, da war noch ein letzter grosser Wurf von M$, nachehr wurde alles wieder schlechter. Obwohl es viele Funktionen hatte, sah man auf den ersten Blick wo man reinklicken musste. Die Oberfläche konnte man voll seinen Bedürfnissen anpassen. Da Menü musste auch nicht zwingen oben sein. Auch die Buttons sahen auf den ersten Blich selbsterklärend aus.

https://jrsoftware.org/tb2k.php

Aber nein heutzutage macht man lieber Monochrom Buttons, und muss sogar den Speichernknopf suchen. Leider ist das auch Linux mitgegangen. Früher hatte jede App ein Disketten-Symbol und man wusste sofort wo drücken zum speichern.

Nur schon bei diesem einfachen Editor im Anhang muss man öffnen und speichern suchen.
Dateianhänge
Bildschirmfoto vom 2024-01-01 13-54-11.png
Bildschirmfoto vom 2024-01-01 13-54-11.png (20.92 KiB) 4836 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

kirchfritz
Beiträge: 172
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von kirchfritz »

Nach 39 Beiträgen habe ich bisher noch keinen Lösungsansatz dafür gefunden, ob es möglich ist, ein rahmenloses Fenster mit Hilfe des Hauptmenüs zu verschieben.
Dafür wurden kräftig die Pro und Kontra-Argumente der Sinnhaftigkeit meines Vorhabens abgewogen.
Ich gebe ja zu, dass es nicht unbedingt den Microsoft Richtlinien für Windows-GUI-Programme entspricht.
Aber interessieren würde es mich schon, wie man ein Fenster durch Mausklick in das MainMenu verschieben kann.

Mathias
Beiträge: 6209
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Mathias »

Aber interessieren würde es mich schon, wie man ein Fenster durch Mausklick in das MainMenu verschieben kann.
Ich denke, dies geht nur mit WinApi, wen überhaupt.
Kennst du ein Programm, welches dies hat ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Levario
Beiträge: 101
Registriert: Mo 1. Sep 2014, 14:32
OS, Lazarus, FPC: Windows 10 Pro Laptop (Lazarus 3.0.0 FPC 3.2.2)
CPU-Target: 64 Bit
Wohnort: Deutschland / NRW

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von Levario »

Allgemeines
ersteinmal verstehe ich alle die, die die Lazarus Standard Komponenten verwenden aber bitte berücksichtigt, das nicht jeder diese Entscheidung selber trifft.

Moderne GUI gleich schwarz :).

Ich denke es geht um viel mehr. Schöne ansprechende Designs für eine Anwendung, Login und Dropdown Menüs oder eine Suche im Kopfbereich.

Software Beispiele:
Wenn man sich heute MS Office ansieht, werden auch hier im Kopfbereich die Suche und das Profil angezeigt.
Firefox hat das Mainmenü im Kopf verbaut.
Thunderbird hat ein komplett neues Design bekommen und passt sich dem dunkel, hell oder Farbenmodus von Windows an.
Lazarus Anleitung: https://www.youtube.com/watch?v=ebGjqt5oufw (hier wird alles selbst programmiert)

Muss man es mögen?
Sicherlich nicht, aber es sind zu meist Kundenwünsche. Wenn eure Software die einzige ist die unter Windows im Dunkelmodus hell bleibt, kauft sie keiner. Das ist zumindest meine Erfahrung unter Windows. Unter Linux passt sich hier ja bei einer Lazarus Software das Design an. Ich habe aber keinen einzigen Kunden der im Betrieb Linux nutzt. Linux wird hier nur als Server verwendet.

Welche Gründe gibt es den Standard zu verändern für eine Firma?
Diese "modernen" GUIs werden immer beliebter und der Kunde wünscht sich dies. Ich habe mal bei einer Firma gearbeitet die durch Ihre Kunden dazu gezwungen war, hier Anpassungen vorzunehmen, da das Design als altbacken abgetan wurde. Der Kunde kauft dann halt woanders. Wie heißt es so schön das Auge ist mit. Unter Delphi lassen sich ja auch die Benutzeroberflächen anpassen. Ich habe auch schon Software für Kollegen aus der Nachtschicht entwickelt, hier war der Wunsch ein dunkles Design, um die Augen zu schonen. Sie verwenden auch Windows im Dunkelmodus "moderne" Software sollte sich an solche Wünsche des Nutzers anpassen. Auch die Lazarus-IDE sollte hier verschiedene Möglichkeiten bieten und nicht nur auf Windows vertrauen.

Lösung des Problems
Wir haben damals für unsere Software nicht das TMainmenu eingesetzt, sondern eine eigene Komponente genutzt, die sich dann auch farblich anpasst. Menüs kann man wie im Video oben auch sehr leicht selber erstellen. Diese sollten natürlich für alle Betriebssysteme für die sie entwickelt wird angepasst werden.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).

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

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von theo »

kirchfritz hat geschrieben:
Di 2. Jan 2024, 19:36
Nach 39 Beiträgen habe ich bisher noch keinen Lösungsansatz dafür gefunden, ob es möglich ist, ein rahmenloses Fenster mit Hilfe des Hauptmenüs zu verschieben.
Naja, dein Wunsch leuchtet offenbar nicht vielen ein und es scheint auch keinen einfachen Weg zu geben.
Eine Frage ist, warum du bei so einem "alternativen" Ansatz überhaupt noch das "altbackene" TMainMenu verwenden willst?
Mach doch einfach ein Panel hin - dort hast du ja die Maus Events - und lege da drauf wozu du Lust hast.
Untemenüs kannst du immer noch mit Hilfe von TPopupMenu erstellen.

diy
Beiträge: 1
Registriert: Mi 3. Jan 2024, 19:06
OS, Lazarus, FPC: Win10x64 / Lazarus 3.99 trunk / FPC 3.3.1 trunk
Wohnort: Ba-Ofr-By

Re: Rahmenloses Fenster mit Hilfe des MainMenus verschieben

Beitrag von diy »

Moin Zusammen,

von Natur aus bin ich eher Pascaler aus Gelegenheit,
seht mir die sicherlich vorhandenen Unzulänglichkeiten im Demo* bitte vorsichtshalber nach.

Das Original unter
https://forum.lazarus.freepascal.org/in ... ic=33844.0
habe ich etwas aufgehübscht.

*) getestet mit Win10x64
Verschieben-und-Ändern-mit-Menü.zip
(126.74 KiB) 76-mal heruntergeladen

Antworten