powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Передвижение окружности в VB
38 сообщений из 38, показаны все 2 страниц
Передвижение окружности в VB
    #36611482
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите пожалуйста, что нужно в этой программе подкаректировать, чтобы при нажатии, например, F3, окружность либо оставляла либо не оставляла след? спасибо заранее большое. Я уже не знаю что придумать:-)

Option Explicit
Dim x, y, a, r As Integer


Private Sub Form_Load()
Scale (0, 100)-(100, 0)
r = InputBox("Задайте радиус:-)")
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Circle (x, y), r, vbRed, , , 0.5

Label1 = r
a = 5
Select Case KeyCode:

Case vbKeyRight: x = x + a
If x > (100 - r) Then x = 100 - r
If (x < (100 - r)) And (x = (100 - r)) Then x = x + r

Case vbKeyLeft: x = x - a
If x < r Then x = r
If (x > r) And (x = r) Then x = x - r

Case vbKeyDown: y = y - a
If y < r Then y = r
If (y > r) And (y = r) Then y = y - r

Case vbKeyUp: y = y + a
If y > (100 - r) Then y = 100 - r
If (y < (100 - r)) And (y = (100 - r)) Then y = y + r

Case vbKeyF2: a = InputBox("На сколько увеличим радиус??")
r = r + (a)

End Select
End Sub
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611492
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уж не первый пост, пора научиться пользоваться тэгами
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
Option Explicit
Dim x, y, a, r As Integer


Private Sub Form_Load()
Scale ( 0 ,  100 )-( 100 ,  0 )
r = InputBox("Задайте радиус:-)")
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Circle (x, y), r, vbRed, , ,  0 . 5 

Label1 = r
a =  5 
Select Case KeyCode:

Case vbKeyRight: x = x + a
If x > ( 100  - r) Then x =  100  - r
If (x < ( 100  - r)) And (x = ( 100  - r)) Then x = x + r

Case vbKeyLeft: x = x - a
If x < r Then x = r
If (x > r) And (x = r) Then x = x - r

Case vbKeyDown: y = y - a
If y < r Then y = r
If (y > r) And (y = r) Then y = y - r

Case vbKeyUp: y = y + a
If y > ( 100  - r) Then y =  100  - r
If (y < ( 100  - r)) And (y = ( 100  - r)) Then y = y + r

Case vbKeyF2: a = InputBox("На сколько увеличим радиус??")
r = r + (a)

End Select
End Sub
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611496
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не поняла...:-(
вообще не могу сама разобраться, а здесь все серьезные слишком...
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611502
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91я не поняла...:-(
вообще не могу сама разобраться, а здесь все серьезные слишком...

1) Почитайте правила форума.
2) Нажмите "Цитировать" и увидите, как правильно оформляется код
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611504
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91подскажите пожалуйста, что нужно в этой программе подкаректировать, чтобы при нажатии, например, F3, окружность либо оставляла либо не оставляла след?

можно вот так

Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Option Explicit

Private x As Integer, y As Integer, a As Integer, r As Integer
Private TraceMode As Boolean


Private Sub Form_Load()
Scale ( 0 ,  100 )-( 100 ,  0 )
r = InputBox("Задайте радиус:-)")
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If Not TraceMode Then Me.Refresh
Circle (x, y), r, vbRed, , ,  0 . 5 

Label1 = r
a =  5 
Select Case KeyCode:

Case vbKeyRight: x = x + a
If x > ( 100  - r) Then x =  100  - r
If (x < ( 100  - r)) And (x = ( 100  - r)) Then x = x + r

Case vbKeyLeft: x = x - a
If x < r Then x = r
If (x > r) And (x = r) Then x = x - r

Case vbKeyDown: y = y - a
If y < r Then y = r
If (y > r) And (y = r) Then y = y - r

Case vbKeyUp: y = y + a
If y > ( 100  - r) Then y =  100  - r
If (y < ( 100  - r)) And (y = ( 100  - r)) Then y = y + r

Case vbKeyF2: a = InputBox("На сколько увеличим радиус??")
r = r + (a)

Case vbKeyF3
TraceMode = Not TraceMode

End Select
End Sub
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611518
Ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо, но он не хочет так работать. выделяет TraceMode как ошибку:-(
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611519
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ane4kaaa91Shocker.Pro, спасибо, но он не хочет так работать. выделяет TraceMode как ошибку:-(

Какая именно ошибка?
На какой именно строке?
У меня все работает.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611523
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, обратите внимание, если вы хотите определить несколько переменных в одной строке, то писать надо не так:
Код: plaintext
Dim x, y, a, r As Integer
а вот так
Код: plaintext
Dim x As Integer, y As Integer, a As Integer, r As Integer
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611525
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо за совет:-)
А ошибку выдает такую, что выделяет желтым строку
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) и выделяет именно TraceMode.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611531
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91А ошибку выдает такую

Текст ошибки дайте.
Ctrl-F5 нажмите - будет сообщение об ошибке.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611538
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, мне очень не удобно, но я вас немного не понимаю...:-(
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611540
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91Shocker.Pro, мне очень не удобно, но я вас немного не понимаю...:-(

Что непонятно?
Как нажать Ctrl-F5?

Сначала нажать и удерживать Ctrl, потом нажать F5, потом отпустить F5, потом отпустить Ctrl
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611542
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде не блондинка я... всё сделала так...
выделили мне TraceMode ...
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611547
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91вроде не блондинка я... всё сделала так...
выделили мне TraceMode ...

1) Нажмите Ctrl-F5
2) Больше ничего не нажимайте
3) Опишите, что вы видите на экране или выложите сюда снимок экрана
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611554
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я нажала, всё посмотрела, но никаких изменений кроме выделения строки
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If Not TraceMode Then Me.Refresh я не увидела!
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611564
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расширим задачу

1) Закройте свой проект вместе с VB
2) Откройте VB
3) Загрузите свой проект
4) Нажмите Ctrl-F5
5) Больше ничего не нажимайте
6) Опишите, что вы видите на экране или выложите сюда снимок экрана
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611609
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, мне надо сказать вам огромное спасибо! я оч вам благодарствую, я наверно вам надоела глупыми вопросами:-) я нашла собственную ошибку! работает все, очень клево:-)
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611619
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91Shocker.Pro, мне надо сказать вам огромное спасибо! я оч вам благодарствую, я наверно вам надоела глупыми вопросами:-) я нашла собственную ошибку! работает все, очень клево:-)

Вообще, странновато у вас работает. Сначала рисуется окружность по СТАРЫМ координатам. Затем вычисляются НОВЫЕ координаты, но окружность по новым координатам не рисуется, а ждет следующего нажатия клавиши.

То есть я жму вниз-вниз-вниз, окружность перемещается вниз. Затем, жму "вправо", окружность перемещается вниз. И только после следующего нажатия любой клавиши переместится вправо.

P.S. Если совсем элементарные вопросы по работе VB (не по алгоритмам, которые могли бы быть интересны другим участникам форума), чтобы было оперативно - можем общаться по аське. Отпишите мне на мыло (оно указано в профиле) свою аську - я постучусь.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611621
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо:-) я могу обращаться если в что??
а этот нюанс по поводу чтобы вправо - то сначало вниз можно как то поправить?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611629
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91я могу обращаться если в что??

Можете. Главное, чтобы было желание разобраться в том, как работает, а не просто тупо списать.

ane4kaaa91а этот нюанс по поводу чтобы вправо - то сначало вниз можно как то поправить?

Конечно. Надо выводить окружность ПОСЛЕ того, как вычислены новые координаты, а не ДО.

В принципе, в программе много логических ошибок, но все зависит от цели. Если вам надо сделать ДЗ и забыть об этом - одно, если изучать программирование - другое.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611633
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я далека от программирования, но в этой задачке оч долго разбиралась, пыталась ее понять. только вот с этим следом загвостка была.Спасибо вам:-) А Если использовать Cls то происходит же полностью очитска экрана??? а вот еще вопрос, а можно убирать след, с помощью второй окружности, но цвет ее совпадает с фоном?? :-)
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91А Если использовать Cls то происходит же полностью очитска экрана???

В принципе, да, Cls тут будет даже правильней использовать, чем .Refresh

ane4kaaa91а вот еще вопрос, а можно убирать след, с помощью второй окружности, но цвет ее совпадает с фоном?? :-)

Можно, но тогда лучше вообще поступить по-другому: создать объект Shape с типом "окружность" и двигать именно этот объект (то есть отказаться от оператора Circle в принципе).
Но в этом варианте будет труднее работать со следом.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611644
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо, очень понятно все объяснили:-) попробую сейчас:-) а как объяснить TraceMode?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611649
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91а как объяснить TraceMode?

А что именно непонятно?
TraceMode - это переменная, которую я ввел сам, в смысле - это не какая-то стандартная VB-шная функция.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611650
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ааа, не стандартная. А преподаватель мой поймет? :-))))))
как вот именно это ему объяснять?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611657
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91ааа, не стандартная. А преподаватель мой поймет? :-))))))
как вот именно это ему объяснять?

А что именно объяснять-то?
Вы сами разберитесь, как все это работает, тогда и преподаватель придраться к вам не сможет.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611659
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я поняла как всё работает:-) и 100% уверена что ему все ясно будет, просто как обычно у нас нужно объяснить каждую строчку. и вот, я не знаю как правильно сказать что такое TraceMode.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611661
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это переменная
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611663
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, переименуйте ее в "e" - останется меньше вопросов?

У вас не возникает вопросов, что такое "r" во второй строчке вашего кода?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611667
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, это радиус:-) т.е. это просто любая переменная?:-)))
вы не устали еще свою время на меня тратить?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611674
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91Shocker.Pro, это радиус:-) т.е. это просто любая переменная?:-)))

Скажем так.
r - это переменная, в которой мы храним радиус.
TraceMode - это переменная, в которой мы храним режим трассировки (то бишь "следа")
= True - режим трассировки включен
= False - режим трассировки выключен
По умолчанию TraceMode=False, если надо True - можно засунуть инициализацию в Form_Load

ane4kaaa91вы не устали еще свою время на меня тратить?

с вас бутерброд, ибо хочу есть, но все еще сижу на работе.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611675
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, на работе????????????????? :-( блин, а как мне вам бутерброд??? :-)))) а вы откуда сами??
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611676
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Москва/ВДНХ
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611679
Ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, ой ой :-) далеkо:-) даже не знаю как с бутербродом быть:-) так поздно же уже работать!
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611683
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ane4kaaa91Shocker.Pro, ой ой :-) далеkо:-) даже не знаю как с бутербродом быть:-) так поздно же уже работать!

Насколько далеко??? Экспресс-почтой испортится?
P.S. Нашел сушки и чай... пока с голоду не умру.... Можете еще чего-нить спросить.
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611687
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, даже экспресс-почтой испортится:-) я в Кемерово:-) Вас зовут то как? кому спасибо говорить?
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611692
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ane4kaaa91я в Кемерово

Надо же... следующим постом хотел пошутить примерно так "ну разве ж это далеко... N часов на машине... вот если бы вы были в Новосибирске....". И вот ведь....

ane4kaaa91Вас зовут то как? кому спасибо говорить?

Не-не-не-не... Дэвид Блейн, не надо за меня свечку ставить.
Мне жена не разрешает с Анечками знакомиться
...
Рейтинг: 0 / 0
Передвижение окружности в VB
    #36611698
ane4kaaa91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, и не просила со мной знакомиться :-) правильно что не разрешает:-)
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Передвижение окружности в VB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]