lay-out met en zonder schuifbalken

Status
Niet open voor verdere reacties.

Johgs

Gebruiker
Lid geworden
19 mei 2011
Berichten
337
Ik heb een dB die oorspronkelijk gebouwd is voor grote schermen, de pagina's hebben vaste maten en daar is de lay-out op afgestemd. De laatste tijd zijn er een aantal gebruikers die de voorkeur geven aan gebruik van de eigen laptop (ipv thin clients met groot scherm). Probleem is dat een aantal van hen van die kleine mini's gebruiken. Gevolg is dat diverse pagina's niet op scherm passen.
Daarom wil ik de dB aanpassen met schuifbalken. "Probleem" is dat dan aan de rechterkant een smalle strook wordt toegevoegd waarin de schuifbalk zijn plaats vindt. Echter op groot scherm verdwijnt die schuifbalk omdat deze niet nodig is, prima, alleen blijft de toegevoegde strook wel staan met gevolg dat veel pagina brede onderdelen nu rechts net niet meer paginabreed zijn, ziet er wat vreemd uit. Betreft met name wat "balken" die de pagina's opdelen, koppen en voeten met een andere achtergrondkleur.

Is hier een optie voor om dit te voorkomen?
 
Is er een optie? Nee. Een formulier heeft een bepaalde breedte en die bepaal je bij het ontwerpen. Dat je rekening houdt met schuifbalken is dan prima, maar de consequentie is dat als de schuifbalken niet nodig zijn, dat je een kleine strook over hebt. Je kunt, als je met Popup schermen werkt, de breedte van het scherm wel opvragen, en de breedte van het scherm of de plek ervan op dat scherm precies instellen. Ik gebruik bijvoorbeeld deze techniek om een scherm te centreren:
Code:
Private Sub Form_Load()
Dim iBr As Long, iHo As Long, iL As Long, iT As Long
Dim arrS As Variant
    '-------------------------------------------------------------------------------------------------------------
    'Navigatiepaneel verbergen en formulier opschuiven
    '-------------------------------------------------------------------------------------------------------------
''    DoCmd.RunCommand acCmdWindowHide
    On Error Resume Next
    arrS = Split(SchermResolutie, "|")
    iBr = CInt(arrS(LBound(arrS)))
    iHo = CInt(arrS(UBound(arrS)))
    iL = ((iBr * 15) - Me.InsideWidth) / 2
    iT = ((iHo * 15) - Me.InsideHeight) / 2
    DoCmd.MoveSize iL, iT
    Me.knOK.BackColor = 1336242
End Sub

En in een module:
Code:
Option Compare Binary
Option Explicit
Dim RGBKleur As Long
Public Const Kleur As Long = 8224255 '7593912 '14408684

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

Private Type POINTAPI
    X As Long
    Y As Long
End Type

' These give the size of the whole screen.
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1

' These give the usable size of the screen.
Private Const SM_CXFULLSCREEN = 16
Private Const SM_CYFULLSCREEN = 17

Private Const LOGPIXELSX = 88        '  Logical pixels/inch in X
Private Const LOGPIXELSY = 90        '  Logical pixels/inch in Y
Private Const adhcTwipsPerInch = 1440

Private mptCurrentDPI As POINTAPI
Private mptTwipsPerPixel As POINTAPI
Private mptCurrentScreen As POINTAPI

Code:
Function SchermResolutie() As String
Dim X  As Long, Y   As Long
Dim MyMessage As String
Dim MyResponse As VbMsgBoxResult
     
    X = GetSystemMetrics(SM_CXSCREEN)
    Y = GetSystemMetrics(SM_CYSCREEN)
    SchermResolutie = X & "|" & Y
    
End Function

Op basis van de uitgelezen schermresolutie kun je dus de breedte van je formulier ook aanpassen.
Persoonlijk zou ik in dit soort 'problemen' dus geen enkele seconde van mijn kostbare tijd steken :)
 
Het betreft vooral schermen met de nodige menu knoppen die verwijzen naar de diverse onderdelen (die vaak ook weer meerdere menukeuzes bieden alvorens je bij de invulpagina's komt).
Gebruik maar beperkt pop-ups en dat zijn gelukkig kleintjes die altijd wel passen en goed gecentreerd binnen komen.

Maar inderdaad een klein cosmetisch probleempje. Vind sowieso dat ze eigenlijk maar de beschikbare thin cliënt moeten gebruiken, al was het maar omdat de laptops met een te trage verbinding werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan