AGB  ·  Datenschutz  ·  Impressum  







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

Abgeschnitten Formulare

Ein Thema von creehawk · begonnen am 14. Mär 2022 · letzter Beitrag vom 14. Mär 2022
Antwort Antwort
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#1

Abgeschnitten Formulare

  Alt 14. Mär 2022, 11:28
Moin Moin.

Ich weiß nicht so recht ob ich mit der Frage in der richtigen Abteilung bin, Multimedia vielleicht....


VCL Anwendung, in der FormCreate

Delphi-Quellcode:
 
  MainForm.Width := 1680;
  MainForm.Height := 855;
  MainForm.Left := (ABS(Screen.Width - MainForm.Width) div 2);
  MainForm.top := (ABS(Screen.Height - MainForm.Height) div 2);
Es wird die Formulargröße definiert und dient dann der Positionierung auf dem Monitor. Die Property des Formulars Position steht auf poDefault, BorderStyle is bsSingle. Klappt anstandslos.

Aber auf einigen wenigen unerer Monitore (alle zumindest Full-HD 1920*1024) werden so um die 20 Pixel unten abgschnitten, wobei die Form hübsch mittig sitzt.

Was kann das sein? Die Treiber sind aktuell bei den fraglichen Geräten.

creehawk

Gehe ich über ClientHeight/Width ist das Problem auch da....
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 11:38
Welchen Wert hat in diesen Fällen denn Screen.Height?
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 11:42
Ich kann mich an nichts genaues mehr erinnern, aber ich habe solche Sachen aus dem OnFormCreate -Event üblicherweise so verschoben dass sie beim ersten Aufruf von OnActivate ausgeführt werden.

Vielleicht hilft es ja...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 12:07
Wäre ein Position = psScreenCenter nicht zielführender?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 12:58
Moin Moin.

Ich weiß nicht so recht ob ich mit der Frage in der richtigen Abteilung bin, Multimedia vielleicht....


VCL Anwendung, in der FormCreate

Delphi-Quellcode:
 
  MainForm.Width := 1680;
  MainForm.Height := 855;
  MainForm.Left := (ABS(Screen.Width - MainForm.Width) div 2);
  MainForm.top := (ABS(Screen.Height - MainForm.Height) div 2);
Es wird die Formulargröße definiert und dient dann der Positionierung auf dem Monitor. Die Property des Formulars Position steht auf poDefault, BorderStyle is bsSingle. Klappt anstandslos.

Aber auf einigen wenigen unerer Monitore (alle zumindest Full-HD 1920*1024) werden so um die 20 Pixel unten abgschnitten, wobei die Form hübsch mittig sitzt.

Was kann das sein? Die Treiber sind aktuell bei den fraglichen Geräten.

creehawk

Gehe ich über ClientHeight/Width ist das Problem auch da....
Lass Dir doch mal zur Laufzeit die Größe ausgeben. Ich vermute vielleicht ein kleines Skaling Problem.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 15:04
Vielen Dank für die Vorschläge!

Der erste Preis geht an @Der schöne Günther : den obigen Codeschnipsel in OnActivate verschoben. Das war's.

Die Ausgabe der Formluarabmessungen zu verschiedenen Zeitpunkten gab übrigens immer das zurück was erwartet wurde.

Besten Dank an alle!

creehawk
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 16:45
Zitat:
den obigen Codeschnipsel in OnActivate verschoben. Das war's
...nicht ganz. OnActivate wird jedesmal aufgerufen, wenn das Formular den Focus erhällt. Wenn das nicht gewünscht ist, dann OnShow.
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Abgeschnitten Formulare

  Alt 14. Mär 2022, 17:08
Zitat:
den obigen Codeschnipsel in OnActivate verschoben. Das war's
...nicht ganz. OnActivate wird jedesmal aufgerufen, wenn das Formular den Focus erhällt. Wenn das nicht gewünscht ist, dann OnShow.
Dazu schrieb
Zitat von Der schöne Günther:
Ich kann mich an nichts genaues mehr erinnern, aber ich habe solche Sachen aus dem OnFormCreate -Event üblicherweise so verschoben dass sie beim ersten Aufruf von OnActivate ausgeführt werden.
Man beachte dazu des kleine Wort ersten vor dem Aufruf.
Da braucht man dann 'nen Schalter, der beim ersten Aufruf entsprechend gesetzt wird, so dass die Routine nachher nicht mehr aufgerufen wird. Dabei ist es dann egal, ob sie nach dem ersten Aufruf beim OnActivate oder beim OnShow nicht mehr aufgerufen wird
Und das hat den Vorteil, dass das Fenster nach dem ersten Aufruf nicht mehr an dieser Stelle neu positioniert wird, wenn es zur Progammlaufzeit mal an 'ne andere Stelle verschoben wurde.

Enthält das Ereignis OnActivate nur die Logik zur Positionierung, kann man statt 'nen Schalter zu benutzen auch einfach die Ereigniszuweisung entfernen OnActivate := Nil;
  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 18:10 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