Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426

Данные записываются в листбокс нормально, а в листвью – нет

17.10.2024, 21:05. Показов 540. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в том, что значения, полученные в цикле по одному, записываются в листбокс нормально, а в листвью как Subitems-ы – нет. Прилагаю проект, там кода 8 строк всего и каждая строчка прокоментирована, блок рассматриваемого кода выделен строками ‘XXXXX
Вложения
Тип файла: 7z FontSword Forum.7z (29.7 Кб, 12 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2024, 21:05
Ответы с готовыми решениями:

В библиотеке в читательском билете имеются данные о человеке, а также записываются данные о книге
Вот ещё одна проблемка! В библиотеке в читательском билете имеются данные о человеке (фамилия), а также записываются данные о книге...

Как можно узнать пустой листбокс или нет?
1: Как можно узнать пустой листбокс или нет? 2: private void NextButton_Click(object sender, EventArgs e) { ...

Комбинированный тип данных (записи) В библиотеке в читательском билете имеются данные о человеке (фамилия), а также записываются данные о книге (автор
В библиотеке в читательском билете имеются данные о человеке (фамилия), а также записываются данные о книге (автор, название, дата выдачи...

5
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.10.2024, 02:14
Вы знаете почему я Вам рекомендовал использовать самописный контрол ListView. Да потому что небыло бы проблем с OCX и с конфликтом их версий. Я распокавал Ваш архив, открываю, но ругается на mscomctl.ocx не загрузилось(

Добавлено через 44 секунды
Для обычного человека не сильно знающего он бы даже не смог исправить эту ошибку и запустить проект вообще.

Добавлено через 2 минуты
Я раньше сам в этом ничего не понимал помню, не разирался.
Теперь когда у меня больше опыта, я скорее всего смогу разобраться с этой ошибкой.
Итак открываю ваш VBP файл блокнотом для чтения и вижу:

Visual Basic
1
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.2#0; mscomctl.ocx
То есть требует, по вашей сборке проекта, именно версию 2.2

Добавлено через 1 минуту
Мой системный файл по адресу c:\Windows\SysWOW64\MSCOMCTL.OCX имеет версию 2,0 с тем же самым uuid({831FDD16-0C5C-11D2-A9FC-0000F8754DA1}

Добавлено через 45 секунд
Скорее всего это значит, что мне нужно просто отредактировать ваш VBP файл блокнотом и поменять версию 2.2 на версию 2.0.

Добавлено через 45 секунд
Да, я был прав, после этого заработало - проект открылся. А раньше я такие проблемы решать не умел, помню...

Добавлено через 13 секунд
Поэтому я и не люблю OCX...

Добавлено через 4 минуты
Теперь ругается на отсутствие CMAX20.OCX ... Ох как это тяжело. Научитесь программировать без OCX...

Добавлено через 39 секунд
CMAX20.OCX на моём компьютере просто нет такого файла вообще

Добавлено через 6 минут
Я вообще не смог запустить Ваш проект и Вам помочь из-за того что Вы не приложили файл CMAX20.OCX. У меня не хочет вообще запускаться и работать проект.

Добавлено через 38 секунд
Я пытался простите, но без этого файла невозможно.
1
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
18.10.2024, 21:25  [ТС]
HackerVlad учел твои замечания и часов в 12 ночи стал готовить нормальный вариант,то есть
начал убирать всё лишнее, чтобы выложить безпроблемный проект здесь. Но в процессе стали приходить какие-то мысли, стал пробовать, копаться в инете и в итоге к пол-шестого утра выяснил, старый маразматик, что проблема в том, что листвью был изначально в Sort=True. Поставил Sort=False перед заполнением и после заполнения - Sort=True и все получилось. Так что приношу свои искренние и глубокие извинения за то, что напрасно отнял время!
===

Цитата Сообщение от HackerVlad Посмотреть сообщение
но ругается на mscomctl.ocx не загрузилось То есть требует, по вашей сборке проекта, именно версию 2.2
Постойте, это что значит - если бы я писал коммерческую прогу с использованием вобщем-то стандартных контролов из этой библиотеки, то всегда вероятны проблемы такого рода? И как же это обходят? Неужто все те тысячи прогеров по всему миру делают свои контролы, а сам Visual Basic 6 просто неприспособленная для коммерческих програм обучалка-развлекаловка? Или инсталяшка копирует соответствующие dll-ы и ocx-ы в System32 и/или в SysWow64? Я без подкола - правда интересно.
Цитата Сообщение от HackerVlad Посмотреть сообщение
рекомендовал использовать самописный контрол ListView
Самому ListView написать?! Да куда мне с моим-то ясельно-детсадовским уровнем в VB! Эт вы загнули, батенька!
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.10.2024, 21:45
Цитата Сообщение от giaber Посмотреть сообщение
то всегда вероятны проблемы такого рода?
Да, конечно, я терпеть не могу OCX вообще

Добавлено через 27 секунд
Цитата Сообщение от giaber Посмотреть сообщение
И как же это обходят?
Отказом от OCX

Добавлено через 1 минуту
Цитата Сообщение от giaber Посмотреть сообщение
Самому ListView написать?!
Я же давал вам уже готовый проект где УЖЕ написан самописный ListView от Krool никакие OCX там не нужны. Вы ещё спрашивали меня зачем и почему я не использую OCX. Вот и ответ.

Добавлено через 2 минуты
Цитата Сообщение от giaber Посмотреть сообщение
Или инсталяшка копирует соответствующие dll-ы и ocx-ы в System32 и/или в SysWow64?
Так было во времена Windows 98 каждая программа копировала в папку C:\WINDOWS\System свою версию DLL или OCX перезписывая её поверх в результате чего нередко программы выходили из строя из-за конфликтов версий библиотек. В XP ситуация изменилась к лучшему потому что там придумали какой-то новый механизм, не помню какой, но стало лучше.

Добавлено через 1 минуту
Цитата Сообщение от giaber Посмотреть сообщение
Неужто все те тысячи прогеров по всему миру делают свои контролы, а сам Visual Basic 6 просто неприспособленная для коммерческих програм обучалка-развлекаловка?
EXE наверное бы работало с другой версией OCX. Но VBP-проект точно нет.

Добавлено через 31 секунду
В каждой версии Windows свои версии библиотек как бы...

Добавлено через 2 минуты
В моём понимании OCX это зло, но The Trick поспорит конечно со мной... Ну а толку-то спорить сложности с открытием проекта у меня уже на лицо.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
18.10.2024, 21:51
giaber, все нормально с OCX'ами. OCX как раз является частным случаем DLL. Многие программы используют DLL. Делай как делаешь.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    If EnumValues(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", strArray, IsWow64MyProcess) = True Then
        For i = 1 To UBound(strArray)
        ' Из массива strArray полученные Parameters (названия шрифтов) записываем в листвью lstvInstalledFonts
        
            With lstvInstalledFonts.ListItems.Add(, , Left(strArray(i - 1), Len(strArray(i - 1)) - 11))     'название имеет вид Arial (TrueType), убираем " (TrueType)" и загписываем в листвью lstvInstalledFonts
                ' Функция GetKeyValue "узнаёт" значение взятого из массива параметра, присваиваем это значение переменной tmpstring
                tmpstring = GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", strArray(i - 1), IsWow64MyProcess)
                'Во второй столбец листвью пытаемся записать присвоенное tmpstring значение параметра
                .ListSubItems.Add , , tmpstring 'GetKeyValue(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", strArray(i - 1), IsWow64MyProcess)
                'также это же значение записываем в листбокс для контроля
                List1.AddItem tmpstring
                
            End With
            
        Next
        '
    End If
Это без проверки самого алгоритма. У тебя листвью сортируемый и каждое значение попадает в разные места, а ты все значения перебираешь по порядку - в этом и проблема.
1
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
19.10.2024, 04:41  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
У тебя листвью сортируемый и каждое значение попадает в разные места, а ты все значения перебираешь по порядку
Да, в этом-то и оказалось дело. Я, конечно, теперь знаю этот момент и буду учитывать в будущем, но я не понимаю логики работы листвью - значит у него табличное ОТОБРАЖЕНИЕ (во-всяком случае в режиме lvwReport), но не табличная адресация? И сортировка происходит не так что при изменение позиции элемента первого столбца ВСЯ строка занимает ту же позицию? Я представлял листвью как разновидность Grid-а, а оно "вот оно как, Михалыч!"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2024, 04:41
Помогаю со студенческими работами здесь

Как можно добавить данные из ексель в листбокс?
Добрый вечер! подскажите пожалуйста, как можно вписать (добавить) данные из ексель в листбокс? Заранее благодарю ВАС

Как сделать что б из потока выводились данные на листбокс
Есть код: #pragma optimize ("", off) ULONG WINAPI ServiceThread(PVOID lpParam) { while(1) { Sleep(20); ...

В БД записываются цифры, а текст - нет
Добрый день застрял на задаче, при вводе текста в поле Edit1.Text выдает ошибку, а при вводе цифр все отлично записывается в БД ...

Данные не записываются в БД
Здравствуйте! Прошу помощи, потому что сам уже не понимаю. Есть БД в которую должны записываться данные, но половина из них...

Данные не записываются в БД
Данные, которые берутся из формы, не записываются в таблицу. Вот код: <?php $db=mysql_connect('localhost','***','***'); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru