![]() |
Form auf voller Bildschirmbreite anzeigen
Hallo,
ich möchte ein Fenster auf voller Bildschirmbreite (aber nicht maximiert) anzeigen. Unter Win7 oder XP ging das mit with form1 do begin top := 0; left := 0; width := Screen.Width; end; Unter Win10 ist das Fenster aber links uns rechts zu klein, es bleiben Ränder, oben nicht. Wie kann ich das verhindern? Danke und lieben Gruß, Theseus |
AW: Form auf voller Bildschirmbreite anzeigen
Abschätzen, wie breit die Ränder sind und dann ausprobieren:
Delphi-Quellcode:
Eventuell klappt das ja, ist aber nur geraten.
with form1 do
begin top := 0; left := -GeschätzterRand; width := Screen.Width + 2 * GeschätzterRand; end; |
AW: Form auf voller Bildschirmbreite anzeigen
Das ist wohl das Win10-Konzept.
Die Fenster werden m.E. etwas kleiner gezeichnet, als sie wirklich sind, so dass um den Rahmen innerhalb der eigentlich Fensterfläche noch ein Schatten gezeichnet werden kann. Deshalb reagiert der Mauszeiger auch schon neben dem "sichtbaren Rahmen". Ich finde das ziemlich bescheuert, aber so ist es eben unter Win10 gelöst. :-( |
AW: Form auf voller Bildschirmbreite anzeigen
Es gibt keinen Rahmen, bzw. es gibt Einen, aber der ist unsichtbar, drum bleibt halt der Rand, und die Maus reagiert darauf.
Blöd daran, wenn man jetzt den unsichtbaren Rand rausrechnet, dass es bestimmt wieder knallt, wenn man im Windows 11 mitbekommt es war scheiße und es wieder anders macht. |
AW: Form auf voller Bildschirmbreite anzeigen
Alternativ ClientWidth setzen - da ist der Rahmen dann nicht mit drin (unsichtbar oder nicht).
|
AW: Form auf voller Bildschirmbreite anzeigen
... da muss man dann aber auch auf Left achten usw.
Das ganze Konzept gehört m.E. überarbeitet. Aber das müsste natürlich MS machen. So lange kann man das nur irgendwie hinwurschteln, dass es für den eigenen Fall einigermaßen passt. |
AW: Form auf voller Bildschirmbreite anzeigen
Vielen Dank für die Kommentare!
Ich werde versuchen, mit ClientWidth und Verschiebung zu basteln, nach Prüfung ob Win10 genutzt wird... :| |
AW: Form auf voller Bildschirmbreite anzeigen
Hilft da nicht GetSystemMetrics(SM_CXSIZEFRAME); also für die Breite etwa so:
Delphi-Quellcode:
oder die Höhe:
dx := Winapi.Windows.GetSystemMetrics(SM_CXSIZEFRAME);
left := screen.WorkAreaLeft - dx; width := screen.WorkAreaWidth + 2*dx;
Delphi-Quellcode:
dy := Winapi.Windows.GetSystemMetrics(SM_CYSIZEFRAME);
top := screen.WorkAreaTop - dy; height := screen.WorkAreaHeight + 2*dy; |
AW: Form auf voller Bildschirmbreite anzeigen
Probiere es mal so:
Delphi-Quellcode:
if IsCompositionActive then
begin Form.Left := Form.BoundsRect.Left - Form.ClientOrigin.X; Form.ClientWidth := Screen.Width; end else begin Form.Left := 0; Form.With := Screen.Width; end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz