1.
Вопрос от Олега Дата: 15 июля 2002
года Тема: Visual Basic
Привет
Igoryk!
У меня появился новый вопрос. Как лучше
организовать сохранение различных
переменных, изменяемых пользователем
во время работы с приложением, чтобы
при загрузке программы в следующий раз
восстанавливались последние внесенные
изменения значений переменных?
Ответ:
Для
этих целей используются ini-файлы Вот
коды, которые тебе пригодятся: Private Declare Function GetPrivateProfileString Lib
"kernel32.dll" 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.dll" Alias "WritePrivateProfileStringA" (ByVal
lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString
As String, ByVal lpFileName As String) As Long
Private Sub Form_Load()
Dim VarMod As String ' значение
ключа,получаемое из файла
Dim Length As Long ' длина
получаемой строки
Dim Var As String
Dim Subj As String
'Код для изменения
переменной
Subj = "MyVar" 'Раздел в ini-файле
Var = "a" 'Переменная
VarMod = "10" 'Значение
данной переменной
iniFile = App.Path & " \" & "my.ini"
Call WritePrivateProfileString(Subj, Var, VarMod, iniFile)
'Код для считывания
переменной
Subj = "MyVar" 'Раздел в ini-файле
Var = "a" 'Переменная
VarMod = "10" 'Значение
данной переменной
iniFile = App.Path & " \" & "my.ini"
VarMod = Space(255)
Length = GetPrivateProfileString(Subj, ByVal Var, VarMod, uname, 255,
iniFile)
VarMod = Left(uname, slength)
'В VarMod будет возвращено
значение считываемой переменной
End Sub Я расписал все переменные, но ты
можешь формировать значения прямо в
функции, например так: Call WritePrivateProfileString(Subj, "a", "10",
App.Path & " \" & "my.ini")
2.
Вопрос от Романа Дата: 15 июля 2002
года Тема: Visual Basic
1.
Встречалась ли Вам в MS Word VBA ошибка типа
"Не могу открыть банк макросов"?
2. Как в MS Word VBA "забить" выдачу
сообщений: "Поля раздела 1 выъодят за
границы области печати" -
сообщения, выдаваемого при печати (PrintOut
Background:=False)
Ответ:
1.
Да. Это обычно вызвано
несовместимостью файлов VB и файлов Office.
Выход - установить VB заменяя более
новые файлы. Мастер установки сам будет
предлагать сохранить или заменить файл.
Еще вариант установить Office под XP,
потому что обычно ткие проблемы
возникают в Windows ME.
2. К сожалению запретить эти сообщения
нельзя, потому что эти сообщения не об
ошибке и от них зависит тактика
дальнейшего поведения Word'а. Но
некоторым версиям Word'а достаточно
следующей команды, чтобы запретить всплывание всех сообщений: Application.DisplayAlerts = wdAlertsAll и разрешить: Application.DisplayAlerts =wdAlertsNone
3.
Вопрос от Алексея Дата: 17 июля 2002
года Тема: Visual Basic
Как
на мыше со скролом на месте средней
кнопки? ловить нажатие и движения этого
самого скрола. В ComboBox и ListBox он работает
автоматически, но более нигде...