Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form2 auf monitor2 ??? (https://www.delphipraxis.net/44427-form2-auf-monitor2.html)

Bernd29bln 19. Apr 2005 12:07


Form2 auf monitor2 ???
 
Hallo,

Ich möchte das meine Form2 auf meinem 2ten Bildschirm angezeigt wird. wie geht das?

Mfg

Waldteufel 19. Apr 2005 12:13

Re: Form2 auf monitor2 ???
 
Hi.

Warum lässt du den Benutzer nicht selbst entscheiden, wo er das Formular gern hätte? ;-)

Ansonsten ist das wohl bei jedem Hersteller anders... Es müsste da eine API geben...

Bernd29bln 19. Apr 2005 12:18

Re: Form2 auf monitor2 ???
 
Ich hätte gern das es erstmal auf dem 2ten bildschirm läft .
später kann man dem user ja ne option machen, wo er den das fenster gerne hätte.

MfG

Waldteufel 19. Apr 2005 12:20

Re: Form2 auf monitor2 ???
 
Hi.

Dann fällt mir jetzt nur ein, dass du es schon in der IDE auf den 2. Bildschirm schiebst... :gruebel:

Michaela_ 19. Apr 2005 12:21

Re: Form2 auf monitor2 ???
 
Form auf zweiten Bildschirm:

Delphi-Quellcode:
  if Screen.MonitorCount > 1 then begin
    Form2.Left := Screen.Monitors[1].Left;
    Form2.Top:= Screen.Monitors[1].Top;
    end;
lg,
michaela

Bernd29bln 19. Apr 2005 12:39

Re: Form2 auf monitor2 ???
 
Danke Michaela für deine mühe, aber die form landet immer auf dem ersten bildschirm.

hier mal der code.

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
Var
  lDevMode : TDevModeA_new;
  lRes    : Cardinal;
begin
    FillChar(lDevMode, SizeOf(lDevMode), 1);

    lDevMode.dmSize                   := SizeOf(lDevMode);
    lDevMode.dmBitsPerPel             := 32;
    lDevMode.dmDisplayFrequency       := 85;    // alles hard kodiert für meinen 2. Monitor
    lDevMode.dmPelsWidth              := 1024;
    lDevMode.dmPelsHeight             := 768;
    lDevMode.Dual.Monitor.dmPosition.x := 1024; // die Weite/Auflösung des primären Monitors bzw. Lage des Monitors in Relation zum primären Monitor mit 0,0 oben links
    lDevMode.Dual.Monitor.dmPosition.y := 0;
    lDevMode.dmFields                 := DM_BITSPERPEL Or
                                          DM_DISPLAYFREQUENCY Or
                                          DM_PELSWIDTH Or
                                          DM_PELSHEIGHT Or
                                          DM_POSITION;

    lRes := ChangeDisplaySettingsEx( PChar('\\.\DISPLAY2'),
                             TDevMode(lDevMode),
                             0,
                             CDS_UPDATEREGISTRY,
                             0);
    if Screen.MonitorCount > 1 then begin
    Form2.Left := Screen.Monitors[0].Left;
    Form2.Top:= Screen.Monitors[0].Top;
    Form2.Show;

    If lres <> 0 Then
      ShowMessage('hat nicht geklappt');
end;
end;

MfG

Michaela_ 19. Apr 2005 12:46

Re: Form2 auf monitor2 ???
 
Monitors[1].Left

Hast du den zweiten Monitor auch als "Desktop" eingerichtet und nicht nur als "Kopie" der Primärschirmes?

lg,
michaela

Bernd29bln 19. Apr 2005 12:52

Re: Form2 auf monitor2 ???
 
Ja hab ich (Desktop Erweiterung)

MfG

supermuckl 19. Apr 2005 13:06

Re: Form2 auf monitor2 ???
 
du must erstmal den monitor 1 nehmen und nicht 0

und dann könnte es sein, das das form erst sichtbar sein muss und DANN verschieben.

klingt etwas komisch, ist aber bei vielen anwendungen bei mir nicht anderst gegangen (!)

Bernd29bln 19. Apr 2005 13:09

Re: Form2 auf monitor2 ???
 
Kann man die form nicht anders übergeben, an den monitor 2

MfG

Bernd29bln 19. Apr 2005 13:13

Re: Form2 auf monitor2 ???
 
hab ich geändert auf 1 geht net

Michaela_ 19. Apr 2005 13:18

Re: Form2 auf monitor2 ???
 
Hast du im Objektinspetor

Delphi-Quellcode:
  Form2.Position := poDefault;
gesetzt oder zentrierst du die Form auf den Bildschirm?

supermuckl 19. Apr 2005 13:25

Re: Form2 auf monitor2 ???
 
wie gesagt, versuch es, erst form2 anzuzeigen UND DANN zu verschieben !

roderich 19. Apr 2005 13:26

Re: Form2 auf monitor2 ???
 
steht Position vielleicht nicht auf poDesigned, sondern auf poScreenCenter o.ä. ?

Und was sagt der Debugger ?

Roderich

Michaela war schneller.... :wink:

Bernd29bln 19. Apr 2005 13:28

Re: Form2 auf monitor2 ???
 
die form2 wird ja angezeigt, halt nur auf monitor1.
es steht auf poDesigned.

MfG

roderich 19. Apr 2005 13:32

Re: Form2 auf monitor2 ???
 
schieb doch mal während der Laufzeit das Form auf deinen 2. Bildschirm und guck dir einfach mal im Debugger an, welcher Wert Form2.Left ist.

Meine Forms merken sich ihre Position selbst in der Regsitry und werden selbst auf einem 3-Screen-System beim nächsten Start wieder richtig angezeigt. Ich musste dort aber im Grafiktreiber (Matrox sowieso) eine Option setzen, daß neue Formulare NICHT immer auf dem Primärbildschrim erscheinen.

Was du mit deinem ChangeDisplaySettingsEx anstellst, ist mir übrigens komplett schleierhaft.

Roderich

Bernd29bln 19. Apr 2005 13:57

Re: Form2 auf monitor2 ???
 
na es ist so, ich habe eine redeon 9800 se die hat 3 ausgänge, um diese benutzen zukönnen muss ich mit ChangeDisplaySettingsEx arbeiten.

MfG

supermuckl 19. Apr 2005 14:14

Re: Form2 auf monitor2 ???
 
also ich stell das einfach in meinen anzeige optionen von windows ein, welcher moni an welchem port hängt ?! da muss ich nix coden


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