Gui Problem

  • Moin,

    folgendes Problem:

    Verschiedene Monitor Grössen mit gleicher Auflösung 1280x1024. Einmal 15'' Röhre und einmal 17'' TFT. Die Gui auf dem 15'' wird 'zusammengeschoben' . Gui ist auf dem 17'' 'entwickelt. Das Problem dürfte bei anderen Monitor Kombinationen reproduzierbar sein ( z. Bsp. 22'' Entwicklung und 19'' / 17'' produktiv bei gleicher Auflösung ).

    Da für beide Monitore @DesktopHeight und @DesktopWidth den gleichen Wert ergeben, sind diese Parameter für eine flexible Gui Programmierung ( Höhe und Breite der Gui Elemente ) für unterschiedliche Monitor Grössen mit gleicher Auflösung nicht zu gebrauchen.

    ;-))

    Stefan

    Einmal editiert, zuletzt von ojo (4. Februar 2009 um 08:16)

  • Hmmmm ( betriebsblind ),

    vielleicht mute ich dem 'kleinen' wirklich zuviel zu. Teste das ganze mal mit nem 17'' Röhre. Ansonsten sollte ja eigentlich Pixel = Pixel sein.

    ;-))

    Stefan

  • ja klar ist pixel glei pixel

    aber 17 TFT ist ganz anders wie 15 Röhre

    aber ob es daran liegt, keine Ahnung... war nur eine Vermutung

  • Hallo,

    Zitat

    ja klar ist pixel glei pixel


    wo hast du diese Information denn her?
    Die Darstellung des pixels ist natürlich abhängig von seinem Seitenverhältnis. Und erst wenn das Seitenverhältnis(4:3 oder 16:9 oder 16:10 oder oder oder) gleich ist, dann ist bei gleicher Auflösung des Bildschirms auch die Darstellung des Bildschirminhalts gleich, völlig egal ob 14 zoll oder 22 zoll Bildschirmdiagonale.
    Warum werden wohl beim Abspielen von Filmen je nach Bildschirmformat diese netten, unterschiedlich dicken schwarzen Balken meist oben und unten an das eigentliche Bild gebastelt?
    Um also ein "quadratisches" GUI auch auf jedem Monitor quadratisch darzustellen, sollte nicht die eigentliche Auflösung, sondern das Seitenverhältnis des Monitors abgefragt werden....viel Spass dabei :D

    ciao
    Andy

    • Offizieller Beitrag

    Andy hat schon recht, das Problem ist das Seitenverhältnis. Der 15"-Röhrenmonitor hat ein Verhältnis von 4:3 beim 17" TFT stimmt das aber nicht ganz. Damit ein quadratischer Pixel auf beiden Monitoren gleich ist, müsstest Du den 15"-Monitor mit 1280x960 betreiben oder die GUI anpassen. Wir hatten diesbezüglich schonmal einen Thread (such mal nach: "_GetMaxResolution").

  • Moin,

    sowas dämliches. :cursing:

    Auf dem 15'' waren grosse Schriftarten (120 DPI) installiert. Dadurch verrutscht die GUI und es kommt zum Überschneidungseffekt. Liess sich auf dem 17'' reproduzieren.

    Werde diesen Ansatz mal versuchen zu lösen, oder weiss jemand adhoc (Lösung wird erst morgen früh angegangen) wie ich die installiert Schriftartengrösse rauskriege.

    Danke und Grüsse

    ;-))

    Stefan

    Wen es interessiert, meine Lösung für symmetrische Einstellungen (normalerweise Normalgrösse 96 DPI oder Groß 120 DPI):

    [autoit]

    ; Ermittlung der Schriftartgrösse ( 96 DPI / 120 DPI )
    ; Damit Steuerung der Grösse der GUI Elemente über globale Variable $stretch
    Func _stretch ()
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor" _
    , "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) then
    For $objItem In $colItems
    $x = $objItem.PixelsPerXLogicalInch
    $y = $objItem.PixelsPerYLogicalInch
    If $x = $y Then
    $stretch = ($objItem.PixelsPerYLogicalInch / 96)
    Return
    EndIf
    Next
    EndIf
    $stretch = 1
    EndFunc

    [/autoit]

    Verwendung bei Gui mit Parameter $stretch

    GUICreate ( "title" , width * $stretch, height * $stretch)

    Einmal editiert, zuletzt von ojo (5. Februar 2009 um 11:15)