Список с колонками. Хэлп!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Death!!!
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.06.2008 (Пт) 18:09
Откуда: Москва

Список с колонками. Хэлп!!!

Сообщение Death!!! » 06.06.2008 (Пт) 18:48

Народ, подскажите, плиз...
Нужен контрол (хотя бы название подскажите). Требуется создать список с разделителями (Напр.: имя, размер, и т.д., как в Тотале). К примеру, такой же, как Пуск/Программы/Стандартные/Администрирование/Службы (справа такой список). Такой же список есть в редакторе реестра.
Заранее пасиб.

ACiD
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 261
Зарегистрирован: 10.12.2005 (Сб) 2:29
Откуда: г. Санкт - Петербург

Сообщение ACiD » 06.06.2008 (Пт) 18:59

DataGrid

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 06.06.2008 (Пт) 21:29

ListView
Salus populi suprema lex

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 07.06.2008 (Сб) 9:18

ListView
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2008 (Сб) 9:23

ListView
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 07.06.2008 (Сб) 9:40

Найдешь его, когда подключишь в компонентах, как указано на картинке. Потом, когда забросишь его на форму, установи ему свойство View = Report и получишь нужный контрол. Там надо будет добавлять в него записи (посмотришь его методы по F2)
Вложения
Буфер обмена.png
Подключить компонент
Буфер обмена.png (11.62 Кб) Просмотров: 940
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 07.06.2008 (Сб) 10:51

Это было что-то типа голосования, где большинством голосов победил ListView? :)
Salus populi suprema lex

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 07.06.2008 (Сб) 10:51

Это было что-то типа голосования, где большинством голосов победил ListView? :)
Salus populi suprema lex

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 07.06.2008 (Сб) 10:51

Это было что-то типа голосования, где большинством голосов победил ListView? :)
Salus populi suprema lex

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 10:55

Подскажите, пожалуйста, как заставить ListView выделять строку целиком? С контролом из набора Windows Common Controls 6.0 (SP6) такой проблемы нет, но он не поддерживает стиль XP...
O, sancta simplicitas!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2008 (Сб) 11:21

Установи ему стиль LVS_EX_FULLROWSELECT.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 12:36

Докопался до
http://msdn.microsoft.com/en-us/library/bb774732(VS.85).aspx, но так и не нашел числовых значений констант LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT и остальных :)
O, sancta simplicitas!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.06.2008 (Сб) 12:48

Искать надо так.
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2008 (Сб) 12:49

Код: Выделить всё
Public Const LVM_SETEXTENDEDLISTVIEWSTYLE As Long = LVM_FIRST + 54
Public Const LVM_GETEXTENDEDLISTVIEWSTYLE As Long = LVM_FIRST + 55

Public Const LVS_EX_GRIDLINES        As Long = &H1
Public Const LVS_EX_SUBITEMIMAGES    As Long = &H2
Public Const LVS_EX_CHECKBOXES       As Long = &H4
Public Const LVS_EX_TRACKSELECT      As Long = &H8
Public Const LVS_EX_HEADERDRAGDROP   As Long = &H10
Public Const LVS_EX_FULLROWSELECT    As Long = &H20
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 13:44

Работает, но кривовато
Код: Выделить всё
Делал так
   Dim xStyle As Long ', r As Long
   
   xStyle = SendMessageLong(lvwHandle, LVM_GETEXTENDEDLISTVIEWSTYLE, 0&, 0&)

   xStyle = xStyle Or LVS_EX_FULLROWSELECT

   ApplyLvwStyle = SendMessageLong(lvwHandle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0&, xStyle)


и вот, что получается (см. 1.png)

А в откомпилированном варианте отрисовывается прямо, но появляются стили LVS_EX_TRACKSELECT и LVS_EX_UNDERLINEHOT
Вложения
1.png
1.png (1.36 Кб) Просмотров: 945
O, sancta simplicitas!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2008 (Сб) 14:37

Я не знаю, каким образом был получен такой эффект (смотри корректность декларации SendMessageLong).

Вот кусочек кода из одного моего проекта, и этот кусочек точно работал:
Код: Выделить всё
lHTTPGridBaseExtendedStyle = SendMessage(.HTTPGridBase.hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, ByVal 0&)
SendMessage .HTTPGridBase.hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ByVal CLng(lHTTPGridBaseExtendedStyle Or LVS_EX_FULLROWSELECT Or LVS_EX_HEADERDRAGDROP)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 15:08

Огромное Спасибо! Заработало!
Действительно, ошибка была в объявлении SendMessageLong... :?
O, sancta simplicitas!

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 15:14

Огромное Спасибо! Заработало!
Действительно, ошибка была в объявлении SendMessageLong... :?
Правда, еще исправил сам вызов функции на предложенный (еще поэкспериментирую)...
O, sancta simplicitas!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.06.2008 (Сб) 15:16

Предложенный ничем не лучше и не хуже. Целиком дело вкуса.

Мудрый компилятор всё-равно все три возможных варианта преобразует в один, который соответствует варианту, исключающему использование промежуточной переменной.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 07.06.2008 (Сб) 15:47

Однако, эсперимент показал, что строка
Код: Выделить всё
SendMessage(lvwHandle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ByVal xStyle&)

очень чувствительна к наличию ByVal...
O, sancta simplicitas!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.06.2008 (Сб) 15:58

Это зависит только от декларации.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 65

    TopList