![]() |
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. |
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. |
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. |
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; |
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 02:45 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