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

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

30.06.2013, 23:02. Показов 5885. Ответов 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru