AGB  ·  Datenschutz  ·  Impressum  







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

Screen Problem

Ein Thema von TurboMagic · begonnen am 18. Sep 2025 · letzter Beitrag vom 19. Sep 2025
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.104 Beiträge
 
Delphi 12 Athens
 
#1

Screen Problem

  Alt Gestern, 15:44
Hallo,

ich versuche gerade meinem VCL Programm beizubringen zu erkennen wenn die gespeicherte
Bildschirmposition nicht mehr auf einem sichtbaren Bildschirm ist beim nächsten Start
das Fenster auf den sichtbaren Bildschirm zu verschieben. DIe Grundidee stammt auch hier
irgendwo aus dem Forum.

Betriebssystem ist Windows 11 und wenn ich mal alle Screens logge kommt das dabei raus,
obwohl das 2. Display (angeschlossen per USB-C -> VGA Adapter) in dem Moment gerade aus ist:

Code:
Screen: 0 / 0/0 / 1536/864
Screen: 1 / -1920/0 / 1920/1080
Mein Code (noch in D10.3.3):

Delphi-Quellcode:
  if (Screen.MonitorFromWindow(Application.MainForm.Handle, mdNull) = nil) and
     (Screen.MonitorCount > 0) then
  begin
    MyForm.Left := Screen.Monitors[0].Left;
    MyForm.Top := Screen.Monitors[0].Top;
  end;
Hat irgend jemand eine Idee woran das liegen könnte?
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.118 Beiträge
 
Delphi 12 Athens
 
#2

AW: Screen Problem

  Alt Gestern, 16:13
Ich hatte zuerst die einzelnen Koordinaten geprüft. Aber um den Code zu vereinfachen, verwende ich nun IntersectRect und prüfe damit, ob die gespeicherten Koordinaten auf einem der Monitore liegen. Wenn die Größe des Rechtecks der Schnittmenge ca. meinem ursprünglichen Rechteck entspricht, ist das Fenster (fast) vollständig sichtbar.

Darauf basierend kann man dann überlegen, was man macht. Ich speichere dafür auch neben dem Rechteck die Größe der Schnittmenge und die Position auf dem Monitor. Es kann ja auch sein, dass das Fenster nicht komplett auf dem Bildschirm sein soll.

Betriebssystem ist Windows 11 und wenn ich mal alle Screens logge kommt das dabei raus,
obwohl das 2. Display (angeschlossen per USB-C -> VGA Adapter) in dem Moment gerade aus ist:
Leider kommt es bei solchen Adaptern vor, dass Windows nicht erkennen kann, dass das Display aus ist. Das liegt dann an dem konkreten Adapter.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.104 Beiträge
 
Delphi 12 Athens
 
#3

AW: Screen Problem

  Alt Gestern, 19:54
Hallo,

danke für alle diese Hinweise.
Vor allem den mit dem Adapter werde ich morgen mal untersuchen.
Mal schauen was passiert, wenn ich das USB Kabel im laufenden Betrieb rausziehe...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.118 Beiträge
 
Delphi 12 Athens
 
#4

AW: Screen Problem

  Alt Gestern, 20:30
Wenn du das USB-Kabel ziehst, sollte das sofort erkannt werden. Es geht um die Signalleitungen, die bei VGA dazu führen, dass die Aktivität des Monitors durch die Grafikkarte erkannt wird. Konkret wird das Display heute in bestimmten Abständen nach den EDID-Daten gefragt. (Früher konnte nur der Widerstand gemessen werden, das wird wohl auch heute noch gemacht, wenn keine EDID-Daten kommen.) Da das gepollt wird, dauert es oft einen Moment, bis das Abziehen des Monitors erkannt wird. Dann meldet die Grafikkarte das dem Betriebssystem.

Bei den USB-Adaptern muss diese Logik komplett in dem Adapter enthalten sein. Das ist aber nicht immer der Fall.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.104 Beiträge
 
Delphi 12 Athens
 
#5

AW: Screen Problem

  Alt Gestern, 20:33
Jaja, die EDID Daten...
Hatte mal in den 90ern unter DOS in einer Systeminfo Anwendung diese Daten abgerufen und dargestellt...
Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.104 Beiträge
 
Delphi 12 Athens
 
#6

AW: Screen Problem

  Alt Heute, 08:30
Hallo,

nach Test durch Ausstecken des USB Kabels zum 2. Display funktioniert es jetzt wie gewünscht.
Grüße
TurboMagic
  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 23:16 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