krldev.de


Direkt zum Seiteninhalt

Access-Fenster auf verschiedene Auflösungen skalieren

MS-Access

Access-Fenster auf verschiedene Auflösungen skalieren:

 

Verwendung:

MS-Access

 

Beschreibung:

Bei der Entwicklung von Datenbanken ist darauf zu achten, daß die Datenbank auf Systemen mit unterschiedlichen Auflösungen zum Einsatz kommt. Es ist also sicherzustellen, daß alle Formulare, Berichte, Menüs und Symbolleisten auch bei niedrigeren Auflösungen (z. B. 800*600 oder 640*480) komplett angezeigt werden. Um das zu prüfen, muß das Access-Fenster auf die in Frage kommenden Auflösungen eingestellt werden. Anschließend ist dann zu prüfen, ob Menüs und Symbolleisten passen und ob in Formularen Steuerelemente wie Textfelder nicht etwa am rechten Rand abgeschnitten werden.

 

Lösung:

Die Lösung liegt in der API-Funktion "MoveWindow()". Sie wird normalerweise dazu benutzt, ein Fenster an eine bestimmte Position zu setzen. Sie nimmt aber auch Parameter entgegen, über die sich die Breite und Höhe des Fensters bestimmen läßt. Mit folgendem Code läßt sich eine entsprechende Funktion in die Access-Anwendung implementieren.

 

  • In einem neuen Modul (Namen "mod_ScaleAccWin") fügst Du den folgenden Code ein.

 

Private Declare Function MoveWindow Lib "user32" _
  (ByVal Hwnd As Long, _
   ByVal X As Long, _
   ByVal Y As Long, _
   ByVal nWidth As Long, _
   ByVal nHeight As Long, _
   ByVal brepaint As Boolean) _
  As Boolean


Public Sub ScaleAccWin(intX As Integer, intY As Integer)
  MoveWindow Application.hWndAccessApp, 0, 0, intX, intY, 1
End Sub

 

  • Anschließend legst Du ein neues Formular an (Namen "Access-Fensterauflösung ändern) und platzierst in diesem so viele Schaltflächen wie Du unterschiedliche Auflösungen einbauen möchtest. Benenne und beschrifte die Schaltflächen entsprechend.

  • In den Ereignisprozeduren "Beim Klicken" jeder Schaltfläche trägst Du "ScaleAccWin <x-Wert>, >y-Wert>" ein (siehe Beispiel unten).

 

Private Sub cmd1280x1024_Click()
  ScaleAccWin 1280, 1024
End Sub

 

Die Anweisung sorgt dafür, daß das über "Application.hWndAccessApp" adressierte Access-Fenster zunächst an die Position "0,0" ganze oben links verschoben und dann dessen Breite und Höhe auf die gemäß Parameter "intX" und "intY" übergebenen Werte gesetzt wird. Der fünfte Parameter "1" sorgt für eine sofortige Aktualisierung des Fensterinhaltes.

Zu beachten ist, daß die API-Funktion "MoveWindow()" die Position, Breite und Höhe eines Fensters nicht über das hinaus setzen kann, was das System technisch unterstützt. So wird beispielsweise die Taskleiste beim Setzen der Höhe (oder der Breite, wenn vertikal angeordnet) automatisch berücksichtigt und die Einstellung einer Auflösung größer als die aktuelle Desktop-Auflösung unterbunden. Letzteres ist aber nicht weiter dramatisch, da es ja in erster Linie darum geht, den Einsatz auf Systemen mit geringerer Auflösung zu prüfen.


Copyright ©2002 - 2013 Laubensdörfer Reinhold. Alle Rechte vorbehalten. (letzte Aktualisierung: 18 Aug 2013) | info@krlweb.de

Zurück zum Seiteninhalt | Zurück zum Hauptmenü