Страница: 1 |
|
Вопрос: Ширина столбцов в DataGrid?
|
Добавлено: 26.09.03 15:36
|
|
Номер ответа: 1 Автор ответа: Irina_M
Вопросов: 4 Ответов: 10
|
Профиль | | #1
|
Добавлено: 01.10.03 14:03
|
Вообще говоря, в VB есть стандартные функции для работы с реестром: GetSetting, SaveSetting, GetAllSettings и DeleteSetting. Но, поскольку они не дают возможности записи в любое место реестра, то я сохраняю ширину столбцов в таблице вот так: Private Sub it_saveColumnsWidth(ByVal psFRegValue As String) ' ' Сохраняет ширину столбцов таблицы в реестре ' psFRegValue - полный путь к параметру реестра. ' Dim j1 As Long 'Счетчик цикла Dim lLastColumn As Long 'N последнего столбца Dim sColumnsWidth As String 'Ширина столбцов sColumnsWidth = "" With Me.DataGrid1 lLastColumn = .Columns.Count - 1 For j1 = 0 To lLastColumn sColumnsWidth = sColumnsWidth & Int(.Columns(j1).Width) & "," Next sColumnsWidth = Left$(sColumnsWidth, Len(sColumnsWidth) - 1) End With it_setRegStr psFRegValue, sColumnsWidth End Sub
Ответить
|
Номер ответа: 2 Автор ответа: Irina_M
Вопросов: 4 Ответов: 10
|
Профиль | | #2
|
Добавлено: 01.10.03 14:13
|
(продолжение ответа) Здесь: [code] Private Function it_setRegStr(ByVal psFValueName As String, _ ByVal psValueData As String, _ Optional ByVal plRootHandle As EROOTKEY _ = HKEY_CURRENT_USER) _ As Boolean ' ' Устанавливает значение строкового параметра реестра ' по заданным наименованию раздела и наименованию параметра реестра ' ' Результат: fMore - признак успешного завершения ' Параметры: psFValueName - полное наименование параметра реестра ' psValueData - значение строкового параметра ' [plRootHandle] - указатель на корневой раздел ' Dim lAccessRights As Long 'Права доступа Dim lErrNom As Long 'Код ошибки Dim lKeyHandle As Long 'Указатель на раздел реестра Dim lLen As Long 'Длина строки Dim lPos As Long 'Позиция подстроки Dim lValueType As Long 'Тип данных для параметра Dim sKeyName As String 'Наименование раздела реестра Dim sValueName As String 'Наименование параметра реестра lErrNom = 0 If Right$(psFValueName, 1) = sBSlash Then lLen = Len(psFValueName) psFValueName = Left$(psFValueName, lLen - 1) End If lPos = InStrRev(psFValueName, sBSlash) If lPos > 0 Then sKeyName = Left$(psFValueName, lPos - 1) sValueName = Mid$(psFValueName, lPos + 1) lAccessRights = KEY_ALL_ACCESS lErrNom = RegOpenKeyEx(plRootHandle, sKeyName, 0&, _ lAccessRights, lKeyHandle) If lErrNom Then lErrNom = it_createRegKey(plRootHandle, sKeyName, _ lKeyHandle) If lErrNom = 0 Then lErrNom = RegOpenKeyEx(plRootHandle, sKeyName, 0&, _ lAccessRights, lKeyHandle) End If End If Else sValueName = psFValueName lKeyHandle = plRootHandle End If If lErrNom = 0 Then lValueType = REG_SZ lPos = InStr(psValueData, "%") If lPos Then If InStr(lPos + 2, psValueData, "%") Then lValueType = REG_EXPAND_SZ lLen = Len(psValueData) + 1 lErrNom = RegSetValueExStr(lKeyHandle, sValueName, _ pNull, lValueType, psValueData, lLen) End If it_setRegStr = (lErrNom = 0) End Function [/code]
Ответить
|
Номер ответа: 3 Автор ответа: Irina_M
Вопросов: 4 Ответов: 10
|
Профиль | | #3
|
Добавлено: 01.10.03 14:16
|
И, наконец: Public Function it_createRegKey(plParentHandle As Long, _ psNewkeyName As String, _ plNewkeyHandle As Long, _ Optional pfExisted As Boolean = False, _ Optional ByVal plAccessRights As Long = KEY_ALL_ACCESS) _ As Long ' ' Создает раздел реестра ' Dim lDisposition As Long '1-создан новый,2-открыт существующий Dim lErrNom As Long 'Код ошибки lErrNom = RegCreateKeyEx(plParentHandle, psNewkeyName, _ 0&, sEmpty, _ REG_OPTION_NON_VOLATILE, _ plAccessRights, pNull, _ plNewkeyHandle, lDisposition) it_createRegKey = lErrNom pfExisted = (lDisposition = REG_OPENED_EXISTING_KEY) End Function
Ответить
|
Страница: 1 |
Поиск по форуму