Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Влияние способа обращения к полю формы на функциональность  [new]
MrShin
Member

Откуда:
Сообщений: 1241
Попалось мне тут чужое приложение, где я нашел такую строку:

Form_frm_Subform.Form.SaleDate = Me.VDate


Она копирует дату из основной формы в субформу, работает нормально. Я не привык обращаться к субформам таким образом, впрочем и к формам тоже не люблю из-за того, что при переименовании формы все перестает работать, хотя разрабатывать удобнее. Поэтому заменил на более привычное:

Me.frm_Subform.Form.SaleDate = Me.VDate


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

Никто не сталкивался с подобным необъяснимым поведением при похожей замене способа обращения?
21 сен 16, 08:31    [19690121]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4258
MrShin
Никто не сталкивался с подобным необъяснимым поведением при похожей замене способа обращения?
При первом обращении (приведённый пример) неявно поднимается экземпляр формы, тк обращаются к модулю класса. Форма отсутствует в коллекции открытых форм...
Подобное обращение я считаю недопустимым, вот одно из последствий.
21 сен 16, 08:46    [19690136]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4258
MrShin, кстати, это отмечено в факе.
21 сен 16, 08:47    [19690137]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
Всегда обращаюсь к формам как к классу.
MrShin
Form_NameFom.SaleDate=Me.VDate

Очень удобно и наплевать Форма она или субформа субформа/субформа.
С уважением.
21 сен 16, 08:47    [19690138]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4258
ROI
Всегда обращаюсь к формам как к классу.
Очень зря.
21 сен 16, 08:49    [19690140]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
MrShin
Member

Откуда:
Сообщений: 1241
Панург
Подобное обращение я считаю недопустимым, вот одно из последствий.

Так и я считаю! Потому и исправил на правильное, а оно перестало работать. Про поднятие класса знаю, но в данном случае он не поднимается, насколько я понимаю, т.к. новой отдельной формы в виде субформы не появляется, а значение даты в субформе благополучно меняется.

А с проблемами при обращении как классу я много раз встречался, поймать их довольно сложно потом, трассировать проблематично.
21 сен 16, 08:53    [19690145]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
Панург
ROI
Всегда обращаюсь к формам как к классу.
Очень зря.

Да ну!
Просветите меня. (без сарказма).
С уважением.
21 сен 16, 09:03    [19690166]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
MrShin
Member

Откуда:
Сообщений: 1241
ROI,
Все работает замечательно, пока не начинаешь копировать формы под другим названием для создания форм с похожей функциональностью или переменовывать существующие. Чуть проглядел, не переименовал обращение к классу и начинаются чудеса в решете. Короче, это создает проблемы при дальнейшей поддержке.
Я обычно для ускорения разработки пишу обращения к полям другой формы через обращения к модулю, чтобы видеть сразу список полей, а потом заменяю на другие типы, чтобы избавиться от обращений к модулям.
21 сен 16, 09:21    [19690207]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
MrShin
А с проблемами при обращении как классу я много раз встречался, поймать их довольно сложно потом, трассировать проблематично.

Да ни каких проблем.
Кого поqмать их?
Трассировка (если вы имели в виду по шаговую трассировку ) на ура.
Вообщем ни каких проблем.
Если вы много раз работали с формами как с классами должны знать, что ни каких проблем нет
(если канечно не считать, что если форма не загружено и к ней есть обращение как к классу то она сагрузиться в память скрытно) но я на это не обращаю внимания так как клиент толстый.
С уважением.
21 сен 16, 09:28    [19690215]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
MrShin
Member

Откуда:
Сообщений: 1241
ROI
есть обращение как к классу то она сагрузиться в память скрытно) но я на это не обращаю внимания так как клиент толстый.

Видимо, не активно пользуетесь классами с событиями от формы. Вот здесь чудеса и начинаются за сценой. Однажды полдня убил, пока нашел причину, с тех пор и не использую.
21 сен 16, 09:32    [19690238]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
MrShin
ROI,
Все работает замечательно, пока не начинаешь копировать формы под другим названием для создания форм с похожей функциональностью или переменовывать существующие. Чуть проглядел, не переименовал обращение к классу и начинаются чудеса в решете. Короче, это создает проблемы при дальнейшей поддержке.
Я обычно для ускорения разработки пишу обращения к полям другой формы через обращения к модулю, чтобы видеть сразу список полей, а потом заменяю на другие типы, чтобы избавиться от обращений к модулям.

Дык если вы скопировали форму то имя изменилось естествено при обращении при любом нужно быть внимательней.(так что это не аргумент)
>> Я обычно для ускорения разработки пишу обращения к полям другой формы через обращения к модулю,
>>чтобы видеть сразу список полей, а потом заменяю на другие типы, чтобы избавиться от обращений к модулям.
Дак это и есть обращение к классу (то бишь к модулю) ставте точку и вам вываляться все поля все функции и т.д.
С уважением.
21 сен 16, 09:34    [19690251]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
MrShin
ROI
есть обращение как к классу то она сагрузиться в память скрытно) но я на это не обращаю внимания так как клиент толстый.

Видимо, не активно пользуетесь классами с событиями от формы. Вот здесь чудеса и начинаются за сценой. Однажды полдня убил, пока нашел причину, с тех пор и не использую.

Еще как пользую даже свои события создаю все работает.
С уважением.
21 сен 16, 09:35    [19690257]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
Тут намеднись захотелось посмотреть как живет моя прога (в плане потребления памяти и всяких скрытых червячков)
Создал процедуру для вывода списка всех загруженных форм (видимых и скрытых)
И начал препарировать свое приложение.
И малость опупел (внутри жило и плодилась приличное количество скрытых классов форм)
Хотя приложение работает.
'***********************************************************
'
'Процедура поиска и составления списка открытых форм
'
'***********************************************************
Private Sub roiListForms()

Dim vFormName As String
Dim vForm As Form
Dim vControl As Control
Dim vFormSub As Control

On Error GoTo HandleError
    
    vFormName = ""
    
    For Each vForm In Forms
        vFormName = vFormName & "Форма — '' " & vForm.Name & " ''" & vbCrLf
        For Each vControl In vForm.Controls
            'Если у формы есть подчиненные
            If vControl.ControlType = acSubform Then
                
                vFormName = vFormName & "    Контрол — '' " & vControl.Name & " ''" & vbCrLf
                vFormName = vFormName & "                Форма — '' " & vControl.Form.Name & " ''" & vbCrLf
                
                For Each vFormSub In vControl.Form.Controls
                    'Если у подчиненной есть подчиненные
                    If vFormSub.ControlType = acSubform Then
                        vFormName = vFormName & "                          Контрол — '' " & vFormSub.Name & " ''" & vbCrLf
                        vFormName = vFormName & "                                      Форма — '' " & vFormSub.Form.Name & " ''" & vbCrLf
                    End If
                Next
                
            End If
            
        Next
    Next
    
Me.ctr_Text = vFormName

ExitProc:
    Exit Sub
HandleError:
    MsgBox vbCrLf & Err.Description & _
            vbCrLf & vbCrLf & "  Имя объекта = " & Me.Name & _
            vbCrLf & vbCrLf & "  Имя процедуры = roiListForms", _
            vbCritical, "Ошибка " & Err.Number
    Resume ExitProc
End Sub


Вывод:
очень осторожно пользоваться обращением к форме как к классу
следить за уборкой "мусора" (в ручную)
вести стек вызовов
Так-что начинающим не советую (каюсь был не прав Картинка с другого сайта.)
8 июн 19, 10:53    [21905088]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4258
ROI
внутри жило и плодилась приличное количество скрытых классов форм
Всё-таки экземпляров наверное?..
8 июн 19, 15:00    [21905143]     Ответить | Цитировать Сообщить модератору
 Re: Влияние способа обращения к полю формы на функциональность  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1697
Панург
ROI
внутри жило и плодилась приличное количество скрытых классов форм
Всё-таки экземпляров наверное?..

да экземпляров (как тараканов) на кухнеКартинка с другого сайта.
9 июн 19, 05:10    [21905295]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить