
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[35.172.165.64] |
![]() |
|
Страницы: (11) « Первая ... 8 9 [10] 11 все ( Перейти к последнему сообщению ) |
Прикр. сообщ.
#1
,
|
|
|
Пришлось сделать Add-in заново, несколько годов назад потерял проект (из-за винта ...).
Add-in поддерживает предыдущие возможности: Исправлены предыдущие баги, недостатки: Добавлены новые возможности: Управления клавишами: Прикреплённый файл ![]() Для установки языков интерфейса нужно распаковать архив в путь, который находится установочный файл. Прикреплённый файл ![]() Примерные варианты include файлов: Прикреплённый файл ![]() |
Сообщ.
#136
,
|
|
|
ошибка на 20 строке, потом на 30, 40, 80,90, 100, 110, 120, 140, 150, 160, 170, опять 170, 180, 190, 200-280, 300, 310, 320, 320, 330, 340, 400 ,440, 580, 610-700 при х=5 у=0 подсветка нормально работает |
Сообщ.
#137
,
|
|
|
Все строки с default значением True:
![]() ![]() 20 AutoIndent = CBool(GetString(HKEY_CURRENT_USER, RegPath, "AutoIndent", True)) Где можеть появится ошибка? Больше экспериментов не хочу, можеть быть с объявлениями Variant, можеть быть и на другом. Скрытый текст ![]() ![]() Public Const REG_SZ = 1 ' Unicode nul terminated string Public Const REG_BINARY = 3 ' Free form binary Public Const REG_DWORD = 4 ' Free form binary Public Enum hiveKey HKEY_CLASSES_ROOT = &H80000000 '(Windows 95,98,ME,NT,2000,XP) HKEY_CURRENT_USER = &H80000001 '(Windows 95,98,ME,NT,2000,XP) HKEY_LOCAL_MACHINE = &H80000002 '(Windows 95,98,ME,NT,2000,XP) HKEY_USERS = &H80000003 '(Windows 95,98,ME,NT,2000,XP) HKEY_PERFORMANCE_DATA = &H80000004 '(Windows 95,98,ME,NT,2000) HKEY_CURRENT_CONFIG = &H80000005 '(Windows 95,98,ME,NT,2000,XP) HKEY_DYN_DATA = &H80000006 '(Windows 95,98,ME,NT,2000) End Enum Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted Const STANDARD_RIGHTS_ALL = &H1F0000 Const SYNCHRONIZE = &H100000 Const READ_CONTROL = &H20000 Const STANDARD_RIGHTS_READ = (READ_CONTROL) Const STANDARD_RIGHTS_WRITE = (READ_CONTROL) Const KEY_CREATE_LINK = &H20 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE)) Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) Const KEY_EXECUTE = (KEY_READ) Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE)) Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long Public Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As Any, phkResult As Long, lpdwDisposition As Long) As Long Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal samDesired As Long, phkResult As Long) As Long Public Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String, Optional Default) As String Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long 'retrieve information about the key lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize) If lResult = 0 Then If lValueType = REG_SZ Then 'Create a buffer strBuf = String(lDataBufSize, Chr$(0)) 'retrieve the key's content lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize) If lResult = 0 Then 'Remove the unnecessary chr$(0)'s If lDataBufSize = 0 Then RegQueryStringValue = "" Else RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1) End If End If ElseIf lValueType = REG_DWORD Then Dim lngData As Long 'retrieve the key's value lResult = RegQueryValueEx(hKey, strValueName, 0, 0, lngData, lDataBufSize) If lResult = 0 Then RegQueryStringValue = lngData End If ElseIf lValueType = REG_BINARY Then Dim strData As Integer 'retrieve the key's value lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize) If lResult = 0 Then RegQueryStringValue = strData End If End If ElseIf Not IsMissing(Default) Then RegQueryStringValue = Default End If End Function Public Function GetString(hKey As Long, strPath As String, strValue As String, Optional Default) Dim Ret 'Open the key RegOpenKey hKey, strPath, Ret 'Get the key's content GetString = RegQueryStringValue(Ret, strValue) If GetString = "" Then GetString = Default 'Close the key RegCloseKey Ret End Function Public Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Save a string to the key RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData) 'close the key RegCloseKey Ret End Sub Public Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Set the key's value RegSetValueEx Ret, strValue, 0, REG_BINARY, CByte(strData), 4 'close the key RegCloseKey Ret End Sub Public Sub DelSetting(hKey As Long, strPath As String, strValue As String) Dim Ret 'Create a new key RegCreateKey hKey, strPath, Ret 'Delete the key's value RegDeleteValue Ret, strValue 'close the key RegCloseKey Ret End Sub Public Sub DelKey(hKey As Long, strPath As String, strSubKey As String) Dim Ret As Long 'Create a new key 'RegOpenKeyEx hKey, strPath & "\" & strSubKey, 0, KEY_ALL_ACCESS, Ret RegOpenKey hKey, strPath, Ret 'Delete the key RegDeleteKey Ret, strSubKey 'close the key RegCloseKey Ret End Sub |
Сообщ.
#138
,
|
|
|
Сообщ.
#139
,
|
|
|
Привет coder!
Вот изображение панели Add-In Toolbar ![]() Вместо стандартной иконки - хочется свою. При написании собственной процедуры получаются следующие глюки: ![]() ![]() ![]() ![]() О справочном файле Пропиши свойства WhatsThisHelpID для элементов управления. Справка по ссылке обновилась. С уважением... |
Сообщ.
#140
,
|
|
|
Цитата Diamock @ Вместо стандартной иконки - хочется свою. Ещё не мог найти решение. Остальные были учтены на новом версии (2.0.467). |
Сообщ.
#141
,
|
|
|
Привет coder!
Цитата coder @ Цитата Diamock @ Вместо стандартной иконки - хочется свою. Ещё не мог найти решение. Остальные были учтены на новом версии (2.0.467). Вариант кода назначения своей иконки. Код не мой, где-то, когда-то нарыл в сети... Создайте вспомогательную форму, расположите на ней нужное число элементов управления Image. В каждый элемент поместите иконку в виде растрового изображения 16х16. Кстати, сами иконки можно создавать с помощью того же встроенного редактора окна Customize например пакета Word, копируя их через буфер обмена. Далее, требуется написать следующий код в метод AddToAddInCommandBar класса Connect: ![]() ![]() Dim cbMenuCommandBar As Office.CommandBarButton Dim cbMenuCommandBar As Office.CommandBarButton Dim cbMenu As Object Set cbMenu = VBInstance.CommandBars("Add-Ins") If Not cbMenu Is Nothing Then ' меню существует ' добавляем его к панели инструментов Set cbMenuCommandBar = cbMenu.Controls.Add(1) cbMenuCommandBar.Caption = "Наш Add-In" ' копируем изображение через буфер обмена Clipboard.Clear Clipboard.SetData = frmAddIns.ImgMenuPic.Picture bMenuCommandBar.PasteFace Set AddToAddInCommandBar = cbMenuCommandBar End If К сожалению ![]() С уважением... |
Сообщ.
#142
,
|
|
|
Цитата Diamock @ Вариант кода назначения своей иконки. Код не мой, где-то, когда-то нарыл в сети... Я именно так и делаю, для всех своих кнопок, это не проблема. Проблема в том, что этих кнопок я сам не буду добавить, оно добавляется сторонним аддином. Вовремя коннекта он ещё не будет добавлен (Commandbar тоже не будет добавляется). Я могу проследить его добавление, но этот Add-in откуда берет иконки, я этого незнаю. Например для API Viewer он сам вставит иконку, я сейчас ищу пути, который заставить VB 6 Add-in Toolbar добавить мою иконку своей функционалом. |
Сообщ.
#143
,
|
|
|
![]() Когда ставиш закрывающуюся скобку и нажимаешь Enter, выскакивает MsgBox. Так и должно быть? Не очень удобно. Очень большое спасибо за навигацию по процедурам. Есть одно пожелание: у меня есть "дурацкая" привычка описывать функцию в Tools=>Procedure Attributes... Хочется при выделении функции в ListBox видеть её атрибуты и список сделать пошире. Примерно так: ![]() И что бы окно было не модальным и было всегда поверх всех окон проекта. А если бы его можно было сделать ещё и Docing (как опцию) - вообще шикарно! |
Сообщ.
#144
,
|
|
|
Цитата Diamock @ Когда ставиш закрывающуюся скобку и нажимаешь Enter, выскакивает MsgBox. Так и должно быть? Не очень удобно. Я при проверке поставлю msgbox'ы, почему то там остался, сейчас уберу. |
Сообщ.
#145
,
|
|
|
Цитата Diamock @ А если бы его можно было сделать ещё и Docing (как опцию) - вообще шикарно! Я думаю что, для Docking'a его нужно сделать ещё деревовидным, как на CodeSmart'е. Так эти две формы можно разделять на две функции. Обновил архив. |
![]() |
Сообщ.
#146
,
|
|
версия 2.0.57
excel2010, пустая книга при попытке сортировки/фильтрации данных, либо при попытке вставить формулу получаем однократные сообщения: Tipe mismatch с последующим Object variable or With block variable not set в строке 490 |
Сообщ.
#147
,
|
|
|
Цитата Old Bat @ Tipe mismatch Да, при подключении Надстройку VBStyleCodeForVBA.Connect программа не мог конвертировать Application (Microsoft Excel) на VBInstance (VBE), поэтому вылазили эти ошибки (Object variable or With block variable not set - при этом моя переменная VBInstance остался не инициализированным). Исправил, спасибо за пост. |
Сообщ.
#148
,
|
|
|
Версия: 2.0.502
- Тепер в среде VBA тоже можно выбрать стиль интерфейса. |
Сообщ.
#149
,
|
|
|
Coder, прошу вас удалять предыдущие варианты ссылок на ваш адд-ин.
Пример. Я на эту тему не заходил давно. У меня в текстовом док-те лежит ссылка (и она работает): http://forum.sources.ru/index.php?act=Atta...attach_id=14927 Однако, это не последняя версия плагина; и я ошибочно качаю не то, что нужно. В теме-то на текущий момент указана такая ссылка: http://forum.sources.ru/index.php?act=Atta...attach_id=16231 |
Сообщ.
#150
,
|
|
|
Цитата Сергей85 @ Coder, прошу вас удалять предыдущие варианты ссылок на ваш адд-ин. Их могут удалить только модераторы |