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

Создание текстового квеста на Visual Basic 6

30.06.2013, 23:02. Показов 5826. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникла такая задача: после ввода текста в TextBox необходимо подтвердить его нажатием клавиши Enter. В принципе, можно было бы сделать отдельную кнопку, но тогда в игре пришлось бы использовать мышку, что крайне неудобно.
Так же я был бы рад узнать, как сделать так, что бы после нажатия Enter текст в TextBox очищался.
Заранее благодарен за ответ.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2013, 23:02
Ответы с готовыми решениями:

Создание текстового редактова на Basic в Visual Studio 2008
Может у кого-то есть написанный на Basic в Visual Studio 2008 простенький текстовый редактор???? Помогите пожалуйста, курсовая...

Visual Basic 2008. Создание текстового файла на клик
Требуется чтобы при нажатии на кнопку,создавался текстовый файл,по заданному адресу(C:\file.txt - к примеру) За тем нужно чтобы при...

Структура текстового квеста
Хочу попытаться написать текстовый квест по принципу пользователю дают текст с описанием события и пару ответов(или действий). Исходя из...

49
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
02.07.2013, 18:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Phoenix97 Посмотреть сообщение
если нажать на какую-либо из стрелок, выполняется команда, аналогичная List1_Click().
Это логично и правильно.

Если Вам не нравится, то поменяйте List1_Click на List1_DblClick
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
02.07.2013, 18:34  [ТС]
Кажется, у меня получилось создать альтернативу:

Dim D As Integer, s As String
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 And D = 1 Then
    Form1.Visible = False
    Form2.Visible = True
    
    ElseIf KeyCode = 13 Then
    D = 1
    
    Select Case List1.ListIndex + 1
        Case 1: s = "..."
                List1.Visible = False
                
        Case 2: s = "..."
                List1.Visible = False
                
        Case 3: s = "..."
                List1.Visible = False
 
    End Select
    Label1.Caption = s
 
    End If
End Sub
Тогда позиции ListBox'a переключаются стрелками, а подтверждение клавишей Enter
0
02.07.2013, 18:46

Не по теме:

Ну это уже Вам виднее, как удобнее сделать......

0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
02.07.2013, 19:43  [ТС]

Не по теме:

Как я уже говорил, не хочется использовать мышку... В играх подобного плана это жутко не удобно.



Добавлено через 30 минут
А какой командой можно изменить содержимое ListBox'a из кода программы?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
02.07.2013, 19:59
Можно добавлять в конец списка
Visual Basic
1
List1.AddItem "Какой-то пункт"
Можно заменить нужные строки
Visual Basic
1
List1.List(3) = "dfgh"
Строки нумеруются с ноля.

Почитайте литературу про листбокс, очень полезно.
0
02.07.2013, 20:36  [ТС]

Не по теме:

Цитата Сообщение от SoftIce Посмотреть сообщение
Почитайте литературу про листбокс, очень полезно.
Этому мешают два пункта:
1) Сейчас я живу в деревне, где книжных магазинов пока не построили.
2) Очень слабый интернет (даже на то, что бы загрузить web-страницу, уходит порядка 5 минут, не говоря уже о загрузке файлов)
Так что я бы и рад, да возможности нет.

0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 17:52  [ТС]
Снова нужна помощь профессионалов, уже около недели бьюсь над данной проблемой.
Есть ListBox с 9 строками, нужно, что бы после выбора любой из строк, она исчезала, но не нарушала порядка индексов других строк. Я пробовал сделать так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim m As Integer
 
Private Sub form_load()
m = 1
 
End Sub
 
Private Sub form_keydown(Shift As...)
If KeyCode = 13 Then
 
List1.RemoveItem(m - 1)
m = m + 1
 
Select Case List1.ListIndex + m
                    
Case 1:
<...>
 
Case 2:
<...>
 
Case 3:
<...>
 
'И т.д.
 
End Select
 
End If
 
End Sub
но это работает только если выбирать строки по порядку. А хотелось бы не нарушать возможности выбора.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
05.08.2013, 18:06
А если не удалять строку из Листа, а сделать её "пустой":
Visual Basic
1
List1.List(List1.ListIndex) = " "
или
Visual Basic
1
List1.List(m -1) = " "
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 18:11  [ТС]
Но тогда при нажатии на "пустую" строку всё равно будет выводиться событие из Case, что в конкретном случае нежелательно. Да и пустые строки смотрятся не очень...
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
05.08.2013, 18:29
Цитата Сообщение от Phoenix97 Посмотреть сообщение
Но тогда при нажатии на "пустую" строку всё равно будет выводиться событие из Case, что в конкретном случае нежелательно. Да и пустые строки смотрятся не очень...
Ну тогда не держись за Лист (как дитя за мамин подол), а загони свои строки в строковый массив и делай с НИМ что хочешь !!
А смотреть ИХ можно в МультиЛайновом ТекстБоксе (или Лейбле)

Добавлено через 12 минут
Пардон, погорячился (вроде в Лейбле нет такого свойства)
Объясни поконкретней чего хочешь получить (на пальцах или на картинке)...
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
05.08.2013, 18:38
Используй ListView храни в свойстве Tag индекс. Вообще правильно посоветовал morgann55, нужно создать структуру и в ней хранить имя, индекс, видим\невидим. И выводить из нее в List
1
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 19:18  [ТС]
В общем, у меня так ничего и не получилось, поэтому я решил забить на RemoveItem и обойтись банальными If'ами. Но всё равно спасибо за советы!
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
05.08.2013, 19:22
Цитата Сообщение от Phoenix97 Посмотреть сообщение
В общем, у меня так ничего и не получилось, поэтому я решил забить на RemoveItem и обойтись банальными If'ами. Но всё равно спасибо за советы!
Ну тогда уж лучше сделай выбор через Select Case - быстрее будет (более часто выпадающие поставь в начало)
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 19:27  [ТС]
Цитата Сообщение от morgann55 Посмотреть сообщение
Объясни поконкретней чего хочешь получить
Так как это текстовый квест, нужны диалоги. А так как это ещё и детективная адвенчюра, без допросов/расспросов никак. Как правило, имеется ряд вопросов, которые нужно задать собеседнику(а-ля подозреваемому), но задать только один раз. Для этого и была придумана вся эта котовасия.
Но так как это оказалось слишком муторно, думаю, от "задать только один раз" можно отказаться.

Добавлено через 2 минуты
Цитата Сообщение от morgann55 Посмотреть сообщение
сделай выбор через Select Case
Select Case уже используется, я имел ввиду If внутри Select'a
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
05.08.2013, 19:28
Ну это не объяснение того, чего ты хотел получить в Листе
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 19:34  [ТС]
Цитата Сообщение от morgann55 Посмотреть сообщение
Ну это не объяснение того, чего ты хотел получить в Листе
Есть ряд вопросов.
Вопрос 1
Вопрос 2
Вопрос 3
После выбора одного из вопросов он должен "исчезнуть" из списка
Но беда в том, что при этом все остальные вопросы смещаются на один назад (то бишь был Вопрос 3, стал Вопрос 2)
Но при этом SelectCase остаётся без изменений, а значит выбирая "Вопрос 1" мы получаем ответ на "Вопрос 2"
(Надеюсь, так понятней)
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
05.08.2013, 19:59
Ну ты ведь вроде выбираешь номер через m (m+1 там), так вот после удаления не повышай m (а может даже m-1 надо дать)...
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 20:39  [ТС]
Так если m не повышать, программа будет удалять только первую строку, а если сделать m = m - 1 то вообще выдаст ошибку.
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
05.08.2013, 20:45
Я тебе написал как правильно сделать, чем тебя это способ не устраивает?
0
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 29
05.08.2013, 20:53  [ТС]
The trick, извини, просто не совсем понял, как это сделать. Если не сложно, можешь привести пример?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2013, 20:53
Помогаю со студенческими работами здесь

Visual Basic 6 Как вытащить из текстового поля текст компонент WebBrowser
Используется Компонент webbrowser прикол в том что нету name а только имя класса my-input6 а как по нему вытащить из тектового поля текст...

Map для текстового квеста
Доброго времени суток,пишу скрипт для текстовой игры и не знаю как привязать к коду map и текст с описанием действий,не могу привязать...

Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net

Вычисление значений функции двух переменных в Visual Basic - Visual Basic
Помогите пожалуйста! В среде VB написать программу вычисления значений функции двух переменных. Ориентировочный вид окна программы и...

Создание матрицы в Visual Basic
Дано две целочисленные матрицы размером . Найти сумму матриц. Умножить полученную матрицу на значение у: Определить: количество...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru