powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Делимся нашими наработками?
25 сообщений из 72, страница 2 из 3
Делимся нашими наработками?
    #39725389
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВозможно референсы: http://prntscr.com/lceyq8
С эвентами там все несколько прозрачнее(ссылка на форму, и через нее уже ловля всех эвентов).
посылает без права переписки
PredeclaredДа ладно...
Достаточно аргументом передать ссылку на Sender-а,
(если я правильно перевел цитату).
Из нескольких одинаковых классов, сидящих в коллекции берется 1-й. А вот с Implement все хорошо.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725392
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko,

Да все там нормально, просто у Озверина или машина или офис 64, открой любой модуль, потом референсы и ищи строки с MISSING, отключи их и подключи тоже самое из system32, ну или найди где это у тебя лежит, странно что про инстансы мы знаем, а MISSING не замечаем...
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725393
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так запросто:
в описании сервисного класса:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
...
        Set tbar = frm.Toolbar1.Object
        With tbar
            .Appearance = ccFlat
            .AllowCustomize = False
            .BorderStyle = ccNone
            .ButtonHeight = 330
            .ButtonWidth = 945
            .Style = tbrFlat
            .TextAlignment = tbrTextAlignRight
            .Wrappable = True
        End With
    End With
...
    AddBtn 1, "Close", "Закрыть", 0, False, 2087
    AddBtn 2, "Save", "Сохранить", 0, True, 1907
    AddBtn 3, "Cancel", "Отмена", 0, True, 2087
...

Public Sub AddBtn(intIndex As Integer, strKey As String, strCaption As String, lngStyle As Long, ActiveEnable As Boolean, Optional FaceID As Long, Optional BeginGroupe As Boolean, Optional Visible As Boolean = True)
    Dim cbb As Office.CommandBarButton
    Dim btn As MSComctlLib.Button
    'попутно строим ситуационно зависимое контекстное меню
    Set cbb = cbar.Controls.Add(1, , , , True)
    With cbb
        .Caption = strCaption
        If FaceID > 0 Then .FaceID = FaceID
        .BeginGroup = BeginGroupe
    End With
    
    Set btn = tbar.Buttons.Add(intIndex, strKey, strCaption, lngStyle)
...
End Sub

Private Sub tbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    ... обрабатываем по Select Case btn.Key
        Case Else
            frm.BtnClick btn -дергаем метод бэк модуля формы, вдруг были добавлены нестандартные кнопки
End Sub


Имеем возможность дернуть метод Public Sub AddBtn из бэк модуля формы для нестандартных хотелок (кнопок),
обрабатываем там-же:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub BtnClick(btn As MSComctlLib.Button)
'''Задействовать при добавлении кнопок
''    Select Case btn.Key
''        Case Is = "Service1"
''            MsgBox btn.Key
''        Case Is = "Copy"
''            MsgBox btn.Key
''    End Select
End Sub


если вкратце.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725394
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko... Из нескольких одинаковых классов, сидящих в коллекции берется 1-й...
Похоже нужен пример, иначе будем долго, бессмысленно и беспощадно... :)
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725395
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag..., а MISSING не замечаем...
Миссингов у меня нет, а ашипка есть.
Разбираться лень.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725396
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoИз нескольких одинаковых классов, сидящих в коллекции берется 1-й. А вот с Implement все хорошо.

Что-то я не понял.

Вот я получал ссылку на экземлпяр формы, получил с нее ссылку на контрол, подписался на событие OnClick и прописал свою логику. Где тут коллеция , имлемент и все такое?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private WithEvents m_appForm As Form   
Private WithEvents m_btnAddNew As CommandButton 

Set m_btnAddNew = m_appForm.Controls("btnAddNew")
m_btnAddNew.OnClick = "[Event Procedure]"


Private Sub m_btnAddNew_Click()
    m_logger.log "clsRefType.m_btnAddNew_Click"   
End Sub
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725397
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagalecko,

Да все там нормально, просто у Озверина или машина или офис 64, открой любой модуль, потом референсы и ищи строки с MISSING, отключи их и подключи тоже самое из system32, ну или найди где это у тебя лежит, странно что про инстансы мы знаем, а MISSING не замечаем...

и то, и другое.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725399
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredТак запросто:
в описании сервисного класса:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
...
        Set tbar = frm.Toolbar1.Object
        With tbar
            .Appearance = ccFlat
            .AllowCustomize = False
            .BorderStyle = ccNone
            .ButtonHeight = 330
            .ButtonWidth = 945
            .Style = tbrFlat
            .TextAlignment = tbrTextAlignRight
            .Wrappable = True
        End With
    End With
...
    AddBtn 1, "Close", "Закрыть", 0, False, 2087
    AddBtn 2, "Save", "Сохранить", 0, True, 1907
    AddBtn 3, "Cancel", "Отмена", 0, True, 2087
...

Public Sub AddBtn(intIndex As Integer, strKey As String, strCaption As String, lngStyle As Long, ActiveEnable As Boolean, Optional FaceID As Long, Optional BeginGroupe As Boolean, Optional Visible As Boolean = True)
    Dim cbb As Office.CommandBarButton
    Dim btn As MSComctlLib.Button
    'попутно строим ситуационно зависимое контекстное меню
    Set cbb = cbar.Controls.Add(1, , , , True)
    With cbb
        .Caption = strCaption
        If FaceID > 0 Then .FaceID = FaceID
        .BeginGroup = BeginGroupe
    End With
    
    Set btn = tbar.Buttons.Add(intIndex, strKey, strCaption, lngStyle)
...
End Sub

Private Sub tbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    ... обрабатываем по Select Case btn.Key
        Case Else
            frm.BtnClick btn -дергаем метод бэк модуля формы, вдруг были добавлены нестандартные кнопки
End Sub


Имеем возможность дернуть метод Public Sub AddBtn из бэк модуля формы для нестандартных хотелок (кнопок),
обрабатываем там-же:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub BtnClick(btn As MSComctlLib.Button)
'''Задействовать при добавлении кнопок
''    Select Case btn.Key
''        Case Is = "Service1"
''            MsgBox btn.Key
''        Case Is = "Copy"
''            MsgBox btn.Key
''    End Select
End Sub


если вкратце.

по моему на события этого тулбара подписаться нельзя. Вообще в аксе подписаться на события активиксов нельзя же?
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725401
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин... по моему на события этого тулбара подписаться нельзя. ...
На его объект можно:
Set tbar = frm.Toolbar1.Object
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725402
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PredeclaredМиссингов у меня нет, а ашипка есть.
Разбираться лень.

а у меня пока миссинги не убрал было то же самое что у alecko, а как с миссингами разобрался, то повылазили ашипки про которые с самого начала предупреждал Озверин...
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725403
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, про декларацию забыл в листинге.
В области Declarations описания класса:
Код: vbnet
1.
Private WithEvents tbar As MSComctlLib.Toolbar
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725411
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

Могу показаться циничным и старомодным, но вся эта ботва с полной унификацией форм нужна только для конторы, куда ты собираешься идти наемником, типа показать что ты неймоверно крут... а если работаешь сам, то об этих выкрутасах никто даже знать не будет (о том что они у тебя вообще реализованы), конечному пользователю нужна простая и надежная программа, которая выполняет заявленный функционал - всё... а с точки зрения разработки - выносить в общие модули общие процедуры и часто повторяющийся код - да, но формы предпочитаю делать независимы, меня это сильно раскрепощает в плане творчества, творить и постоянно думать о том, что и где ты при этом уже возможно сломал похоже на садо-мазо... возможно кто-то думает наоборот и он в своем роде тоже наверное прав, это уже как вера не переубедить...
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725452
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagОзверин,

Могу показаться циничным и старомодным, но вся эта ботва с полной унификацией форм нужна только для конторы, куда ты собираешься идти наемником, типа показать что ты неймоверно крут... а если работаешь сам, то об этих выкрутасах никто даже знать не будет (о том что они у тебя вообще реализованы), конечному пользователю нужна простая и надежная программа, которая выполняет заявленный функционал - всё... а с точки зрения разработки - выносить в общие модули общие процедуры и часто повторяющийся код - да, но формы предпочитаю делать независимы, меня это сильно раскрепощает в плане творчества, творить и постоянно думать о том, что и где ты при этом уже возможно сломал похоже на садо-мазо... возможно кто-то думает наоборот и он в своем роде тоже наверное прав, это уже как вера не переубедить...


по-моему, рано или поздно к этой унификации и вынос инфомации в мета-информацию - приходят большинство проектов, у которых под 300 совокупных модулей, форм и т.д.
Сами классы вместо модулей - это способ организации кода, т.к. поиск ф-ии по всем модулям - то еще удовольствие. а вот поиск нужной ф-ии по специфичному классу - проще. Пример приведу: рано или поздно большой проект на аксе переживает время разделения кода на части, по сути -подключаемые библиотеки. Ты уже просто так не откроешь каждую, чтобы посмотреть, а какие у тебя там модули, чтобы нужный модуль открыть(нужный по имени) и перебрать там все доступные ф-ии. Тогда как с классами все проще: именуя их в одном стиле ты через отладку всегда можешь перебрать все его публичные методы.
Короче, как по мне, это просто необходимостью становится со временем, а не крутостью.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725472
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартная утилита сборки\выгрузки кода из ms access.
Выбираете путь "куда выгрузить", выбираете программу, из которой следует выгрузить код(в этой программе требуется таблица r_prog_info с единственным полем prog_id = 1(номер схемы, по которой вы потом будете собирать программу). В выпадающем списке автоматически выбрано All, вам остается в списке выбать <Все> и выгрузить код.

Загрузка аналогична.

Прототип на коленке, схема в ini файле, что-то может не работать - как обычно, ибо.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725511
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag, если база не загружается, это значит что выкидывает в окно приложения Акса
где тут референсы?
поискал пример с ивентами... рефакторинг кода вымывает всё неиспользуемое, разбирался с этим в октябре 15-го (по архиву пошарился)-кода рабочего нет - часть закомментирована, часть отсутствует-надо по новой лепить пример, тестить, чесгря ниохота - кто будет делать пусть имеет это ввиду да и все.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725515
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckovmag, если база не загружается, это значит что выкидывает в окно приложения Акса
где тут референсы?
поискал пример с ивентами... рефакторинг кода вымывает всё неиспользуемое, разбирался с этим в октябре 15-го (по архиву пошарился)-кода рабочего нет - часть закомментирована, часть отсутствует-надо по новой лепить пример, тестить, чесгря ниохота - кто будет делать пусть имеет это ввиду да и все.

если это про мой код - то он рабочий в то мере, в которой описан. Это проблема с контролом деревье в винде, там с ним было много проблем, вплоть до того, что одно из обновлений семерки что то делало так, что контрол как-то блокировался на уровне винды.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725520
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин, до кода дело не доходит. как понимаю новый офис да ещё x64 мой старенький 07 не способен даже просто открыть.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725531
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko, вот исходник.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725595
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин, впечатляет, правда при импорте форм возникли проблемы Forms .
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725601
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko, на коленке же написано ;) Надо отлаживать.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725769
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не хочет поделиться меню билдерами под риббоны эти? А то я под новые эти ваши аксесы вообще ничего толком не делал.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39725799
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин, Игортан здесь расписывал, я использую замену лексем, те. сделал грубо говоря одну ленту, а в ней уже меняю/прячу кнопки, группы-здесь маленький кусочек ленты - лексема выглядит так {7}
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<commands>
       <command idMso="Help" enabled="false"/>
       <command idMso="WindowClose" enabled="false"/>
       <command idMso="WindowRestore" enabled="false"/>
       <command idMso="WindowMinimize" enabled="false"/>
       <command idMso="ApplicationOptionsDialog" enabled="false"/>
       <command idMso="FileExit" enabled="false"/>

 </commands>
 <ribbon startFromScratch="true">
  <tabs>
   <tab id="tabMain" label="Work"> 
    <group id="grpProjects" label="Работа с данными">
     <button id="cmdRaspr" label="Распределение" enabled="{7}" onAction="BUTTON_Ribbon" size="large" 
     imageMso="ShapesMoreShapes" supertip="Нужно распределить поставку?"/>
  
  <splitButton id="ManlWork" size="large" >
 <button id="buttonwork" imageMso="SharingOpenWssDiscussionList" label="Работа с базой" onAction="BUTTON_Ribbon" />
      <menu id="mnuManlWork" imageMso="SharingOpenWssDiscussionList" itemSize="large" >
       <button id="cmdHandMade"  label="Новая поставка" imageMso="SharingOpenWssDiscussionList" onAction="BUTTON_Ribbon"/>
      </menu>
     </splitButton>
 <splitButton id="SkladWork" size="large" enabled="{4}" >
 <button id="buttonSklad" imageMso="ViewsLayoutView" label="Склад" onAction="BUTTON_Ribbon" />
      <menu id="mnuSkladWork" imageMso="SharingOpenWssDiscussionList" itemSize="large" >
       <button id="SkladExpress"  label="Открыть склад" imageMso="BlogHomePage" onAction="BUTTON_Ribbon"/>

      </menu>
     </splitButton>
      </group>    
                                                                                                                                                            
   </tab>
  </tabs>
 <qat>
    <sharedControls>
        <control idMso="Undo" visible="true" insertBeforeMso="Redo" keytip="1" screentip="Отменить ввод"/> 
        <control idMso="Redo" visible="true" insertAfterMso="Undo" keytip="2" screentip="Вернуть"/> 
        <button idMso="FilePrintPreview" visible="true" insertAfterMso="Redo" keytip="3" screentip="Просмотр перед печатью"/> 
        <button idMso="PrintDialogAccess" visible="true" insertAfterMso="FilePrintPreview" keytip="4" screentip="Печать"/> 
        <button idMso="ExportExcel" visible="true" insertAfterMso="PrintDialogAccess" keytip="5" screentip="Экспорт в Excel"/> 
        <button idMso="FileSave" visible="true" insertAfterMso="ExportExcel" keytip="6" screentip="Сохранить в файл"/> 
        <button idMso="FileSendasAttachments" visible="true" insertAfterMso="FileSave" keytip="7" screentip="Электронная почта"/> 
    </sharedControls>
</qat>
 </ribbon>
</customUI>


код замены лексем в ленте,здесь же и код который вставляет измененный текст вместо текста ленты указанной по умолчанию
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Private Sub GotvRibbon()
' подготавливаем нашу ленту в конфигурации соответствующей зашедшему в программу, но элементы не прячем - просто делаем недоступными
Const IDZagotovka& = 5 ' на 5-строке наша заготовочка
Dim i%, RolsMass$(), Crayi%, rstRols As Recordset, str1$, str2$
RolsMass = Split(FromSprav(883), Gl0balDelimiter)
Crayi = UBound(RolsMass) + 1
Erase RolsMass
Set rstRols = CurrentDb.OpenRecordset("UsysRibbons", dbOpenTable)
rstRols.MoveFirst
Do Until rstRols.EOF
If rstRols.Fields("ID") = IDZagotovka Then Exit Do
rstRols.MoveNext
Loop

str1 = rstRols.Fields("RibbonXml").GetChunk(0, 32768)
For i = 1 To Crayi
str2 = Razrols(i)
str2 = LCase(str2)
   str1 = Replace(str1, "{" & i & "}", str2)
Next i
' если наш юзер не админ, спрячем все настройки
str2 = Upravladmins
str2 = LCase(str2)
str1 = Replace(str1, "{11}", str2)
' ----------------------------------------------------------------
' вставляем текст измененной ленты в ленту определенную по умолчанию
rstRols.MoveFirst
rstRols.Edit
    rstRols.Fields("RibbonXml") = ""
    rstRols.Fields("RibbonXml").AppendChunk str1
rstRols.Update
'Debug.Print str1
rstRols.Close
Set rstRols = Nothing
End Sub


минус такой конструкции - нужно перезагрузить Акс если другой пользователь, зато если пользователь работал в прошлый раз то код и не выполняется - лента уже для него сформирована.
p.s. в коде ссылки на другие процедуры - убирать не стал-получаем условия true/false и вставляем вместо лексем.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39726081
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинНикто не хочет поделиться меню билдерами под риббоны эти?
Я вот этим пользуюсь: IDBE Ribbon Creator . Бесплатная версия позволяет создавать небольшие меню, их можно объединять уже руками. Я даже купил, доволен.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39726164
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin,

Я свой слепил, правда он на "полуавтоматическом" режиме, потому, если нужно, скину сюда. хотя бы для примера.

aleckoИгортан здесь расписывал,
Если вдруг про меня.
У меня действительно одна лента и я при старте бд что надо скрываю, что надо показываю.
Видимость и доступ настраивается по типам пользователей.
перезагрузка не нужна. Регулируется только видимость контролов.
...
Рейтинг: 0 / 0
Делимся нашими наработками?
    #39726167
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгортанMrShin,

Я свой слепил, правда он на "полуавтоматическом" режиме, потому, если нужно, скину сюда. хотя бы для примера.

aleckoИгортан здесь расписывал,
Если вдруг про меня.
У меня действительно одна лента и я при старте бд что надо скрываю, что надо показываю.
Видимость и доступ настраивается по типам пользователей.
перезагрузка не нужна. Регулируется только видимость контролов.

надо, конечно.
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Делимся нашими наработками?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]