FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

ListView - так стыдно...

Перейти вниз

ListView - так стыдно... Empty ListView - так стыдно...

Сообщение  vbman Чт Янв 28, 2010 7:43 pm

Вот кусок кода. Далле - по коментариям Question :

Код:
Sub StartMonitor()
   Dim compCount As UInteger=SendMessage(lv,LVM_GETITEMCOUNT,0,0) 'тут нормально
   If compCount=cast(UInteger,0) Then 'если нету элементов в списке - выходим с сообщением
      FailedMsg(4)
   Else
      Dim As LISTVIEV_ITEM Ptr li=Cast(LISTVIEV_ITEM Ptr,Allocate(sizeof(LISTVIEV_ITEM))) 'выделяем память под
                                                                                                                                            'LISTVIEV_ITEM структуру.
                                                                                                                                            'Она аналогична LVITEM,
                                                                                                                                            'просто ФБ чего-то ругается на нее
                                                                                                                                            'я скопировал в код и переименовал
      If li=Cast(LISTVIEV_ITEM Ptr,0) Then 'если памяти нету - выходим
         FailedMsg(1)
         Exit Sub
      EndIf
      
                      'далее проблемы
      FillMem(Cast(Any Ptr,li),cast(UByte,0),sizeof(LISTVIEV_ITEM)) 'зануляем всю структуру - нормально
      Dim As ZString*255 sz 'буфер для строки
      li->pszText=@sz
      li->cchTextMax=254
      li->mask=LVIF_TEXT
      
      Dim As ULong ia 'не обращайте внимания
      For i As UInteger=0 To compCount-1 'колличество мы получаем правильное и цикл идет правильно
         ReDim Preserve IP(i) 'массив
         
         li->iItem=i 'очередной элемент
         li->iSubItem=2 'подъитем
         SendMessage(lv,LVM_GETITEM,0,li) 'получаем инфу о элементе
         MessageBox(frmMain,li->pszText,0,0) 'КАКОГО хрена я всегда получаю пустую строку?
      Next
   EndIf
End Sub

убился с ним уже. lv - это на диалоге (в ресурсах) ListView (его хендл). Находится при старте программы. Все остальные операции с ним нормально... Переменные видимы нормально. Может я чего не учел? Может забыл что? Shocked Shocked Shocked Сколько бы строк не было в списке - постоянно пустая строка... Sad
По поводу переименования структуры: она точно такая же, как в commctrl.bi, но с другим именем у меня в файле с кодом. ФБ почему-то всегда выдает на оригинальную структуру ошибку Expected identifier. Хотя все файлы включаются с ONCE... affraid Я пробовал память и под буфер выделять - результат тот же...
vbman
vbman

Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 42
Откуда : Украина, Кировоград

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения