![]() |
AW: Fensterposition zurücksetzen
In der VCL gibt es auch direkt TForm.Monitor für den Monitor wo die Form zum größten Teil drauf ist, (also der Monitor auf dem der Mittelpunkt der Form liegt)
aber im FMX nicht und in FMX.Forms gibt es nicht so eine Screen-Klasse, wie in VCL.Forms. Gut, man kann natürlich problemlos via den APIs in Winapi.Windows selber das mit den Monitoren machen, aber natürlich nur im Windows. |
AW: Fensterposition zurücksetzen
Liste der Anhänge anzeigen (Anzahl: 2)
Moin...:P
Meine neue Logic funktioniert nicht. :evil: Die einzelnen Monitore haben nicht die erwarteten Größen. (siehe Bilder) Kann jemand logisch erklären? Danke...:wink: |
AW: Fensterposition zurücksetzen
Die Koordinaten geben an, welchen Bereich des Desktops ein Monitor abdeckt.
|
AW: Fensterposition zurücksetzen
Hab jetzt nur in der VCL geguckt, da gibt es
![]() Und die Reihenfolge in der Liste ist einfach entsprechend dem, wie ![]() [edit] Nee, MonitorNum ist List.Count beim Einfügen, also das Gleiche. :oops: Tja, dann ist Windows böse zu dir. PS: ![]() |
AW: Fensterposition zurücksetzen
Zitat:
Das sind die Werte die im Tool zu sehen sind.
Delphi-Quellcode:
procedure TfoMonitor.FormShow(Sender: TObject);
begin grpMonitor.Caption := 'Monitornummer ' + IntToStr(Monitor.MonitorNum + 1); lbl5.Caption := IntToStr(Monitor.Left); lbl6.Caption := IntToStr(Monitor.Top); lbl7.Caption := IntToStr(Monitor.Height); lbl8.Caption := IntToStr(Monitor.Width); end; |
AW: Fensterposition zurücksetzen
PS: Hatte meine Antwort oben nochmal revidiert.
Delphi übernimmt einfach die Reihenfolge von der WinAPI und GetMonitorInfo(Monitor.Handle, ...) liefert auch keine zusätzlichen Infos. (nur Primary und die Rects) Wenn Windows das schon falsch rausgibt, dann kannst da über die TScreen-Klasse nichts weiter machen. Falls du die Reihenfolge zur Laufzeit geändert hast, dann "sollte" Delphi eigenlich drauf reagieren und die Daten neu einlesen. |
AW: Fensterposition zurücksetzen
Daß heist, daß man sich auf die Monitoranordnung, was aus dem System kommt, nicht verlassen kann. :evil: Darauf baut aber die Logik. :roll:
|
AW: Fensterposition zurücksetzen
Zumindestens nicht komplett.
Primary = 1, not Primary = >1 und die Positionen sollten ja stimmen. bist nicht der Einzige: ![]() ![]() ... > Wie Sie vielleicht wissen, listet Windows dieAnzeigegeräte in der Reihenfolge, in der Sie sie verbinden (oder in der Tat überhaupt nicht auf einer Regel basieren?). ![]() > Beachten Sie, dass sich einige Teile dieser Muster abhängig von der Installations Reihenfolge ändern können. vielleicht noch ![]() |
AW: Fensterposition zurücksetzen
Zitat:
Ich werde meine Logik anpassen. Ich werde mir die Monitore separat auslesen und die linke Seite passend setzen. :? |
AW: Fensterposition zurücksetzen
Ich hab die Lösung:
Du löst das Monitor identifizieren vom OS aus und via OCR liest du dann die Numern vom Screenshot ab. :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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