1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| 'Les appels de fonctions....
'Private Sub Form_Load()
' Init_Nom_INI
' GetFormINI Me
' ....
'End Sub
'Private Sub Form_Unload(Cancel As Integer)
' .....
' PutFormINI Me
'End Sub
'Private Sub Form_Resize()
' If LitFichIni then exit sub
' .....
'End Sub
Option Explicit
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public LitFichIni As Boolean
Public NomINI As String
Public Chemin As String
Sub Init_Nom_INI()
Chemin = App.Path & "\"
NomINI = Chemin & App.EXEName & ".INI"
End Sub
'--------------------------------------
'Restitue les coordonnées de la fenêtre qui sont dans dans # INI
' exemple d'appel
'GetFormIni "NomForme"
' NomINI (nom fichier INI) doit être déjà initialisé
'mettre la ligne suivante dans la routine <Resize> de la forme
' if LitFichINI=true then exit sub
'sinon, exécute la routine Resize à chaque ligne
'lors de la dernière ligne, laisse exécuter la routine Resize
'--------------------------------------
Sub GetFormINI(F As Form)
Dim W As Integer
Dim Rubriq As String
Rubriq = F.Tag
If Rubriq = "" Then
Rubriq = F.Caption
End If
LitFichIni = True
F.WindowState = GetPrivateProfileInt(Rubriq, "WindowState", 0, NomINI)
If F.WindowState <> 0 Then
'Si WindowState = minimisé, génére erreur si dimentionnement
'de la fenêtre
LitFichIni = False
Exit Sub
End If
W = GetPrivateProfileInt(Rubriq, "Width", 0, NomINI)
If W < 100 Then
CentreForme F
LitFichIni = False
Else
F.Width = GetPrivateProfileInt(Rubriq, "Width", 4000, NomINI)
LitFichIni = False
F.Height = GetPrivateProfileInt(Rubriq, "Height", 3000, NomINI)
F.Top = GetPrivateProfileInt(Rubriq, "Top", 100, NomINI)
F.Left = GetPrivateProfileInt(Rubriq, "Left", 100, NomINI)
End If
End Sub
'----------------------------------------
'Sauve les coordonnées de la fenêtre dans # INI
' exemple d'appel dans form Unload
'PutFormIni "NomForme" ou ME
'Le nom sous lequel ont veut mémoriser doit être placer dans Form.Tag
'Si Form.Tag est vide sauve avec le nom de la fenêtre
' NomINI (nom fichier INI) doit être déjà initialisé
'----------------------------------------
Sub PutFormINI(F As Form)
Dim Rubriq As String
Rubriq = F.Tag
If Rubriq = "" Then
Rubriq = F.Caption
End If
ret% = WritePrivateProfileString(Rubriq, "WindowState", Str$(F.WindowState), NomINI)
If F.WindowState <> 0 Then Exit Sub
ret% = WritePrivateProfileString(Rubriq, "Width", Str$(F.Width), NomINI)
ret% = WritePrivateProfileString(Rubriq, "Height", Str$(F.Height), NomINI)
ret% = WritePrivateProfileString(Rubriq, "Top", Str$(F.Top), NomINI)
ret% = WritePrivateProfileString(Rubriq, "Left", Str$(F.Left), NomINI)
End Sub
Sub CentreForme(F As Form)
'exemple d'appel
'CentreForme Me / ou, CentreForme NomForm
F.Top = (Screen.Height - F.Height) / 2
F.Left = (Screen.Width - F.Width) / 2
End Sub |
Partager