AGB  ·  Datenschutz  ·  Impressum  







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

Zwei Forms - Zwei Monitore

Ein Thema von musicman56 · begonnen am 5. Apr 2013 · letzter Beitrag vom 5. Apr 2013
Antwort Antwort
musicman56
(Gast)

n/a Beiträge
 
#1

Zwei Forms - Zwei Monitore

  Alt 5. Apr 2013, 19:33
Hallo,

erst mal: ich hoffe, dass ich mit meinem Problem in der richtigen Abteilung gelandet bin.

Wie das Thema schon kurz beschreibt: Ich habe eine Anwendung mit zwei Formularen, wobei das zweite Formular auf einem zweiten Monitor angezeigt werden soll, wenn denn ein 2. Monitor überhaupt vorhanden ist.

Bisher hatte ich mit dieser Thematik nichts zu tun, und darum hab ich auch das Forum nach diesbezüglichen Informationen durchsucht. Was mich aber nicht weiter gebracht hat.

Über Screen.Monitors kann ich Infos über die angeschlossenen Monitore erhalten, aber wie weise ich meiner Form einen Monitor zu? Mit "DefaultMonitor" funktioniert es nicht.

Ich habe ausprobiert
- die 2. Form zur Laufzeit zu erzeugen oder automatisch
- die erste Form auf den Primär-Monitor und den 2.Monitor gezogen, und von dort aus Form2 erzeugt

Code:
procedure TFrmMoni1.Button2Click(Sender: TObject);
begin
  with TFrmMoni2.Create(Application) do
  try
    DefaultMonitor := dmDesktop; // und alle anderen auch ausprobiert...
    ShowModal;
  finally
    Release;
  end;
end;
Es ändert sich nichts. Die Frage ist also, was mache ich falsch?

Nachtrag: Wenn ich Form1 auf Monitor2 ziehe, und Form2 DefaultMonitor := dmDesktop zuweise, dann funktioniert es. Aber so soll es ja nicht sein: Form1 soll "automatisch" auf Monitor1 sein und Form2 auf Monitor2.

Geändert von musicman56 ( 5. Apr 2013 um 19:44 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Zwei Forms - Zwei Monitore

  Alt 5. Apr 2013, 20:14
Das wäre ein Beispiel für eine Zentrierte Ausgabe auf dem ersten nicht primären Monitor.

Delphi-Quellcode:
var
 i:Integer;
begin
  if Screen.MonitorCount > 1 then
    begin
       for i := 0 to Screen.MonitorCount-1 do
        begin
         if not Screen.Monitors[i].Primary then
            begin
              Left := Screen.Monitors[i].BoundsRect.Left + ((Screen.Monitors[i].BoundsRect.Right - Screen.Monitors[i].BoundsRect.Left) - Width) div 2;
              Top := Screen.Monitors[i].BoundsRect.Top + ((Screen.Monitors[i].BoundsRect.Bottom - Screen.Monitors[i].BoundsRect.Top) - Height) div 2;

              break;
            end;
        end;
    end;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Zwei Forms - Zwei Monitore

  Alt 5. Apr 2013, 20:17
Delphi-Quellcode:
procedure TForm2.MoveTo2ndMonitor;
begin
   if Screen.MonitorCount > 1 then
      with Screen.Monitors[1] do
      begin
         self.left := left;
         self.top := top;
      end;
end;

procedure TForm2.ToggleWindowState;
begin
   if WindowState = wsMaximized then
   begin
      WindowState := wsNormal;
      BorderStyle := bsSizeable;
   end
   else
   begin
      // ohne Rand im Vollbild auf 2. Monitor verlegen
      MoveTo2ndMonitor;
      BorderStyle := bsNone;
      WindowState := wsMaximized;
   end;
end;


// Doppelklick auf Formular schiebt Fenster im Vollbild auf 2. Monitor
// bzw. wieder zurück
procedure TForm2.FormDblClick(Sender: TObject);
begin
   ToggleWindowState;
end;
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#4

AW: Zwei Forms - Zwei Monitore

  Alt 5. Apr 2013, 20:47
Hallo,

wooowww...das ging aber schnell.

@Bummi: Ja, das war es! Im "OnCreate" ausgeführt, funktioniert prächtig!

@sx2008: Das probier ich auch noch aus.

Vielen Dank euch beiden!!!
  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 04:26 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