AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rahmenlose Form maximieren auf Sreen-WorkArea

Ein Thema von Guido Eisenbeis · begonnen am 25. Aug 2009 · letzter Beitrag vom 30. Aug 2009
Thema geschlossen
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#1

Rahmenlose Form maximieren auf Sreen-WorkArea

  Alt 25. Aug 2009, 00:40
Ein rahmenloses Fenster wurde von mir mit eigenen Min-, Max- und Close-Buttons ausgestattet. Beim Maximieren wird das Fenster jedoch nicht auf den Bereich von Screen.WorkArea vergrößert, sondern es verdeckt auch die Taskbar.

Erzeugt wird das rahmenlose Fenster mit:

Delphi-Quellcode:
// Form ohne Titelleiste und mit dünnem Rahmen erzeugen.
procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin
  Inherited Createparams(Params);
  Params.Style := (Params.Style or WS_POPUP) and not WS_DLGFRAME;
end;
Maximier-Befehle:

Delphi-Quellcode:
frmMain.WindowState := wsMaximized;
 oder:
PostMessage(frmMain.Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
Derzeit habe ich das gelöst, indem ich dem Form-BoundsRect das WorkAreaRect zuweise. Um das Form-Rect mit dem WorkArea-Rect zu vergleichen, frage ich Left, Right, Top, Bottom, ... einzeln ab. (Maximized-Zustand kann ich ja nicht abfragen.)

Fragen:

1. Wie kann ich das "echte" Maximieren auf das WorkArea begrenzen?

2. Wie vergleiche ich zwei Strukturen (TRects), ohne jedes einzelne Element zu vergleichen?
(Also eine Lösung ala "if (Rect1 = Rect2) then".) (<- Extra-Thread eröffnen?)

3. Wie erzeuge ich eine rahmenloses Fenster, das den Punkt "Maximieren" im System-Menü hat?

Guido.
 
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Rahmenlose Form maximieren auf Sreen-WorkArea

  Alt 29. Aug 2009, 20:43
Da das scheinbar keiner beantworten konnte oder wollte, habe ich mir selbst geholfen.

Zu Frage 1:
Da habe ich dies Beiträge gefunden: Kein Fenstertitel und trotzdem maximiert und BorderStyle=nsNone und WindowState=wsMaximized.
Vielleicht hilfts auch jemand anderem.

Zu Frage 2:
Falls hier niemand was weiß, werde ich dafür einen neuen Thread eröffnen.

Zu Frage 3:
Dito. Ergänzung: Ich suche eine Möglichkeit, das Systemmenü des Taskbareintrags um den Punkt "Maximieren" zu erweitern.

Guido.
 
Alt 30. Aug 2009, 07:38     Erstellt von hathor
Dieser Beitrag wurde von gelöscht.
Alt 30. Aug 2009, 12:41     Erstellt von Guido Eisenbeis
Dieser Beitrag wurde von gelöscht.
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Rahmenlose Form maximieren auf Sreen-WorkArea

  Alt 30. Aug 2009, 12:50
Bitte mache für jede Frage ein eigenes Thema auf. Das hat den Vorteil das im Titel sofort erkennbar ist um was es geht (und nicht nur die Kurzfassung zu einer Frage).
Zudem findet man später über die Suche schneller etwas wenn man das gleiche Problem hat.

Um zu verhindern das es hier ein riesen Durcheinander wird und kreuz und quer auf alle Fragen geantwortet wird mache ich hier mal zu.

*** geschlossen ***
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
 
Thema geschlossen


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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