Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Mehrere Monitore - Fensterposition (https://www.delphipraxis.net/173198-mehrere-monitore-fensterposition.html)

API 12. Feb 2013 06:33

Mehrere Monitore - Fensterposition
 
Moin,

ich besitze 2 Monitore. Ein Programm ist auf dem 2. Bildschirm platziert und öffnet seine Dialogfenster leider immer auf dem primären Bildschirm. Was kann man dagegen tun, so dass diese auch auf demselben Screen geöffnet werden?

API

Bummi 12. Feb 2013 08:18

AW: Mehrere Monitore - Fensterposition
 
Wenn es eine Option ist poMainFormCenter oder poOwnerFormCenter für die Dialoge zu verwenden ...
Ansonsten, herausfinden auf welchem Monitor das Hauptfenster angezeigt wird und den Offset des Dialogs anpassen

Delphi-Quellcode:
Function GetMonitorIndex4Form(F:TForm):Integer;
var
 i:Integer;
 IR:TRect;
begin
  I := -1;
  for I := 0 to Screen.Monitorcount -  1 do
    begin
       IntersectRect(IR, Screen.Monitors[i].BoundsRect,F.BoundsRect);
       if EqualRect(IR,F.BoundsRect) then Result := i;
    end;
end;


.....

var
 mi:Integer;
begin
  mi := GetMonitorIndex4Form(self);
  if mi>-1 then
    begin
      FormX.Left := Screen.Monitors[mi].BoundsRect.Left + xxx;
      FormX.Top := Screen.Monitors[mi].BoundsRect.Top + yyy;
    end;
end;
Wenn das Form nicht ganz auf einem Monitor liegt (teilweise auf 2 Monitoren dargestellt wird) musst Du das ganze wunschgemäß anpassen.

Medium 12. Feb 2013 08:37

AW: Mehrere Monitore - Fensterposition
 
Je nach Delphi Version hat TForm auch eine Property "DefaultMonitor". Die ist mir auch lange nicht aufgefallen, aber in diesem Zusammenhang echt nützlich :)

API 12. Feb 2013 08:59

AW: Mehrere Monitore - Fensterposition
 
Danke für die Antworten. Die Frage habe ich unter "Klatsch und Tratsch" gestellt, da diese nichts mit Delphi zu tun hat...

jensw_2000 12. Feb 2013 09:24

AW: Mehrere Monitore - Fensterposition
 
Hat auch jemand eine Lösung für die Standard-Dialoge (TOpenDalog, TSaveDialog ...)?
Die gehen bei mir immer auf dem Monitor "1" auf und es gibt keine DefaultMonitor oder Position Properties.
Bei 4 Monitoren bekommt man schnell einen "Tennis-Nacken", wenn man permanent den Kopf drehen muss um seinen Dialog zu suchen :roll:

jensw_2000 12. Feb 2013 09:31

AW: Mehrere Monitore - Fensterposition
 
Zitat:

Zitat von API (Beitrag 1203038)
Danke für die Antworten. Die Frage habe ich unter "Klatsch und Tratsch" gestellt, da diese nichts mit Delphi zu tun hat...

Verstehe ich nicht ...

Es ist zwar "ganz unten" ein Effekt der Win32 API, aber wir als Delphi Programmierer erstellen unsere Dialoge doch über Delphi Klassen ...

Ist K&T wirklich die richtige Sparte für eine fachliche Anfrage?

Grüße
Jens

CCRDude 12. Feb 2013 09:42

AW: Mehrere Monitore - Fensterposition
 
Ich denke er spricht Programme an, die er nicht selber mit Delphi erstellt hat, sondern allgemein im Alltag verwendet.

jensw_2000 12. Feb 2013 09:53

AW: Mehrere Monitore - Fensterposition
 
Zitat:

Zitat von CCRDude (Beitrag 1203047)
Ich denke er spricht Programme an, die er nicht selber mit Delphi erstellt hat, sondern allgemein im Alltag verwendet.

Ahhh, Jetzt machts Klick :mrgreen:!
Manchmal denkt man wirklich um zu viele Ecken ....


Zitat:

Zitat von API
Was kann man dagegen tun, so dass diese auch auf demselben Screen geöffnet werden?

Bei einigen Grafikkartentreibern gibt es die Option, Dialoge auf dem "aktiven" Monitor anzuzeigen, auf dem sich gerade die Maus befindet ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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