Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9

Возможно ли создать счетчик по свойству элементов в VB6?

16.05.2014, 17:45. Показов 1204. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотелось бы осуществить подсчёт элементов с определенным свойством (например, сколько у в одной рамке проставлено галочек или сколько рисунков являются видимыми)? Заранее спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2014, 17:45
Ответы с готовыми решениями:

Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой
Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой: -поле состояния счетчика; -методы для установки и...

Полиморфизм, возможно ли вывести значение по конкретному свойству класса?
Имеется простенькая программа: public class Person { public string name { get; set; } public string surname {...

Многопоточность в VB6: возможно ли
Я мало грамотен в этих вещах (чуть-чуть читал в нете), но хотелось бы немного уточнить. Многопоточность - улучшает продуктивность проги!!!...

15
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.05.2014, 18:07
______________
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
16.05.2014, 18:18  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
______________
Эм... Вы хотите сказать "нет"?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
16.05.2014, 18:23
Visual Basic
1
2
3
   for each cnt in Me.controls
 
   next
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
16.05.2014, 20:30  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Visual Basic
1
2
3
   for each cnt in Me.controls
 
   next
Спасибо, но мне кажется, это не совсем то. Я язык учу совсем недавно, просто задание такое попалось. Не могли бы Вы пояснить подробнее?

У меня есть массив чекбоксов(A1), индексы от 1 до 100. Хотелось бы, чтоб после нажатия кнопки подтверждения выводилось сообщение об ошибке, если выбрано больше или меньше двадцати галочек. Если ровно 20 - работа продолжается. Выглядит примерно так
Миниатюры
Возможно ли создать счетчик по свойству элементов в VB6?  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
16.05.2014, 21:00
Если массив checkBox-ов, то еще проще

Visual Basic
1
2
3
4
5
6
7
c%=0
for i%=1 to 100
    if A1(i%).checked then c%=c%+1
next i%
if c%=20 then
   '....
end if
0
16.05.2014, 22:05

Не по теме:

Морской бой что ли? :D
4 * 1 + 3 * 2 + 2 * 3 + 1 * 4=20

0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
18.05.2014, 01:13  [ТС]
Цитата Сообщение от PAnT0P Посмотреть сообщение

Не по теме:

Морской бой что ли? :D
4 * 1 + 3 * 2 + 2 * 3 + 1 * 4=20

Он самый. Там бы по хорошему проверку написать посерьезнее, но даже эта с двадцаткой не реализовывается. Понять бы, как оно работает, а там и дальше допилила бы.

Добавлено через 1 минуту
Цитата Сообщение от Catstail Посмотреть сообщение
Если массив checkBox-ов, то еще проще

Visual Basic
1
2
3
4
5
6
7
c%=0
for i%=1 to 100
    if A1(i%).checked then c%=c%+1
next i%
if c%=20 then
   '....
end if
Благодарю. Перепилила на под общий стиль кода, но оно не работает (при любом количестве флажков выдает ошибку, даже при 20-ти).
Может быть, у меня в коде ошибка?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub BlueCommand_Click()
c = 0
For Index = 1 To 100
    If CheckA21(Index).Value = True Then
    c = c + 1
    End If
Next Index
If c = 20 Then
Frame2.Visible = False
User.Enabled = False
BlueCommand.Visible = False
Else:
MsgBox "Ïðîâåðüòå êîëè÷åñòâî óñòàíîâëåííûõ ïàëóá.  ñóììå èõ äîëæíî áûòü  20."
End If
End Sub
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
18.05.2014, 06:01
Visual Basic
1
  If CheckA21(Index).Value = Checked Then
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.05.2014, 09:30
Лучший ответ Сообщение было отмечено Shenn как решение

Решение

можно просто:
Visual Basic
1
If CheckA21(Index) Then
1
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
18.05.2014, 12:19
Создай массив 10х10, там где корабль ставь 1, где вода 0, потом пробегаешь массив в цикле и суммируешь элементы
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
18.05.2014, 13:45  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
Visual Basic
1
  If CheckA21(Index).Value = Checked Then
"Methot or data not found" Потому, собственно, и заменила.
Заработало вот в таком варианте:

Цитата Сообщение от Alex77755 Посмотреть сообщение
Код Visual Basic
1
If CheckA21(Index) Then

Потому огромное вам обоим спасибо.

Добавлено через 1 минуту
Цитата Сообщение от PAnT0P Посмотреть сообщение
Создай массив 10х10, там где корабль ставь 1, где вода 0, потом пробегаешь массив в цикле и суммируешь элементы
Благодарю, но мне это не подходит. Моя реализация мне кажется удобнее. Теперь только расстановку кораблей реализовать осталось. Самое сложное, конечно, но, надеюсь, справлюсь.

Добавлено через 40 секунд
Цитата Сообщение от Alex77755 Посмотреть сообщение
можно просто:
Visual Basic
1
If CheckA21(Index) Then
Ого, и правда заработало. Спасибо!
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
18.05.2014, 13:52
Цитата Сообщение от Shenn Посмотреть сообщение
Благодарю, но мне это не подходит. Моя реализация мне кажется удобнее. Теперь только расстановку кораблей реализовать осталось. Самое сложное, конечно, но, надеюсь, справлюсь.
Ну, ну, а где потом сделанные ходы хранить будешь? да и правильность кораблей легче проконтролировать в массиве чем с контролами
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
18.05.2014, 14:36  [ТС]
Цитата Сообщение от PAnT0P Посмотреть сообщение
Ну, ну, а где потом сделанные ходы хранить будешь? да и правильность кораблей легче проконтролировать в массиве чем с контролами
Вот над этим пока думаю. Но не переделывать же все теперь.

А в каком смысле "хранить ходы"?

На данный момент готово всё, кроме главного - расстановки кораблей. Есть несколько идей, но пока они не собрались воедино. Вообще хочу считать индексы флажков на предмет их близости (т.е. нельзя поставить флажок с индексом Х, если Х+1, Х-1, Х+10, Х-!0, Х+11 или Х-11 уже стоит).

Собственно, могу вам для ознакомления exe кинуть, вдруг подскажете чего.
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
18.05.2014, 15:34
Цитата Сообщение от Shenn Посмотреть сообщение
А в каком смысле "хранить ходы"?
Ну к примеру нет смысла дважды стрелять по одной и той же клетке, для этого надо где то запоминать координаты произведенных выстрелов. На листочке обычно в клетку ставят точки если мимо и крестик если попал. Т.е. каждая клетка должна хранить 4 состояния: Пусто, корабль, Выстрел мимо, Выстрел попал. Контрол флажок может хранить только 3 состояния.
0
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 9
18.05.2014, 16:13  [ТС]
Цитата Сообщение от PAnT0P Посмотреть сообщение
Ну к примеру нет смысла дважды стрелять по одной и той же клетке, для этого надо где то запоминать координаты произведенных выстрелов. На листочке обычно в клетку ставят точки если мимо и крестик если попал. Т.е. каждая клетка должна хранить 4 состояния: Пусто, корабль, Выстрел мимо, Выстрел попал. Контрол флажок может хранить только 3 состояния.
Такой проблемы нет, ибо флажки существуют только на стадии расстановки кораблей.

Немного объясню общий алгоритм работы. Программа примитивная, основывается по большей части на массивах управляющих элементов с соответствующими индексами и свойствах объектов - visible, enabled, value. То есть, на первом этапе каждый игрок имеет рамку, содержащую поле 10х10 из флажков (массив, к сожалению, одномерный, ибо двумерные массивы управляющих элементов, насколько я знаю, не существуют в vb6). Игрок ставит двадцать флажков, символизирующих корабли. Их индексы соответствуют индексам изображения с корабликом (т.е. символа "ранен"). Изображения эти прячутся на второй форме под кнопками. Когда игрок нажимает на кнопку игрового поля противника, эта кнопка становится невидимой, а игроки видят изображение - кораблик, если попал, и крестик, если мимо. В случае, если попал, счётчик добавляет единичку. Когда у одного из игроков набирается 20 единичек, то он победил.

Вот ссылка на exe. https://drive.google.com/file/... hBVkk/edit
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.05.2014, 16:13
Помогаю со студенческими работами здесь

возможно ли на одном компе поставить и VB6 и NET?
ли бо же создавать проекты VB6 в NET-е но так что б они потом в VB6 рулили?

Возможно ли поднять/прочитать/запустить на VB6 file.mdb?
есть 2 вопроса 1: где можно найти VB6 2: возможно ли поднять/прочитать/запустить на VB6 file.mdb спасибо заранее...

Возможно ли с помощью VB6 вытащить пароль, если я знаю логин?
Припустим я забыл пароль к моему е-майлу. Возможно ли с помощью VB6 вытащить пароль, если я знаю логин???

Возможно ли рассчитать Циклический избыточный код функциями, доступными vb6.0
Возможно ли рассчитать Циклический избыточный код функциями доступными vb6.0 Есть алгоритм на cpp, но указателей на vb не встречал. ...

Возможно ли создать массив, если количество элементов заранее не известно?
Существует ли возможность создать массив, если количество элементов заранее не известно? Интересует конкретно массив, по причине того что...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru