AGB  ·  Datenschutz  ·  Impressum  







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

Ein Formular für alle Monitore, Hilfe bitte

Ein Thema von KodeZwerg · begonnen am 26. Aug 2020 · letzter Beitrag vom 27. Aug 2020
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Ein Formular für alle Monitore, Hilfe bitte

  Alt 26. Aug 2020, 13:02
Ich habe das mal folgendermaßen getestet:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Left:=Screen.DesktopLeft;
  Top:=Screen.DesktopTop;
  Height:=Screen.DesktopHeight;
  Width:=Screen.DesktopWidth;
  FormStyle:=fsStayOnTop;
end;
Wenn ich das richtig verstehe ist das genau das wonach ich gesucht habe, merci chérie!!
(Desktop = alles was ans System als Display angebunden ist)
(Screen = primäres Display)

Ist dein Fenster Vollbild, über dem Screen und vor der/den Taskleisten,
oder nur maximiert im "Arbeitsbereich" (WorkArea) ?
Das erzeugte Fenster verhält sich wie maximiert, aber manuell gesetzt. Es hat kein Window-State gesetzt und Position = poDesigned.
Ob die Taskbar mit überlappt wird oder nicht spielt bei mir keine Rolle, Hauptsache auf allen mir unbekannten Monitor Kombinationen erscheint mein Formular.

Das Fenster ist Borderless und Deine Informationen bzgl. Positionen sind umwerfend!!!

Auch werde ich das Iterieren und für jeden Monitor ein eigenes Formular erschaffen in Erwägung ziehen,
aber ich habe wie mabuse das problem, das ich zu Hause nur auf einen Monitor zurückgreifen kann,
sprich: testen ohne die nötige Hardware ist kompliziert.
Gruß vom KodeZwerg

Geändert von KodeZwerg (26. Aug 2020 um 13:07 Uhr) Grund: schreibfehler
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: Ein Formular für alle Monitore, Hilfe bitte

  Alt 26. Aug 2020, 10:23
@Kodezwerg
Da das Formular transparent ist, sieht man es ja auch nicht.

Damit wäre es doch wurscht, wenn es größer als alle Bildschirme ist. Mit der Maus kann man nur in dem Bereich navigieren, der sichtbar ist. (ok, nicht ganz, man kann die Maus auch aus dem Bildschirm rausschieben. Für den Fall würd' ich noch 'ne Action, 'nen ShortCut oder so einbauen, mit dem man den Cursor (ohne die Maus zu betätigen) in die Desktopmitte setzen kann, da weiß der User immer, wo die ist und kann sich von dort aus neu orientieren.)

Wäre es ein Ansatz in 'ner Schleife nach dem höchsten Bildschirm zu suchen und Self.Height auf den höchsten der gefundenen Werte zu setzen und desgleichen auch für die Breite:
Delphi-Quellcode:
  Self.Height := 0;
  for i := 0 to Screen.MonitorCount -1 do Self.Height := Max(Self.Height,Screen.Monitors[i].Height);
  Self.Width := 0;
  for i := 0 to Screen.MonitorCount -1 do Self.Width := Max(Self.Width,Screen.Monitors[i].Width);
Guck aml hier https://www.delphipraxis.net/53820-m...monitoren.html ob's weiterhilft.

Und dann mal mit der Suchmaschine Deiner Wahl: delphi screen.left multi monitor
Da scheint es noch etliches zu geben, was eventuell hilfreich sein könnte.

Wobei:

Die Idee von ghubi01, statt Self.Left, Self.Width ... Screen.DesktopLeft ... zu nehmen, erscheint mir die deutlich intelligentere Variante zu sein. Da nimmt einem wohl das Betriebsystem das ganze "Bildschirmanordnungsgewusel" ab.

Screen.DesktopLeft ist halt immer links, Screen.DesktopWidth ist immer die Breite.

Am Ende müsste das FormCreate von ghubi01 für die Problemlösung ausreichen.

@ghubi01
Danke für's testen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:30 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