|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronА переспрашивать не хочутем самым делая еще хуже, так как я считаю, что ты понял vdekameronпошлете или просто не ответитепошлю в гугл или учебник, если считаю, что там есть ответ, но если ты возвращаешься из гугла или учебника, не разобравшись, попытаюсь все же объяснить. vdekameronНе совсем понял(((так. мы возвращаемся на две недели назад - основы процедур: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
не запуская код ответь, что выведет MsgBox при нажатии кнопки и почему, потом проверь Пока нет понимания этого кода, нет смысла идти дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 12:28 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronДелаю вот так выдает ошибку - byref argument type mismatchа надо взять словарь английского и перевести ошибку. Код: vbnet 1.
на основании каких соображений ты так определил аргумент? vdekameronНе могу понять как цикл записать чтобы перебирал все им. shКоллекцию удобнее всего перебирать с помощью цикла For Each, а не с помощью For. Тогда тебе не надо будет думать о том, сколько у тебя элементов в коллекции и как они называются. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 12:32 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proне запуская код ответь, что выведет MsgBox при нажатии кнопки и почему, потом проверь Пока нет понимания этого кода, нет смысла идти дальше Сначала прочитал, ответил и проверил- сошлось. Я понимаю смысл каждой строчки этого кода. Код: vbnet 1.
- вызываю функцию, передавая ей a=2 и b=4. Возвращаем из нее 18 Shocker.Proна основании каких соображений ты так определил аргумент? на основании того, что кол-во шейпов это же число. Shocker.ProКоллекцию удобнее всего перебирать с помощью цикла For Each, а не с помощью For. Сейчас читал про For each. Код: vbnet 1. 2. 3. 4. 5.
Не могу понять почему он присваивает sh имя - Таймер Разве sh не коллекция контролов? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 13:29 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronна основании того, что кол-во шейпов это же число.А причем тут количество шейпов? Ты разве количество передаешь в процедуру? Что ты должен передать туда? И как ты у КОЛИЧЕСТВА потом нашел свойства Left и Top? vdekameronСейчас читал про For each. Код: vbnet 1. 2. 3. 4. 5.
Не могу понять почему он присваивает sh имя - Таймер Разве sh не коллекция контролов?Всё не то. Во-первых, тебе нужно перебирать в цикле коллекцию шейпов, а не коллекцию контролов формы Во-вторых, где и как у тебя объявлена sh? Уже десять раз сказал, что переменные надо в процедурах объявить, а ты опять ее неизвестно где объявил. Нет, sh - это не коллекция контролов. Код: vbnet 1.
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 13:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProВо-вторых, где и как у тебя объявлена sh? Уже десять раз сказал, что переменные надо в процедурах объявить, а ты опять ее неизвестно где объявил. Объявляю в процедуре возникает ошибка, а так работает. значит неправильно объявил ее? Вот до чего дошел. Все работает, только не знаю куда вопхнуть счетчик k=k+1. когда один sh он отрабатывает 10 шагов первого sh , а когда появляется второй sh то третий уже появляется после 5 шагов первого и 5 второго. т .е. в прогрессии уменьшается число шагов каждого до появления след. Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 14:52 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronОбъявляю в процедуре возникает ошибка, а так работает. значит неправильно объявил ее?значит ты не понимаешь, где и для чего она используется. Ты мыслишь тем, что переменная sh у тебя глобальная, поэтому затык, второй день никак не получается выбить из тебя эту дурь. Забудь, у тебя нет глобальной переменной sh. Чтобы тебе было проще, забудь вообще про слово "sh" и объяви несколько переменных для шейпов с РАЗНЫМИ именами в каждой из процедур. Когда ты это сделаешь правильно, у тебя ВНЕЗАПНО прояснится в голове. Кроме того, ты не сделал что я просил. У One_step должен быть параметр на входе - он должен принимать шейп и работать С НИМ (а не с каким-то непонятно каким sh). Ты пока все еще не понял принцип автономности процедур. Как сделаешь, будем со счетчиком разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:02 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:05 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proзабудь вообще про слово "sh" и объяви несколько переменных для шейпов с РАЗНЫМИ именами в каждой из процедур Я запутался!((( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:31 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Ок, давай по порядку. Удали строку Код: vbnet 1.
она не нужна Где у тебя использовалась эта sh? 1) в Timer1_Timer напиши внутри собственный Dim (только другое имя дай) кстати, лучше объявлять как Shape, а не как Control, ведь это же шейп 2) в One_step тут у тебя должен быть входной параметр (см. подсказку Кости) 3) в eddcontrol см. п. 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
eddcontrol переименуй в AddShape, а то глаз режет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:42 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Немного прояснилось, но честно сказать все-равно не понимаю до конца. Уже тупым себя начинаю чувствовать. Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 15:57 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Вот теперь все ок. Спрашивай, что не понимаешь. Что касается счетчика шагов. Смотри, каждый тик таймера сначала двигает только один шейп (и прибавляет счетчик на единицу) Потом начинает двигать сразу два шейпа (и счетчик меняется на две единицы за один тик) Потом начинает двигать сразу три шейпа (и счетчик меняется на три единицы за один тик) поэтому каждый следующий шейп у тебя появляется все быстрее и быстрее. Чтобы счетчик считал один раз за один тик таймера, его надо поместить.... куда??? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:07 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proкуда??? ) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:23 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Верно, но зачем eddcontrol чего-то вообще знать о счетчике? Это - не ее предметная область Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:35 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Проверил, все работает. Как теперь быть со step? чтобы каждый шар летел в своем направлении а не все в линеечку) Я так понимаю только после этого можно будет задать условие, что делать новый шар после удара об край. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:38 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProВерно, но зачем eddcontrol чего-то вообще знать о счетчике? Это - не ее предметная область тогда получается что и k можно объявить только в этой процедуре ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
- сделать типизованную коллекцию на основе своего класса - в этом классе реализовать нужные методы - вызывать методы с требуемыми параметрами для каждого элемента коллекции ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronтогда получается что и k можно объявить только в этой процедуре беру слова назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:42 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_One- сделать типизованную коллекцию на основе своего класса - в этом классе реализовать нужные методы - вызывать методы с требуемыми параметрами для каждого элемента коллекции А поподробнее можно?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:45 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
делается через визард коллекций в студии , дальше уже сам ручками модифицируй ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:47 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronтогда получается что и k можно объявить только в этой процедуреда, только ее придется объявить как Static, чтобы значение не обнулялось между вызовами. А можно оставить и так. По уже сделанному коду все понятно или есть неясности? Что касается отскоков, давай думать. Для того, чтобы организовать отскок, нам нужно знать, в какую сторону летит конкретный шейп. Тут одной переменной не обойдешься, ведь у каждого шейпа своя траектория. Есть два варианта: 1) Хранить нужные данные в имеющейся коллекции шейпов. Только теперь там придется хранить не сам шейп, а некоторую структуру, которую надо организовать. Структура будет включать в себя ссылку на сам шейп, а также его StepX и StepY. Почти такой вариант предложил Костя. 2) Хранить нужные данные в самом шейпе. Для этого у каждого контрола есть специальное свойство. Но оно - текстовое, а нам надо хранить два значения (или, как вариант, шифр направления движения, типа СВ - северо-восток). Тогда при каждом шаге нужно будет его расшифровывать и проверять. Каким путем ты хочешь пойти? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:49 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneделается через визард коллекций в студии , дальше уже сам ручками модифицируйсовсем необязательно, можно тупо хранить в коллекции структуру, объявленную тут же ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
можно, но со своей коллекцией удобней и гибче, опять же можно глобальные методы сделать, общие для всех элементов и тд и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:51 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneможно, но со своей коллекцией удобней и гибче, опять же можно глобальные методы сделать, общие для всех элементов и тд и тпто понятно, но рано еще )) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:54 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
вот тут погляди http://rusproject.narod.ru/games/ball_suspend.zip ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 16:54 |
|
|
start [/forum/topic.php?fid=60&msg=38866856&tid=2156049]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 147ms |
0 / 0 |