Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Mainform minimieren aber Unterform stehen lassen (https://www.delphipraxis.net/192682-mainform-minimieren-aber-unterform-stehen-lassen.html)

Hobbycoder 10. Mai 2017 13:26

Mainform minimieren aber Unterform stehen lassen
 
Hi,

wenn ich meine Mainform minimiere, dann werden auch alle Unterformen mit minimiert. Das ist auch gut und sinnvoll so.
Jetzt möchte ich aber, dass eine Form stehen bleibt, und nicht minimiert wird.

Der Grund ist, dass ich eine Form als AppBar registrieren lassen will. Aber beim Minimieren wird diese eben auch mit minimiert.
Möglicherweise hätte ich die Mainform für die AppBar nehmen sollen. Aber der Gedanke, dass eine AppBar sinnvoll wäre, ist mir leider erst einige Zeit nach Beginnen des Projekts gekommen. Außerdem musste ich mich mit der AppBar erst mal etwas beschäftigen.

himitsu 10. Mai 2017 13:35

AW: Mainform minimieren aber Unterform stehen lassen
 
Die AppBar als MainForm wäre wohl der einfachste Weg.
Oder die AppBar als eigenständige Anwendung.

PS: MainForm ist das, was als erstes via Application.FormCreate erstellt wird (also die erste automatisch erstellte Form des Projektes),
oder was man nachträglich als MainForm definiert wird (Application.MainForm zuweisen).

Ansonsten mal in Forms.pas nachsehn. Dort wird ja die Application minimiert, wenn man die Application.MainForm minimieren will.
Also im Code danach suchen und dann schauen, ob/wie man das umgehen könnte.

SneakyBagels 10. Mai 2017 13:43

AW: Mainform minimieren aber Unterform stehen lassen
 
Mit dem Problem hatte ich auch schon zu tun und bis heute habe ich keine Lösung gefunden.
Wenn man ein Fenster über das _ im Titel minimiert, wird im WMSysCommand SC_MINIMIZE auftauchen.
Wenn man ein Fenster über einen Klick auf den Taskleisteneintrag minimiert, passiert das nicht. Das ist ein großes Problem.

Hobbycoder 10. Mai 2017 14:59

AW: Mainform minimieren aber Unterform stehen lassen
 
Very quick and dirty.

Mittels dieser Procedure
Delphi-Quellcode:
procedure SetAsMainForm(aForm:TForm);
var
   P:Pointer;
begin
   P := @Application.Mainform;
   Pointer(P^) := aForm;
end;
mache ich meine AppBarform zur Main und später wieder zurück. Klappt gut. Man muss nur bei den Aufräumarbeiten und so halt das ganze berücksichtigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz