by Max - Demian Net (4 Submissions)
Category: Custom Controls/Forms/Menus
Compatability: Visual Basic 3.0
Difficulty: Intermediate
Date Added: Wed 3rd February 2021
Rating:
(4 Votes)
Save the last screen position of your form.
Private 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
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Function GetFromINI(Section As String, Key As String, Directory As String) As String
Dim strBuffer As String
strBuffer = String(750, Chr(0))
Key$ = LCase$(Key$)
GetFromINI$ = Left(strBuffer, GetPrivateProfileString(Section$, ByVal Key$, "", strBuffer, Len(strBuffer), Directory$))
End Function
Private Sub WriteToINI(Section As String, Key As String, KeyValue As String, Directory As String)
Call WritePrivateProfileString(Section$, UCase$(Key$), KeyValue$, Directory$)
End Sub
Private Sub Form_Load()
On Error Resume Next
Form1.Top = GetFromINI("SCREEN", "TOP", App.Path & "\screen.ini")
Form1.Left = GetFromINI("SCREEN", "LEFT", App.Path & "\screen.ini")
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
WriteToINI "SCREEN", "TOP", Form1.Top, App.Path & "\screen.ini"
WriteToINI "SCREEN", "LEFT", Form1.Left, App.Path & "\screen.ini"
End Sub