Текущее время: Пт, апр 19 2024, 20:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: addon жрет мнго памяти
СообщениеДобавлено: Ср, июн 08 2005, 16:11 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, июн 08 2005, 13:47
Сообщения: 293
вот такой вот код занимает 22-25 метров в памяти, по-моему многовато
Code:
Option Explicit

Private WithEvents SBO_Application As SAPbouiCOM.Application
Private oCompany As SAPbobsCOM.Company
Private oForm As SAPbouiCOM.Form
Private oMatrix As SAPbouiCOM.Matrix
Private oColumns As SAPbouiCOM.Columns
Private oColumn As SAPbouiCOM.Column
Private oItem As SAPbouiCOM.Item
Private m_item As SAPbouiCOM.Item
Private m_item2 As SAPbouiCOM.Item
Private count As Long
Private oEditTextA As SAPbouiCOM.EditText
Private oEditTextB As SAPbouiCOM.EditText
Private oEditTextC As SAPbouiCOM.EditText
Private oComboBoxA As SAPbouiCOM.ComboBox
Private oRecordSet As SAPbobsCOM.Recordset
Public oFilters As SAPbouiCOM.EventFilters
Private oFilter As SAPbouiCOM.EventFilter

Private Sub SetApplication()
    Dim SboGuiApi           As SAPbouiCOM.SboGuiApi
    Dim sConnectionString   As String
    Set SboGuiApi = New SAPbouiCOM.SboGuiApi
    sConnectionString = Command
    SboGuiApi.Connect sConnectionString
    Set SBO_Application = SboGuiApi.GetApplication()
End Sub

Private Function SetConnectionContext() As Long
    Dim sCookie As String
    Dim sConnectionContext As String
    Dim lRetCode As Long
    Set oCompany = New SAPbobsCOM.Company
    sCookie = oCompany.GetContextCookie
    sConnectionContext = SBO_Application.Company.GetConnectionContext(sCookie)
    If oCompany.Connected = True Then
        oCompany.Disconnect
    End If
    SetConnectionContext = oCompany.SetSboLoginContext(sConnectionContext)
End Function

Private Function ConnectToCompany() As Long
    ConnectToCompany = oCompany.Connect
End Function

Private Sub Class_Initialize()
    SetApplication
    SetFilters
    If Not SetConnectionContext = 0 Then
        SBO_Application.MessageBox "Failed setting a connection to DI API"
        End
    End If
    If Not ConnectToCompany = 0 Then
        SBO_Application.MessageBox "Failed connecting to the company's Data Base"
        End
    End If
End Sub

Private Sub SBO_Application_AppEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes)
    Select Case EventType
            Case aet_ShutDown:
            End               
    End Select
End Sub

Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, pVal As SAPbouiCOM.IItemEvent, BubbleEvent As Boolean)
    If pVal.EventType = et_FORM_LOAD Then
        If pVal.FormType = 392 Then
            Set oForm = SBO_Application.Forms(FormUID)
            Set m_item = oForm.Items.Add("item_1", it_BUTTON)
            m_item.Specific.Caption = "test"
            m_item.Top = oForm.Items("82").Top + 15
            m_item.Left = oForm.Items("82").Left
            m_item.Width = 80
        End If
    End If
    If pVal.FormType <> 0 And pVal.Before_Action = False Then
        If pVal.FormType = 392 Then
            If pVal.EventType = et_ITEM_PRESSED Then
                If pVal.ItemUID = "item_1" Then
                    SBO_Application.MessageBox "test"
                End If
            End If
        End If
    End If
End Sub

Private Sub SetFilters()
    Set oFilters = New SAPbouiCOM.EventFilters
    Set oFilter = oFilters.Add(et_ITEM_PRESSED)
    Set oFilter = oFilters.Add(et_FORM_LOAD)
    oFilter.Add 392
    SBO_Application.SetFilter oFilters
End Sub


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 09 2005, 10:14 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, мар 31 2005, 10:58
Сообщения: 24
Откуда: Из Города-Героя Москва
А вот так вот и получается. UI жрет около 10 метров а так как там еще и DI ты тронул то там и остальные метры появляются. Обещают что в следующей версии проблем поменьше будет с памятью... ну чтож подождем увидим


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, янв 19 2006, 15:13 
Гость
@LEXXey.ru написал(а):
А вот так вот и получается. UI жрет около 10 метров а так как там еще и DI ты тронул то там и остальные метры появляются. Обещают что в следующей версии проблем поменьше будет с памятью... ну чтож подождем увидим


Обещать можно много чего.
В 2004с Аддон (DI + UI) жрет уже 60-65 Мб. И это не предел :)
Сама архитектура приложения основана на COM+ технологии, а это
значит что помимо dll самого UI и DI в память еще подгружаются всякие
dllки, относящиеся к COM+.

Так пока не переделают архитектуру (например добавят сервер приложений или web-интерфейс какой-нить), ждать уменьшения по памяти еще долго. А фукционал только растет


Принять этот ответ
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB