Domino 9 und frühere Versionen > Entwicklung

Frame soll erkennen welche Bildschirmauflösung

(1/4) > >>

adminnaddel:
Hallo liebe Gemeinde,

innerhalb einer Rahmengruppe lasse ich dynamisch die frames füllen.
jedoch ist egal mit welchen Werten (Prozent oder Relativ) ich die frames füllen lasse, einige pages die in den frame gemoved werden, werden bei zB 800x600 nicht vollständig angeziegt.

Kann ich vorab nicht irgendwie feststellen, mit welcher Bildschirmgröße der Anwender arbeitet, um dann gößenangepasste Seiten in den frame zu schieben?

Gibt es dabei eine Art Automatismus?

Danke für eure Hilfe
PS: Ich vergaß natürlich zu sagen, daß es sich hierbei um eine Notes und keine Webanwendung handelt!

Ranki:
Hallöchen,

es gibt da eine Lösung mit Javascript. Das Script fragt die Auflösung ab und führt dann zum entsprechenden Fenster.

<SCRIPT language=JavaScript>
function aufloesung()
{
var Hoehe, Breite;
Hoehe=screen.height;
Breite=screen.width;

if (Breite>600 & Breite<800)
   {
   window.open ("klein.html");
   }

if (Breite>=800 & Breite<1024)
   {
   window.open ("mittel.html");
   }

if (Breite>=1024)
   {
   window.open ("gross.html");
   }
}
</SCRIPT>


So hast Du schonmal die Auflösungsabfrage und kannst entweder von Anfang an eine vorbestimmte komplette Seite laden oder auch einzelne Seiten den Frames zuordnen.

Schöne Grüße

Ranki

eknori (retired):
Ich habe das mal vor Jahren unter 4.6 gemacht ( mit Navigatoren )

In den "Initialize" Event des Datenbankscripts kommt folgender Code

Sub initialize()
   Dim session As New NotesSession
   
   Call session.SetEnvironmentVar("ScreenResolution",GetScreenResolution)
%REM
'     @If(@Environment("ScreenResolution") ="1024x768";
'                      (@Command([OpenNavigator];"Nav1024"));
'                      (@Command([OpenNavigator];"Nav800")))
%END REM
End Sub

In den "Postopen" trägst du

     @If(@Environment("ScreenResolution") ="1024x768";
                      (@Command([OpenNavigator];"Nav1024"));
                      (@Command([OpenNavigator];"Nav800")))

ein

' Declaration

Type RECT
   x1 As Long
   y1 As Long
   x2 As Long
   y2 As Long
End Type

Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function GetWindowRect Lib "user32" (Byval hwnd As Long, lpRect As RECT) As Long


Function GetScreenResolution As String
   Dim R As Rect
   Dim hWnd As Long
   Dim RetVal As Long
   hWnd = GetDesktopWindow ()
   RetVal = GetWindowRect(hWnd, R)
   GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function

Das sollte so auch mit Frames funktionieren.

eknori

ach ja, in einer anderen DB mache ich das ja mit Frames ( wobei ich allerdings eine Rolle zur Identifikation verwende )

@If(@IsMember("[Profi]"; @UserRoles);

                     (@Do(@SetTargetFrame("_top");
                                  @PostedCommand([OpenFrameset];"frmAdministrator")));
                      (@Do(@SetTargetFrame("_top");
                                    @PostedCommand([OpenFrameset];"frmMain"))))

adminnaddel:
Ja, dann sage ich schon mal danke an euch beide!

@Raki....das sieht mir doch eher noch einer Weblösung aus.
Trotzdem vielen Dank

@Eknori....das ja doll, recht herzlichen dank!
Werde ich mal sofort probieren!!! Vielen Dank

Viele Grüße

adminnaddel:
@Eknori,

nochmal eine Frage zu deiner Lösung:

Das setzt doch voraus, das in der Notes.ini die Variable gesetzt ist, dem ist aber nicht so!
Wo, wann, wie wird sie gesetzt!

MfG
Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln