Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Anzeige eines Formulars auf einen dritten Monitor (https://www.delphipraxis.net/172576-anzeige-eines-formulars-auf-einen-dritten-monitor.html)

Kevin Unger 11. Jan 2013 16:40

Anzeige eines Formulars auf einen dritten Monitor
 
Hallo zusammen,

ich hoffe Ihr könnt mir ein wenig weiterhelfen da ich auch kein Fachmann in der Delphi Programmierung bin.

Es geht um folgendes:
Ich versuche ein einfaches Programm zu schreiben mit zwei Formularen.
In dem ersten Formular werden Zahlen in die Edit Felder geschrieben und werden dann auf dem zweiten Formular in den Label Feldern angezeigt nach Bestätigung des Buttons.
Bis hierhin alles wunderbar.
Das Problem ist, dass das zweite Formular nach Bestätigung des Buttons auf einen dritten Monitor geöffnet werden soll.

Hintergrund:
Arbeitsplatz mit zwei Monitoren.
Dritter Monitor ist ein Fernseher und hängt außerhalb des Raumes.
Somit ist es nicht möglich einfach das zweite Formular maximiert auf den dritten Monitor zu schieben.
Deswegen die feste Zuordnung des zweiten Formulars auf den dritten Monitor.

Vielen Dank für eure Rückmeldungen.

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 begin
  Form2.Visible := true;
  Form2.Label7.Caption := Edit1.Text;
  Form2.Label8.Caption := Edit2.Text;
 end;
end.

Andreas L. 11. Jan 2013 16:45

AW: Anzeige eines Formulars auf einen dritten Monitor
 
Habe ich dich richtig verstanden: Das Form soll auf den dritten Monitor platziert werden?

Mit Form.Left und Form.Top kannst du das Formular verschieben. Mit Form.WindowState := wsMaximized kannst du es maximieren. Die Koordinaten für den dritten Monitor kannst du über Screen oder WinAPI-Funktionen ermitteln.

Kevin Unger 11. Jan 2013 16:53

AW: Anzeige eines Formulars auf einen dritten Monitor
 
Vielen Dank für die schnelle Rückmeldung.
Genau, es soll nur Form2 maximiert auf den dritten Monitor angezeigt werden.
Form1 bleibt auf Monitor 1 oder 2.

Könntest du mir eventuell ein Beispiel nennen.
Habs schon mal mit Screen.Monitors[Monitor.MonitorNum] probiert aber bin ehrlich gesagt nicht ganz weitergekommen.

Uwe Raabe 11. Jan 2013 17:03

AW: Anzeige eines Formulars auf einen dritten Monitor
 
Erst mal musst du die Nummer des dritten Monitors herausfinden. Nehmen wir mal an es ist die 2 (0-basiert). Dann kannst du über Screen-Monitors[2] den Ziel-Monitor herausfinden. Setze dann die Left- und Top-Eigenschaften des Forms auf die gleichnamigen des Monitors und das Form auf wsMaximized.

Z.B. so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  M: TMonitor;
begin
  M := Screen.Monitors[2];
  Form2.Left := M.Left;
  Form2.Top := M.Top;
  Form2.WindowState := wsMaximized;
  Form2.Visible := true;
  Form2.Label7.Caption := Edit1.Text;
  Form2.Label8.Caption := Edit2.Text;
end;

Kevin Unger 11. Jan 2013 17:21

AW: Anzeige eines Formulars auf einen dritten Monitor
 
Vielen Dank.
Hat einwandfrei funktioniert :-D
Super Forum und vor allem extrem schnelle Antworten von euch. Hätte ich nicht mit gerechnet.
Danke nochmal.


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