Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
Bonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Bonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message <C048AA4E-C693-47DB-9913-D7A5BD11A986@microsoft.com>
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:
Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Bonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire à
la résolution actuelle de l'écran. En effet j'utilise une application access
multi utilisateurs avec des résolutions d'écrans différentes. Les formulaires
ont été conçu pour du 1280/1024 mais les portables ont des résolutions trés
différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End FunctionBonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info
Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End Function
Bonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message <C048AA4E-C693-47DB-9913-D7A5BD11A986@microsoft.com>
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:
Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End FunctionBonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info
As-tu regardé la valeur renvoyé par le InStr ?
En ce jour mémorable du vendredi 24/08/2007, tu as émis l'idée suivante:Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End FunctionBonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info
As-tu regardé la valeur renvoyé par le InStr ?
En ce jour mémorable du vendredi 24/08/2007, tu as émis l'idée suivante:
Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End Function
Bonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message <C048AA4E-C693-47DB-9913-D7A5BD11A986@microsoft.com>
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:
Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
As-tu regardé la valeur renvoyé par le InStr ?
En ce jour mémorable du vendredi 24/08/2007, tu as émis l'idée suivante:Merci pour votre réactivité et votre efficacité.
Il semblerait que ce soit la bonne piste.
Dommage dans leur exemple ils ont utilisé le redimensionnement automatique
de l'ensemble des controles d'un formulaire en fonction de la taille de la
fenetre.
Mais ils n'ont pas traité l'exemple d'un redimensionnement des formulaires
en fonction de la résolution d'écran de l'utilisateur.
J'ai donc intégré la fonction suivante aprés avoir chargé les modules: (la
fonction est indiquée dans la procédure)
Private Sub Form_Resize()
EXE_UpDateRes "frmManuResized"
End Sub
A la phase test, une 1ere fenetre m'indique que la résolution de l'écran est
différente de celle utilisé pour le développement.
Sur cette fenêtre il m'indique les valeurs de résolution de l'écran et de la
base
Il me demande si je veux mettre à jour la résolution des formulaires de
l'application. Je réponds OUI
Ensuite c'est le message d'erreur suivant:
Argument ou appel de procédure incorrect
Je clique sur Débogage
Voici le texte complet de la procédure avec des signes ++++entourant le
texte qui correspond au surlignage jaune
Bien Amicalement
DROQ
Option Compare Database
Option Explicit
'** Ratio = 0.8 '800*600 => 640*480
'** Ratio = 0.78125 '1024*768 => 800*600
'** Ratio = 0.625 '1024*768 => 640*480
'** Ratio = 1.25 '640*480 => 800*600
'** Ratio = 1.28 '800*600 => 1024*768
'** Ratio = 1.6 '640*480 => 1024*768
'** Déclaration des API
Public Declare Function apiGetDeviceCaps Lib "gdi32" Alias
"GetDeviceCaps" _
(ByVal hDc As Long, ByVal nIndex As Long) As Long
Public Declare Function apiGetDC Lib "user32" _
Alias "GetDC" (ByVal hWnd As Long) As Long
Public Declare Function apiReleaseDC Lib "user32" _
Alias "ReleaseDC" (ByVal hWnd As Long, _
ByVal hDc As Long) As Long
'** Déclaration des constantes
Public Const LOGPIXELSY = 90
Public Const LOGPIXELSX = 88
Public Const HorzRes = 8
Public Const VertRes = 10
Public Const HWND_DESKTOP = 0
Public Const SPI_GETWORKAREA = 48
'** Déclaration des variables
Public strRes As String
Public strResIni As String
Public ResHorzIni As Integer
Public ResVertIni As Integer
Public ResHorz As Integer
Public ResVert As Integer
Public RatioHorz As Single
Public RatioVert As Single
Function EXE_Test()
EXE_UpDateRes "frmManuResized"
End Function
Public Function EXE_UpDateRes(strForm As String)
'** Nécessite une propriété personnaliser à la base
'** appelée : "Résolution"
'** Utilises la fonction : "ResEcran()"
'** Utilises la fonction : "IniVariableRes()"
'** Utilises la fonction : "CalculRatio()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Dim strMsg As String
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
strResIni = .Properties("Résolution")
strRes = ResEcran()
If strRes <> strResIni Then
strMsg = "Votre résolution est différente de celle utilisée " _
& "lors du développement de cette application." _
& vbCrLf & vbCrLf & "Résolution lors du développement :" _
& vbCrLf & vbCrLf & vbTab & "- " & strResIni _
& vbCrLf & vbCrLf & "Résolution de votre poste :" _
& vbCrLf & vbCrLf & vbTab & "- " & strRes _
& vbCrLf & vbCrLf & "Voulez-vous que l'application " _
& "mette à jour la résolution de tous les formulaires " _
& "de l'application à jour ?"
If MsgBox(strMsg, vbYesNo, "Modification de la résolution") _
= vbYes Then
IniVariableRes
CalculRatio
Dim gdb As New classGridBag
DoCmd.OpenForm strForm, acDesign
gdb.InitForm Forms(strForm)
gdb.ReSizeForm Forms(strForm)
DoCmd.Close acForm, strForm, acSaveYes
gdb.DestroyForm: Set gdb = Nothing
EditPropRes
End If
End If
End With
End Function
Public Function apiHauteurEcran()
'** Résolution verticale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiHauteurEcran = apiGetDeviceCaps(hDc, VertRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLargeurEcran()
'** Résolution horizontale de l'écran
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLargeurEcran = apiGetDeviceCaps(hDc, HorzRes)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSX()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSX = apiGetDeviceCaps(hDc, LOGPIXELSX)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function apiLOGPIXELSY()
Dim hDc As Long
hDc = apiGetDC(HWND_DESKTOP)
apiLOGPIXELSY = apiGetDeviceCaps(hDc, LOGPIXELSY)
apiReleaseDC HWND_DESKTOP, hDc
End Function
Public Function ResEcran() As String
'** Donne la résolution en cours de l'écran
ResEcran = apiLargeurEcran & " x " & apiHauteurEcran & " (" &
apiLOGPIXELSX & "x" & apiLOGPIXELSY & ")"
End Function
Public Sub CalculRatio()
'** Déterminer l'échelle d'agrandissement
RatioHorz = ResHorz / ResHorzIni
RatioVert = ResVert / ResVertIni
End Sub
Public Function IniVariableRes()
'** Initialise les variables concernant les résolutions
ResHorz = apiLargeurEcran
ResVert = apiHauteurEcran
++++++ResHorzIni = Left(strResIni, InStr(strResIni, "x") -
2)+++++++++++++++++ ResVertIni = Mid(strResIni, InStr(strResIni, "x") +
2, _ (InStr(strResIni, "(") - 1) - (InStr(strResIni, "x") + 2))
End Function
Public Function EditPropRes()
'** Modifie la propriétés personnalisé : "Résolution"
'** de la base de donnée en cours
'** Utilises la fonction : "ResEcran()"
Dim db As Database
Dim prp As Property
Dim cnt As Container
Dim doc As Document
Set db = CurrentDb: Set cnt = db.Containers!Databases
Set doc = cnt.Documents!UserDefined
With doc
.Properties("Résolution") = ResEcran()
End With
End FunctionBonjour DROQ
Au moins un début de réponse si ce n'est une solution complète ici:
http://access.fr.free.fr/download.php?lng=fr
Dans ton message
du vendredi 24/08/2007 jour de Saint Barthélemy, tu as pris
l'initiative de nous narrer les faits suivants:Je voudrais intégrer une commande dans la procédure évènementielle dès
l'ouverture du formulaire pour mettre à l'échelle la taille d'un formulaire
à la résolution actuelle de l'écran. En effet j'utilise une application
access multi utilisateurs avec des résolutions d'écrans différentes. Les
formulaires ont été conçu pour du 1280/1024 mais les portables ont des
résolutions trés différentes: 1024/768 ou 1280/800 etc..
Il existe une fonction nommé "glrScaleForm" qu'on peut intégrer à la
procédure mais Access ne connait pas cette fonction. Cette fonction est
disponible dans un fichier glrfile.exe.
Quelqu'un possède t-il ce fichier ou peut on me donner d'autres
alternatives?
Bien Cordialement
DROQ
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info