powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу передать в процедуру парметр типа ListItem
7 сообщений из 7, страница 1 из 1
Не могу передать в процедуру парметр типа ListItem
    #32754256
Забеглый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю так:

Код: plaintext
1.
2.
3.
Public Sub Prices(itmXv As ListItem)
    'будет рассчет цен
    itmXv.SubItems( 3 ) = "11"
End Sub

и далее так (lvFoundPartNo - листвью в режиме репорт):


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Dim itmX As ListItem

    Do Until rs.EOF
    
        currPartNo = rs.Fields("PartNo")
        
        Set itmX = lvFoundPartNo.ListItems.Add(, , currPartNo)
        
        itmX.SubItems( 1 ) = rs.Fields("Desc")
        itmX.SubItems( 2 ) = rs.Fields("Model")

        Prices (itmX)
        
        rs.MoveNext
    Loop

При вызове процедуры - ругань на несоответвие типов. Расследование показало, что в процедуру передается не сам itmX, а его свойство по умолчанию, как строка.

Как передать сам объект?
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754367
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты не можешь объект листвью передовать из класса формы в стандартный модуль и работать там с ним так как делаешь ты, передовай значения (все элементы внутри класса типа прайват).
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754412
Забеглый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все находится в одном модуле, в коде формы.

Передавать значения - нет смысла, т.к. в процедуре я хочу устанавливать значения, а не читать их. Передавать сабитемы... можно, но некрасиво мне.

Прикол именно в том, что передается не сам объект. В данном случае я могу сделать то, что мне нужно, как-нибудь иначе. Но в проблеме хочется разобраться, ибо - фигня какая-то.
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754451
Стр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй убрать скобки при вызове метода

Prices itmX
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754552
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... или написать Call
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Option Explicit

Private Sub Form_Load()
    ListView1.ListItems.Add , , "Test"
    Call Test(ListView1.SelectedItem)
End Sub

Private Sub Test(ByRef p_oListItem As ListItem)
    MsgBox p_oListItem.Text
End Sub
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754709
Стр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗабеглыйНо в проблеме хочется разобраться, ибо - фигня какая-то.
фигни здесь нет. по синтаксису языка ты должен написать вызов
Prices itmX
или
Call Prices(itmX)

в твоём случае Prices (itmX) - скобки служат для VB признаком начала вычисления выражения, для этого от itmX берется значение по умолчанию, [на этом вычисления завершаются] и ... передается в процедуру
...
Рейтинг: 0 / 0
Не могу передать в процедуру парметр типа ListItem
    #32754939
Забеглый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБА!!!

Нутром чуял, что все какую-то мелкую тонкость упустил.

Стр - спасибо отдельное за разъяснение по поводу скобок!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не могу передать в процедуру парметр типа ListItem
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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