AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen (erledigt)
Thema durchsuchen
Ansicht
Themen-Optionen

Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen (erledigt)

Ein Thema von DieDolly · begonnen am 2. Jan 2024 · letzter Beitrag vom 2. Jan 2024
Antwort Antwort
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen (erledigt)

  Alt 2. Jan 2024, 14:57
Im Prinzip geht es um Folgendes.

Ich habe ein Formular. Beim Beenden des Programms werden Größe, Position und WindowState gespeichert. Beim Öffnen des Programms wird das alles geladen und der WindowState Maximized angewendet, wenn der so gespeichert wurde.

Wenn ich das Formular jetzt kleiner mache und es nicht mehr maximized ist, soll es die alten, gespeicherten Werte annehmen, genau das passiert aber nicht.
Stattdessen ist es so in etwa 700x400px klein.

An welche Stelle oder in welches Event muss dann welcher Code, damit beim Wechsel von Maximized in Normal die Formgröße angewandt wird?
Ich habe es in OnCanResize versucht, hat aber keine Änderung gebracht.

Geändert von DieDolly ( 2. Jan 2024 um 19:18 Uhr)
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
324 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 15:13
Hallo,
evtl. im Ereignis

'OnCanResize'

http://docwiki.embarcadero.com/Libra...ol.OnCanResize

Gruß
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 15:25
Hatte mich vertippt, da hatte ich es schon versucht.

Selbst im OnResize funktioniert es nicht. Auch mit Hilfe dieses Codes nicht
https://stackoverflow.com/questions/...wstate-changes

Wenn ich bei wsNormal Width und Height setze, sehe ich dass es gesetzt wird. Aber kurz danach setzt Windows das Fenster wieder kleiner.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.014 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 15:33
Bei einem maximierten Fenster werden die Normal-Position und -Größe in einer WindowPlacement-Struktur gespeichert. Diese Struktur kann man mit Get/SetWindowPlacement lesen bzw. beschreiben. In TCustomForm.CMShowingChanged findest du eine Code-Sequenz, die das rcNormalPosition Feld der Struktur beschreibt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 15:36
Reicht das nicht schon, erst die Größe und dann den WindowState auf Maximized zu setzen?

Entweder habe ich etwas verpasst, aber das hier z.B. tut doch direkt was du möchtest:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   ClientWidth := 60;
   ClientHeight := 400;
   WindowState := TWindowState.wsMaximized;
end;
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 16:05
Komisch, das hatte ich auch getestet und funktionierte nicht. Jetzt funktioniert es.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen

  Alt 2. Jan 2024, 16:23
Entweder vor dem Maximieren die originale Größe in einer Variable speichern,

oder beim Beenden/Speichern vorher wieder unmaximieren normalisieren und dann die eigentliche Größe auslesen

oder Windows nach der originalen Größe fragen.
MSDN-Library durchsuchenGetWindowPlacement
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:16 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