AGB  ·  Datenschutz  ·  Impressum  







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

Main.Width und Height

Ein Thema von Willie1 · begonnen am 25. Aug 2020 · letzter Beitrag vom 5. Sep 2020
Antwort Antwort
Seite 1 von 2  1 2      
Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Main.Width und Height

  Alt 25. Aug 2020, 18:54
Hallo Leute,
ich bin dabei ein altes mit Delphi 2005 erstelltes Programm auf Delphi Berlin um zu stellen. (hat sich sicher herum gesprochen) Ich bin fast fertig. Eines bekomme ich nicht hin, Debuggen bringt mich nicht weiter.
Mein Programm merkt sich beim Beenden MainForm.Width und Height. Beim Starten liest es die Werte aus und stellt das Programm-Fenster auf die gleiche Größe. Falls die Maße nicht da oder fehlerhaft sind, starte das Programm mit den Default-Werten 637x475. Das hat jetzt 12 Jahre geklappt. Unter Delphi Berlin sind Width und Heigth immer 360 und 240 und das Fenster lässt sich nur mit Klick auf den System-Button auf maximale Größe bringen. Was zum Teufel hat sich da geändert, mit Uni-Code kann das doch nicht zu tun haben. Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#2

AW: Main.Width und Height

  Alt 25. Aug 2020, 19:11
Beim Starten liest es die Werte aus und stellt das Programm-Fenster auf die gleiche Größe.
Und wann genau, z.B. in welchem Ereignis, passiert das? Es ist durchaus möglich, dass das Setzen der Größe funktioniert, aber durch spätere Ereignisse bzw. VCL-Code wieder rückgängig gemacht wird. Der Debugger in Verbindung mit Breakpoints an den passenden Stellen ist bei Ermittlung sicherlich hilfreich.

Grüße
Dalai
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Main.Width und Height

  Alt 25. Aug 2020, 19:16
Hast du da irgendwelche Werte in Form.Constraints? Was für ein BorderStyle? Ich mache was ähnlches udn da klappt problemlos. Du musst das irgendwie die Maximalgrösse der Form verändet haben.

Übrignesn noch ein Tipp: Speichere die ClientWidth/Height und nciht die Fensterbreitete/Höhe. Je nach Windows hat sonst Clientbereich falsche Dimensionen, je nach dem wie breit die Windowsborder beim aktuellen Windows gerade sind,
  Mit Zitat antworten Zitat
Renate Schaaf

Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Main.Width und Height

  Alt 25. Aug 2020, 19:21
Vielleicht hat es mit den in den folgenden links beschriebenen Problemen zu tun:

https://stackoverflow.com/questions/...-to-podef?rq=1

https://stackoverflow.com/questions/...ssigned-values

Um den letzteren bug musste ich auch schon drumrumlavieren.
Renate
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Main.Width und Height

  Alt 26. Aug 2020, 08:51
Zusätzlich zur Größe vielleicht auch den Zustand merken: Minimized/Maximized/...?
Ralph
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: Main.Width und Height

  Alt 26. Aug 2020, 11:30
Was steht denn in der Eigenschaft Position des Formulars?

Das müsste auf poDesigned stehen, ansonst kann man speichern und lesen, was man will, das wird dann (zumindest bei Delphi 7) kommentarlos ignoriert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Main.Width und Height

  Alt 26. Aug 2020, 12:10
Ignoriert wird es nicht wirklich. Diese Position wird im Show neu verechnet und überschreibt es wieder.

Ein Teil der Positionsberechnung ist schon vorm OnCreate (bei Erstellen/Laden der Form) und en Teil kommt erst beim OnShow dran. (leider nicht alles ideal verteilt)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

AW: Main.Width und Height

  Alt 26. Aug 2020, 17:25
Hallo,
im Objekt-Inspektor steht bei MainForm:
Position poScreenCenter
WindowsState wsNormal
Width 637 Height 900
OnCreate-Event lese ich die gespeicherten Werte aus, sonst Default setze MainForm.Width und MainForm.Height. Ich habe sie mit dem Debugger überprüft.
Delphi-Quellcode:
with Config do begin
    ReadInteger('Width',637,tmpi,true);
    MainForm.Width:=tmpi;
    ReadInteger('Height',475,tmpi,true);
    MainForm.Height:=tmpi;
onShow-Event habe ich WindowState := wsMaximized; hinzu gefügt. Bringt nichts.
Das muss doch einen Unterschied zwischen Delphi 2005 und Delphi Berlin geben. Mit dem alten Compiler übersetzt ist alles in Ordnung. Willie.
Miniaturansicht angehängter Grafiken
screenshot-2020-08-26-17.08.41.jpg  
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (26. Aug 2020 um 17:31 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
657 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Main.Width und Height

  Alt 26. Aug 2020, 17:55
Hallo Renate,
ich habe es so gemacht:
self.SetBounds(1,1,wi,he); und es klappt. Left und Top spielen keine Rolle, da ich Postion auf poScreenCenter gesetzt habe, nehme ich an!
SetBounds habe ci hier noch nie gesehen oder benutzt.
Danke und Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Main.Width und Height

  Alt 26. Aug 2020, 19:56
Genau, rate mal was poScreenCenter macht?
Es überschteibt nach deinem OnShow die Koordinaten.

DEFAULT, aber in der DFM/FormDesigner oder allerspätestens im OnCreate ... die Positionen werden, wenn in der DFM, noch vor OnCreate geladen und können überschrieben werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Aug 2020 um 19:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 03:59 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