
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 Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpapplicationname As Any, ByVal lpkeyname As Any, _
ByVal lpstring As Any, ByVal lpfilename As String) As Long
Public Sub writeINI(sINIFile As String, sSection As String, sKey As String, sValue As String)
Dim N As Integer
Dim sTemp As String
sTemp = sValue
For N = 1 To Len(sValue)
If Mid$(sValue, N, 1) = vbCr Or Mid$(sValue, N, 1) = vbLf Then Mid$(sValue, N) = " "
Next N
N = WritePrivateProfileString(sSection, sKey, sTemp, sINIFile)
End Sub
Public Function sGetINI(sINIFile As String, sSection As String, sKey As String, sdefault As String)
Dim sTemp As String * 256
Dim nLength As Integer
sTemp = Space$(256)
nLength = GetPrivateProfileString(sSection, sKey, sdefault, sTemp, 255, sINIFile)
sGetINI = Left$(sTemp, nLength)
End Function
Private Sub Command1_Click()Я идиот! Убейте меня, кто-нибудь!??
End Sub
Option Explicit
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 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 WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Private sFile As String
Public Property Get INIFile() As String
INIFile = sFile
End Property
Public Property Let INIFile(s_file As String)
sFile = s_file
End Property
Private Sub Class_Initialize()
If Len(sFile) > 0 Then
sFile = App.EXEName & ".ini"
End If
End Sub
Public Sub WriteP_INI(sSection, sKEy As String, sValue As String)
Dim lRes As Long
lRes = WritePrivateProfileString(sSection, sKEy, sValue, sFile)
End Sub
Public Function GetP_INI(sSection As String, sKEy As String, Optional sDefault As String) As String
Dim lRes As Long
Dim lLen As Long
Dim sTstr As String
sTstr = Space$(512)
lRes = GetPrivateProfileString(sSection, sKEy, sDefault, sTstr, Len(sTstr), sFile)
If lRes > 0 Then
sTstr = Strings.Left$(sTstr, lRes)
End If
If Len(sTstr) = 512 Then sTstr = ""
GetP_INI = sTstr
End Function
Public Sub WriteWinINIString(sSection As String, sKEy As String, sValue As String)
Dim lRes As Long
lRes = WriteProfileString(sSection, sKEy, sValue)
End Sub
Public Function GetWinINIString(sSection, sKEy, Optional sDefault As String) As String
Dim lRes As Long
Dim lTlen As Long
Dim sTstr As String
sTstr = Space$(512)
lRes = GetProfileString(sSection, sKEy, sDefault, sTstr, Len(sTstr))
If lRes > 0 Then
sTstr = Strings.Left$(sTstr, lRes)
End If
GetWinINIString = sTstr
End Function
'Использование просто, разберёться даже младенец.. =)
'CMD-Имя кнопки
'CD-Имя диалога (CommonDialog)
'RTB-Имя RichTextBox
Dim UserFont As StdFont
Dim fso As New FileSystemObject
Dim fil As File
Dim txt As TextStream
Option Explicit
Private Sub CMD_Click()
'Устанавливаем параметры для CommonDialog
With CD
.FontBold = UserFont.Bold
.FontItalic = UserFont.Italic
.FontName = UserFont.Name
.FontSize = UserFont.Size
.FontStrikethru = UserFont.Strikethrough
.FontUnderline = UserFont.Underline
End With
CD.Flags = cdlCFScreenFonts
CD.ShowFont
' Задаём параметры для UserFont,для RichTextBox задавать параметры фонта не надо будет, так как UserFont и RTB.Font были связаны =)
With UserFont
.Bold = CD.FontBold
.Italic = CD.FontItalic
.Name = CD.FontName
.Size = CD.FontSize
.Strikethrough = CD.FontStrikethru
.Underline = CD.FontUnderline
End With
End Sub
Private Sub Form_Load()
Set UserFont = RTB.Font
Load_Properties
End Sub
Private Sub Load_Properties()
Dim sIF As String
sIF = Replace(App.Path & "\Prop.ini", "\\", "\") 'Это на тот случай, если пользователь установит прогу в корень диска (и такое бывает! ;))
INIFile = sIF 'Устанавливаем путь к Ini файлу
With UserFont
.Name = GetP_INI("UserFont", "Font_Name", "Arial") 'Грузим из INI имя шрифта, по дефолту - Arial
.Bold = GetP_INI("UserFont", "Font_Bold", "False") 'Грузим из INI жирность шрифта, по дефолту - False
.Italic = GetP_INI("UserFont", "Font_Italic", "False") 'Грузим из INI наклонность шрифта, по дефолту - False
.Size = GetP_INI("UserFont", "Font_Size", "12") 'Грузим из INI размер шрифта, по дефолту - 12
.Strikethrough = GetP_INI("UserFont", "Font_Str", "False") 'Грузим из INI зачёркнутость шрифта, по дефолту - False
.Underline = GetP_INI("UserFont", "Font_Underline", "False") 'Грузим из INI подчёркнутость шрифта, по дефолту - False
End With
End Sub
Private Sub Write_Properties(UserFont As StdFont)
Dim OutSrc As String
Dim sIF As String
sIF = Replace(App.Path & "\Prop.ini", "\\", "\")
'Задаём параметры в переменную OutSrc
With UserFont
OutSrc = "[UserFont]" & vbCrLf & _
"Font_Name=" & .Name & vbCrLf & _
"Font_Bold=" & .Bold & vbCrLf & _
"Font_Italic=" & .Italic & vbCrLf & _
"Font_Size=" & .Size & vbCrLf & _
"Font_Str=" & .Strikethrough & vbCrLf & _
"Font_Underline=" & .Underline
End With
'Использование сис-мы FSO не случайно, оно на тот случай, если файла на месте не окажеться, функция WriteP_INI НЕ создаёт файл.
fso.CreateTextFile (sIF)
Set fil = fso.GetFile(sIF)
Set txt = fil.OpenAsTextStream(ForWriting)
txt.Write OutSrc
txt.Close
'Параметры сохранены
End Sub
- Код: Выделить всё
Private Sub Load_Properties()
Dim sIF As String
sIF = Replace(App.Path & "\Prop.ini", "\\", "\") 'Это на тот случай, если пользователь установит прогу в корень диска (и такое бывает! ;))
INIFile = sIF 'Устанавливаем путь к Ini файлу
With UserFont
.Name = GetP_INI("UserFont", "Font_Name", "Arial") 'Грузим из INI имя шрифта, по дефолту - Arial
.Bold = GetP_INI("UserFont", "Font_Bold", "False") 'Грузим из INI жирность шрифта, по дефолту - False
.Italic = GetP_INI("UserFont", "Font_Italic", "False") 'Грузим из INI наклонность шрифта, по дефолту - False
.Size = GetP_INI("UserFont", "Font_Size", "12") 'Грузим из INI размер шрифта, по дефолту - 12
.Strikethrough = GetP_INI("UserFont", "Font_Str", "False") 'Грузим из INI зачёркнутость шрифта, по дефолту - False
.Underline = GetP_INI("UserFont", "Font_Underline", "False") 'Грузим из INI подчёркнутость шрифта, по дефолту - False
End With
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8