Form BorderStyle ohne "Schließen" RundButton
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Form BorderStyle ohne "Schließen" RundButton
Hallo,
um ein Form ohne Icons fester Größe zu erstellen habe ich unter Windows einfach bsSingle ausgewählt und die BorderIcons deaktiviert
und schon hatte ich ein Form fester Größe und ohne Icons min,max,schließen.
Unter Debian KDE gelingt es mir nicht das Schließen Icon aus der Kopfzeile zu entfernen.
Wie komme ich zu Ziel ?
Gruß Frank
um ein Form ohne Icons fester Größe zu erstellen habe ich unter Windows einfach bsSingle ausgewählt und die BorderIcons deaktiviert
und schon hatte ich ein Form fester Größe und ohne Icons min,max,schließen.
Unter Debian KDE gelingt es mir nicht das Schließen Icon aus der Kopfzeile zu entfernen.
Wie komme ich zu Ziel ?
Gruß Frank
Re: Form BorderStyle ohne "Schließen" RundButton
Da bewegt man sich im Bereich der Linux Fenstermanager und die bestimmen, was geht und was nicht.
Du kannst bsNone einstellen, dann kommt aber gar nichts mehr, außer das blanke Window.
Du kannst bsNone einstellen, dann kommt aber gar nichts mehr, außer das blanke Window.
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Form BorderStyle ohne "Schließen" RundButton
Hallo theo,
ja, dass scheint leider so zu sein - habe nun eine andere Lösung für mein spezifisches Problem gefunden.
ja, dass scheint leider so zu sein - habe nun eine andere Lösung für mein spezifisches Problem gefunden.
Re: Form BorderStyle ohne "Schließen" RundButton
kenne ich das Problem
Damit verhinderst du ein Schließen. Den Button oben rechts verhindert dies natürlich nicht, nur er ist dadurch ohne Funktion.
Code: Alles auswählen
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
abort;
end;
Damit verhinderst du ein Schließen. Den Button oben rechts verhindert dies natürlich nicht, nur er ist dadurch ohne Funktion.
Gruß, Michael
-
- Beiträge: 1912
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Form BorderStyle ohne "Schließen" RundButton
six1 hat geschrieben:kenne ich das Problem
Damit verhinderst du ein Schließen. Den Button oben rechts verhindert dies natürlich nicht, nur er ist dadurch ohne Funktion.
Wenn sollte man schon die CloseAction benutzen, dafür ist die ja da. Eine Stille Exception zu werfen ist extrem unsauber
Code: Alles auswählen
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
CloseAction := caNone;
end;
Je nach dem was man machen will, nehme ich entweder (wenn es eine hauptäschlich stilistische entscheidung ist) einfach BorderStyle := bsNone und implementiere die fehlende Funktionalität selber, oder wenn das schießen verhindert werden soll dann über die CloseAction. Aber CloseAction verhindert auch Alt+F4. Nur so nebenbei, wenn man das nicht verhindern will sollte man es nicht so machen
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Form BorderStyle ohne "Schließen" RundButton
Hallo Warf,
hmm gut der Runde Btn re oben ist nun ohne Funktion - wie kann ich nun programmtechnisch das Form schließen ?
hmm gut der Runde Btn re oben ist nun ohne Funktion - wie kann ich nun programmtechnisch das Form schließen ?
Re: Form BorderStyle ohne "Schließen" RundButton
Was ist denn das Problem, wenn der Schließen-Button in der Titelzeile vorhanden ist? Das ist ein allgemein übliches Element einer graphischen Benutzeroberflächen. Wenn das fehlt, werden die User vor den Kopf gestoßen.
Re: Form BorderStyle ohne "Schließen" RundButton
Eigentlich ist dafür auch OnCloseQuery gedacht. Dort kann man CanClose auf False setzen.
-
- Beiträge: 1912
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Form BorderStyle ohne "Schließen" RundButton
DL3AD hat geschrieben:Hallo Warf,
hmm gut der Runde Btn re oben ist nun ohne Funktion - wie kann ich nun programmtechnisch das Form schließen ?
Du kannst z.B. nen boolean setzen, der beim FormShow auf false gesetzt wird, und wenn du programatisch schließen willst auf True, dann hast du sowas:
Code: Alles auswählen
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
if FCanClose then
CloseAction := caFree // oder caHide, wenn man die Form nochmal braucht
else
CloseAction := caNone;
end;