in aSize angegebene Grösse wird ignoriert?

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
georg
Foren-Administrator
Foren-Administrator
Beiträge: 2360
Registriert: Fr, 08. Feb 2008 21:29

in aSize angegebene Grösse wird ignoriert?

Beitrag von georg » Di, 04. Jun 2019 19:49

Guten Abend,


gestern habe ich einem Kollegen geholfen, ein etwas seltsames Phänomen zu untersuchen. Dabei fiel mir etwas auf, dass ich nicht wirklich nachvollziehen kann:

Der Monitor hat eine Auflösung von 1920 * 1080 Pixel, läuft mit 100 %, soweit alles schön und gut. Das Programmfenster soll ebenfalls 1920 * 1080 Pixel gross sein. Läuft alles bestens, nur das Fenster ist nicht 1080 Pixel breit, sondern ein wenig kleiner. Frage ich über SetAppWindow():currentSize() die Grösse ab, wird {1920,1080} zurückgemeldet.

Ich habe das Ganze mal auf meinem Monitor (2560*1440) nachgestellt und habe den gleichen Effekt, d.h. hier meldet SetAppWindow():currentSize() dann {2560,1440} zurück.

Hat einer von Euch dafür eine Erklärung?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2174
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von Koverhage » Mi, 05. Jun 2019 7:12

Die Größe ist die Größe des Monitors, es gibt einen Rahmen der nicht benutzt werden kann.
Was passiert bei drawingarea:currentsize() ?
Gruß
Klaus

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2360
Registriert: Fr, 08. Feb 2008 21:29

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von georg » Mi, 05. Jun 2019 9:44

Hallo, Klaus -


also, bei meinem Monitor ist die :drawingArea {2544,1401} Pixel gross.

Ich habe da mal zwei Screenshots bei dem Kollegen angefertigt:
TV-ol.png
TV-ol.png (21.54 KiB) 441 mal betrachtet
Das ist der Bereich oben links, man sieht ein paar Pixel in der Horizontalen vom Desktop (innerhalb des TeamViewer-Fensters, wohlgemerkt), und das hier ist unten rechts:
TV-ur.png
TV-ur.png (26.46 KiB) 441 mal betrachtet
Auch hier erkennt man einige Pixel vom Desktop (die farbigen Elemente stammen von meinem Desktop).
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18675
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von Manfred » Mi, 05. Jun 2019 10:59

Georg,
hat es etwas mit underscan beim Monitor zu tun?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2360
Registriert: Fr, 08. Feb 2008 21:29

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von georg » Mi, 05. Jun 2019 11:56

Hallo, Manfred -


eher nicht. Man kann das Fenster nach rechts oder links (oben, unten) verschieben.

Was mich irritiert, ist dass der erzeugte Fenster kleiner ist als angefordert, aber trotzdem steif und fest behauptet, es wäre genauso gross wie der Desktop.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18675
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von Manfred » Mi, 05. Jun 2019 21:16

wie wir gerade getestet haben, ist es bei mir unter Win7 z.B. nicht. Alles geht komplett bis zu den Rändern.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11828
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von AUGE_OHR » Mi, 05. Jun 2019 22:09

georg hat geschrieben:
Mi, 05. Jun 2019 9:44
Ich habe da mal zwei Screenshots bei dem Kollegen angefertigt:
das ganze ist aber per Remote, oder :?:

wie ist der Monitor angeschlossen :?: VGA, DVI oder HDMI :?:
ist der Monitor "kalibriert" :?:

üblicherweise sollte der Monitor per DDC angesteuert werden aber dazu muss der Monitor ein Profi aufweisen.
DDC funktioniert aber nur bei den Digitalen Ausgängen d.h. VGA muss man manuell justieren.
gruss by OHR
Jimmy

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2360
Registriert: Fr, 08. Feb 2008 21:29

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von georg » Do, 06. Jun 2019 21:12

Hallo, Jimmy -


es passiert z.B. bei einem Notebook. Oder auch bei mir. Manfred hat's gestern per Fernwartung beobachtet.

Also, Bildschirmauflösung ist 2560*1440. Ich erstelle also einen XbpDialog() mit dieser Grösse, der den kompletten Desktop (incl. Taskleiste) überdeckt, nur am Rand sind rechts und links ein paar Pixel frei. Im Debugger frage ich SetAppWindod():currentsize() ab, die ist {2560,1440}.

Dann klicke ich auf den Maximieren-Button, und schwupps ist die Taskleiste sichtbar, und das Fenster nimmt die ganze Breite des Monitors ein. Im Debugger wieder SetAppWindow():currentSize() abgefragt, und was meinst Du, kommt als Ergebnis? {2566,1406}

Übrigens, ob es per remote Zugriff oder ganz lokal ist, macht keinen Unterschied:

Bild

Wie getippt, die ersten beiden Einträge sind nach Erstellen des Fensters, die anderen beiden nach dem Maximieren.
Dateianhänge
Video.zip
(835 Bytes) 8-mal heruntergeladen
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11828
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von AUGE_OHR » Fr, 07. Jun 2019 7:05

georg hat geschrieben:
Do, 06. Jun 2019 21:12
Dann klicke ich auf den Maximieren-Button, und schwupps ist die Taskleiste sichtbar, und das Fenster nimmt die ganze Breite des Monitors ein. Im Debugger wieder SetAppWindow():currentSize() abgefragt, und was meinst Du, kommt als Ergebnis? {2566,1406}
Ja, jetzt sehe ich was du meinst : es fehlen Pixel ... vom Frame !

unter Windows 7 gab es eine Konstante Border-Padding und 16 = 2 x 8 wäre der wert den es hatte.

IMHO "müsste" es korrekt unter Windows 7 laufen.
Alaska hatte irgendwann den visual Style angepasst ... aber dann kamen wieder der "dünnen" Frame

p.s. die Grössen Änderung bekommt man mit oDlg:drawingArea:CurrentSize()

Code: Alles auswählen

FUNCTION Switch(oDlg,oStatic)

   If oDlg:getFrameState()==XBPDLG_FRAMESTAT_MAXIMIZED
      oDlg:setFrameState(XBPDLG_FRAMESTAT_NORMALIZED)
      oStatic:Setcaption("Normal "+ VAR2CHAR( oDlg:drawingArea:CurrentSize()) )
   ELSE
      oDlg:setFrameState(XBPDLG_FRAMESTAT_MAXIMIZED)
      oStatic:Setcaption("Maximize "+ VAR2CHAR( oDlg:drawingArea:CurrentSize()) )
   ENDIF

   SetAppFocus( oDlg )
RETURN NIL
gruss by OHR
Jimmy

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2360
Registriert: Fr, 08. Feb 2008 21:29

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von georg » Fr, 07. Jun 2019 7:14

Guten Morgen, Jimmy -


wo soll denn dieses Switch() hin? Ein paar mehr an erklärenden Worten wäre richtig gut.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11828
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: in aSize angegebene Grösse wird ignoriert?

Beitrag von AUGE_OHR » Fr, 07. Jun 2019 21:19

georg hat geschrieben:
Fr, 07. Jun 2019 7:14
wo soll denn dieses Switch() hin? Ein paar mehr an erklärenden Worten wäre richtig gut.
das hatte ich nur zum testen.

Code: Alles auswählen

   oBtn := XbpPushButton():new( oDlg:drawingArea ,, {0,10}, {aSize[1],30},aPres )
   oBtn:caption := "max/min"
   oBtn:create()
   oBtn:activate := {|| Switch(oDlg,oStatic) }
gruss by OHR
Jimmy

Antworten