|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Гуглю уже минут 20. Нифига толкового нет на тему как программно создать фигуру shape. Если не сложно, подскажите как это сделать. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 17:43 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
начать запись макроса вставить shape мышкой закончить запись макроса посмотреть записанный макрос понять записанный макрос ... профит ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 17:49 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Antonariy, Браво за аватарку! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 17:51 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Какой еще макрос? Я написал в ветке Visual Basiс. Хотел создать на VB6. Но тем не менее воспользовался идеей. Antonariyначать запись макроса вставить shape мышкой закончить запись макроса посмотреть записанный макрос понять записанный макрос В excel проделал это, ибо думаю код будет похож. Но этот макрос после записи пуст! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 17:57 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronКакой еще макрос? Я написал в ветке Visual Basiс. Хотел создать на VB6. тьфу, я-то уже и забыл, что эта ерунда есть в VB6, думал по офису вопрос. Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 18:17 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Antonariyтьфу, я-то уже и забыл, что эта ерунда есть в VB6ты, походу, еще забыл, чему равно True в VB ))) ЗЫ: Я тоже про офис подумал сначала ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 18:39 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proчему равно True в VBНу, главное помнить, чему не равно :-) 0 - False. А все остальное уже True. Поэтому можно и 3 поставить, VB воспримет как True. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 19:24 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
The_Prist, да я-то в курсе, троллю по-тихому ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 19:30 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyтьфу, я-то уже и забыл, что эта ерунда есть в VB6ты, походу, еще забыл, чему равно True в VB )))да пофиг, +/- важен лишь в математике, и на самом деле я не брезгую заменять условия формулами, они быстрее работают, так что значение true мне прекрасно известно :). просто из-за неопределенности типа sh интеллисенс не подсказал варианты для visible, а 1 пейсать короче, чем true. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2015, 22:34 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Antonariy,Shocker.Pro,The_Prist, Да тут целые баталии развернулись) Спасибо! А насчет свойства Visible пока вчера гуглил прочитал. Что по умолчанию создается shape.visible=false , поэтому понятно почему =1 или true ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 08:13 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Выполняется отскакивание shape1 от краев формы. Как только шар касается правого края, создается новый шар. Подскажите пожалуйста как организовать движение каждого нового появляющегося shape. В учебнике этого нет, но мне уже самому интересно. Если не сложно подскажите. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 09:25 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
в этом коде Код: vbnet 1.
переменной sh присваивается созданный шейп. Соответственно, двигать нужно не Shape1, a sh ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 10:09 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProСоответственно, двигать нужно не Shape1, a sh Я наверное снова не достаточно лаконично выразился Код, который скинул Антонарий я понял. Также как и то, что можно допустим Me.Controls.Add("VB.Shape", "sh1") писать без Me и то, что мы создали круг с именем sh. Вопрос в другом. Я то его двигать смогу, например точно так же как и shape1 созданный в design. НО ведь пока первый шар не ударится об край формы следующего шара нет, отсюда вытекают те вопросы, которые я некорректно задал: 1) Как прописать в таймере что если контрола нет, то ..... 2) Как создавать каждый раз shape с новым именем( когда шар ударился второй раз об край формы вылезла ошибка - такой объект уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 10:28 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
2) Один вариант: Задать контролу в дизайне свойство Index = 0. Это сделает его массивом контролов. Нулевой элемент скрываем - Visible = 0 Добавить новый контрол - Код: vbnet 1. 2.
Другой вариант: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
"sh" & colShapes.Count будет работать до тех пор, пока из коллекции не начнут удаляться элементы произвольным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 11:28 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Antonariy"sh" & colShapes.Count будет работать до тех пор, пока из коллекции не начнут удаляться элементы произвольным образом. Ну тут понятно, я смогу и сам ограничить число их появления. Самый главный вопрос в том как мне потом вдохнуть в эти sh жизнь Код: 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.
Придется в процедуре таймера для каждого sh писать Код: vbnet 1. 2.
Если так, то если контролов будет 100 , то строк будет 200, что как минимум не правильно. И второе, возвращаясь к первому своему вопросу, пока первый шар не ударился о край формы таймер выполнится несколько раз. И сразу выдаст ошибку, что необходим объект. Конечно и это можно обойти, опираясь на свой минимум знаний, и включить обработчик ошибок, но и это мне кажется не совсем правильно. Может есть более правильный и простой способ избежать этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 13:27 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Алгоритм опиши словами, а не кодом Как я понял: Шейп двигается до края экрана, как только достиг, мы на него плюем, создаем новый шейп и двигаем его. И зачем нам эти 200 строк? мы двигаем только текущий шейп, на остальные забили. Возможно, я неверно понял задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 17:21 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProВозможно, я неверно понял задачу. Нет(( Это я как обычно объяснил и думаю раз я знаю что нужно, то должны догадаться и все(( А на самом деле идея в том, что когда первый shape (созданный в design ) касается края появляется второй и он должен начать двигаться с того места где появился по тому же закону что и первый shape( который остается в движении и видимым) т.е. Код: vbnet 1. 2.
При чем если сделать даже как я написал vdekameronПридется в процедуре таймера для каждого sh писать Код: vbnet 1. 2.
То после появления второго sh он сразу сольется с первым и будут дружно лететь вместе как один т.к. Код: vbnet 1. 2. 3. 4. 5.
Вот тут я и застрял. Надеюсь в этот раз понятнее объяснил ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 17:35 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
То есть у всех шейпов одно и то же место старта? ЗЫ: не надо плодить сущности, зачем создавать 99 шейпов программно и один в дизайне? создавай все 100 программно, это сильно упростит программу. ЗЗЫ: Делаешь процедуру, которая называется ОДИН_ШАГ и на входе получает шейп. Процедура делает один шаг указанному шейпу (при этом ей все равно, с каким шейпом она работает, вспомни, чему я тебя учил - процедура не знает ничего о том, кто ее вызывает) Далее устраиваешь цикл, который который вызывает этот шаг для каждого из существующих шейпов. То есть имеет место быть стандартный прием программирования - инкапсуляция. Вышестоящая программа делает шаги, но не знает, каким образом реализуется сам шаг. Процедура делает шаг, но ей все равно, кто ее вызывает и зачем. Таким образом легче программу понимать, модифицировать и отлаживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2015, 18:05 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proсоздавай все 100 программно, это сильно упростит программу. Сделал. Shocker.ProЗЗЫ: Делаешь процедуру, которая называется ОДИН_ШАГ и на входе получает шейп. Сделал. ИТОГ:-Первый созданный sh двигается и когда касается правого края появляется второй sh, который сразу оказывается возле первого, а не плавно начинает двигаться со своего места появления. При этом первый sh уже стоит на месте т.к. Таймер уже работает со вторым. Я не проигнорировал вашу строку- Shocker.Proалее устраиваешь цикл, который который вызывает этот шаг для каждого из существующих шейпов. Но как его сделать, если sh появляются не сразу все а один за одним( при касании об правый край формы) Повторю конечная цель в том, чтобы появлялся шар в движении и при ударе о край формы вызывал другой шар, который бы тоже начинал хаотично двигаться и попав в край формы орять вызывал новый. и так до опупения Не знаю, может я снова сделал не то, что вы имели в виду ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 11:01 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: 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, 11:02 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Ты игнорируешь мои советы, я могу устать советовать. - One_step должна принимать шейп в качестве параметра и работать с ним - One_step должна вызываться в цикле, который перебирает все имеющиеся на данный момент шейпы - Надо избавиться от глобальных переменных, тут пока не нужна ни одна, кроме коллекции или массива шейпов Не пытайся написать программу, пока не придумал алгоритм, который ты можешь написать на бумаге и который будет работать в твоем сознании. Перевод алгоритма в код - дело техники, создание алгоритма - основная работа. Естественно, если ты используешь переменные x и y для всех шейпов сразу, они и будут находиться в одном месте, разве это не очевидно? И вообще, зачем нужны эти переменные, если те же самые значения хранятся в свойствах шейпа Top и Left? Не нужны вообще. Единственная проблема возникнет сейчас в stepY и stepX. Давай пока ты ее решать не будешь, чтобы не морочить себе голову ее можно решать отдельно. Пусть задача выглядит так: один шейп вылетел из исходной точки и полетел в указанном направлении, через 10 шагов в исходной точке появился второй шейп и полетел туда же, через 10 третий и т.п. (при этом, естественно, первый лететь не прекращает). Вот сделаешь это, тогда будем решать с отскоком от края. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 11:15 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
eddcontrol естественно, должна быть тоже автономна. Она ничего не принимает на вход, но возвращает созданный шейп. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 11:17 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
У тебя зацикленность на общих переменных, я не понимаю, откуда это взялось и как заставить избавиться от этой зависимости. Посмотри на свой код, ни одной переменной не определено в процедурах, ни одного параметра, ни одна процедура не возвращает результат, все переменные объявлены на уровне формы. Это неверный подход в принципе. Он тебе мешает, из-за этого у тебя не работает программа, потому что она представляет собой спагетти (и это почти официальный термин в программировании ))). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 11:39 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProТы игнорируешь мои советы, я могу устать советовать. Я понимаю, что вам может просто надоесть возня со мной, но я не игнорирую ваши советы вообще! Читаю по несколько раз, просто не совсем понимаю в виду своей недостаточной грамотности в этих вопросах. Но я же учусь. А переспрашивать не хочу) Ибо рискую тем, что пошлете или просто не ответите Shocker.ProНе пытайся написать программу, пока не придумал алгоритм, который ты можешь написать на бумаге и который будет работать в твоем сознании. Алгоритм я четко в своей голове представил и могу четко написать на бумаге и уже точно объяснил вам. Я бы не морочил вам голову, если бы сам не знал чего я хочу! Избавился от глоб. переменных. оставил только коллекцию шейпов. Shocker.Pro- One_step должна принимать шейп в качестве параметра и работать с ним Не совсем понял((( Shocker.Pro- One_step должна вызываться в цикле, который перебирает все имеющиеся на данный момент шейпы Не могу понять как цикл записать чтобы перебирал все им. sh Делаю вот так выдает ошибку - byref argument type mismatch Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 12:08 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProУ тебя зацикленность на общих переменных, я не понимаю, откуда это взялось и как заставить избавиться от этой зависимости. Посмотри на свой код, ни одной переменной не определено в процедурах, ни одного параметра, ни одна процедура не возвращает результат, все переменные объявлены на уровне формы. Это неверный подход в принципе. Он тебе мешает, из-за этого у тебя не работает программа, потому что она представляет собой спагетти (и это почти официальный термин в программировании ))). Эту базу мне дала книга, по которой сейчас занимаюсь. Хотел ее скинуть вам просто для оценки опытным взглядом, но ее размер 7 метров( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 12:10 |
|
Создание объекта 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 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProПо уже сделанному коду все понятно или есть неясности? Все понятно. Shocker.ProЕсть два варианта: Я бы хотел первым. А по второму могу только вякнуть, вдруг окажусь прав. Shocker.ProНо оно - текстовое, а нам надо хранить два значения Я в своем проекте организовывал склейку двух текстов, а потом в нужном месте возвращал значение и разбивал этот текс в нужном месте, получая снова 2 текстовых значения, которые ведь можно вернуть числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 17:09 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronЯ в своем проекте организовывал склейку двух текстов, а потом в нужном месте возвращал значение и разбивал этот текс в нужном месте, получая снова 2 текстовых значения, которые ведь можно вернуть числом.если захочешь попробовать - свойство шейпа (да и любого контрола) называется Tag, в нем можно хранить все, что хочешь в виде строки. vdekameronЯ бы хотел первым.Ок. Для начала нам нужно организовать свой собственный составной тип переменной: Код: vbnet 1. 2. 3. 4. 5.
это некий контейнер, для шейпа и сопровождающих его данных. В коллекцию мы будем добавлять (и потом извлекать) не шейп, а этот контейнер: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Дальше сам. Обрати внимание, что в цикле For Each ты будешь извлекать уже не Shape, а ShaperType ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 17:25 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Так вроде более-менее понятно, единственное не могу понять почему когда заполняем контейнер пишем Код: vbnet 1.
а не просто Код: vbnet 1.
как и со степом? Сегодня если дома будет время еще посмотрю, если что до завтра. Спасибо за терпение)) Ибо оно у вас огромное ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 17:56 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
потому что передаём объект ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 18:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronа не просто как и со степома говорил, все понятно в предыдущем коде ))) на самом деле, со степом тоже не просто, это должно выглядеть так: Код: vbnet 1. 2. 3.
но бейсик позволяет пропустить слово Let, поэтому его почти никогда не пишут Разница в том, что 200 и 300 представляют собой просто значения, а вот check, как и любой контрол, класс, форма и т.п. представляет собой объект. Для значений пишем Let, для объектов пишем Set. Когда закончишь с этой программой, посмотри учебник на тему, что такое объект или объектный тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2015, 18:10 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Доброе утро! Shocker.ProКогда закончишь с этой программой, посмотри учебник на тему, что такое объект или объектный тип. Хорошо, сделаю! Только у меня учебника нет, в интернете поищу. Код: vbnet 1. 2. 3. 4. 5.
Тут у меня вылазит ошибка - expected statament т.е. нужна переменная, какая, если все задали. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Получается one_step уже не нужен? ведь в нашей новой переменной уже есть stepx и stepy. И кстати ведь они все-равно будут двигаться в одном и том же направлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 09:36 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronТут у меня вылазит ошибказапятые не нужны ) пишу на трех языках, "путаю педали" ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:08 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronПолучается one_step уже не нужен?как это не нужен? суть программы остается как есть, просто ты расширяешь ее функциональность. Просто в one_step теперь нужно реализовать проверку и отскок. Он ведь у тебя был в самом начале топика. Теперь интегрируй его в one_step Далее: Код: vbnet 1. 2. 3. 4.
какого типа mama? Откуда у этого типа возьмутся свойства Left и Top? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:13 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proсуть программы остается как естьсуть архитектурного подхода тоже не меняется. one_step знает, как сделать шейпу шаг. Все остальные процедуры это абсолютно не волнует. В этом принцип разделения ответственности - один из основных столпов программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:16 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proкакого типа mama? Откуда у этого типа возьмутся свойства Left и Top? mama as shaperType. Мы же передаем в one_step уже контейнер. Код: vbnet 1. 2. 3. 4. 5.
Получается left и top там уже не нужны. И еще вылазит ошибка. Интернет перевдчик ее не переводит.(( ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:25 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronПолучается left и top там уже не нужны.а как ты тогда будешь двигать шейп? нужны. только они уже не к контейнеру применяются, а к шейпу, который лежит в контейнере ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:37 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameron И еще вылазит ошибка. Интернет перевдчик ее не переводит.(( В коллекцию могут быть добавлены только те пользовательские типы, которые объявлены как Publiс в модулях. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:43 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
AntonariyvdekameronИ еще вылазит ошибка. Интернет перевдчик ее не переводит.(( В коллекцию могут быть добавлены только те пользовательские типы, которые объявлены как Publiс в модулях.неа, все хуже. не "как Public", а в публичных модулях, то есть в отдельной библиотеке по факту. Эх, блин, ограничение VB. Ну ладно, тогда используем массив вместо коллекции, ща напишу как ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:45 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProНу ладно, тогда используем массив вместо коллекции, ща напишу как Не успеваю за вашим ходом мыслей блин) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:54 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
а, точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 10:56 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronНе успеваю за вашим ходом мыслей блин)к сожалению, столкнулись с ограничением VB, которое не позволит использовать коллекцию в нашем случае. Так что, вместо коллекции будет массив (просто немного больше телодвижений) Вот рабочий переделанный код, изучи его. (небольшой комментарий - массив нумеруется с нуля, а не с единицы, просто я не использую нулевой элемент, иначе пришлось бы ввести еще одну проверку) Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 11:06 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProВот рабочий переделанный код, изучи его. Не учил еще работу с массивами. Сейчас читал. Получается:- Код: vbnet 1.
делаем массив из ShaperType ReDim Preserve - позволяет менять верхнюю размерность массива. Ubound - возвращаем верхний эл-т массива. Я немного изменил код, посмотрите пожалуйста. Код: 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. 34. 35. 36. 37. 38. 39. 40. 41.
Задал что при отскоке создается новый эл. массива и меняются координаты движения. После выполнения примерно 10-15 one_step вылазит ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 11:56 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
писал жа выше, что нужно свою коллекцию юзать, а то вот уже до массивов добрались ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 12:27 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_One, Он мне пытается объяснить как проще Никто-ж не знал что вылезут эти косяки) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 12:30 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Массив действительно временно заблокирован, потому как мы в этот момент используем один из его элементов Вариант 1) не блокировать элемент: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
это для общего образования Вариант 2 ПРАВИЛЬНЫЙ) вернуться к пути единственной ответственности. One_step должен заниматься только движением шейпа, его ничего другое не интересует. Заметь, ведь в предыдущем коде было именно так - новый шейп добавляла процедура Timer1_Timer, которая у нас по факту является управляющей всем процессом. Ты нарушил принцип и опять столкнулся с проблемой. Сделай One_step функцией типа boolean, пусть он возвращает признак - в процессе шага шейп коснулся края формы. Что будет кто-то делать с этой информацией - его не волнует. А управляющая программа Timer1_Timer проанализирует этот признак и решит, что нужно добавить новый шейп. Это - ее проблема, когда добавлять новый шейп, через десять шагов, после касания края, после прошествия определенного времени и т.п. One_step это никак не должно волновать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 12:30 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneписал жа выше, что нужно свою коллекцию юзать, а то вот уже до массивов добрались ну а что ж ты сразу не сказал, что usertype в коллекцию нельзя добавить? ))) Shocker.Proможно тупо хранить в коллекции структуру, объявленную тут жеKonst_OneможноЯ считаю, что работа с классами очень сильно запутает автора, пусть лучше массив пока. Можно подчеркнуть для автора - в больших проектах массивы действительно используется редко. Но знать о них надо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 12:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
не ну пусть шишки набивает на своём коде, так больше поймёт. я не против такого метода. когда готовый рабочий код даёшь, то ничему не научится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 12:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Конечно все получилось, но это немного не то, что я изначально хотел) Сейчас работает так - появляется шар , ударяется об правый край и вызывает за собой след. Теперь когда первый уже коснется края он не вызовет третий шар, нужно чтобы второй ударился для появления третьего((( В итоге 4-ый шар как-то непонятно зацикливается на маленьком stepX, и пооооока он доползет до края остальные три шара там уже по 20 раз каждый ударяется. Не помог и Randomize( в этом случае зацикливается 5 или 6 шар) Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 13:34 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Да что же это такое? Зачем тут опять взялась глобальная переменная? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 13:55 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProДа что же это такое? Зачем тут опять взялась глобальная переменная? Что же мне ее объявлять в 2 местах ? в таймере и в one_step ? Shocker.ProСделай One_step функцией типа boolean One_step это же процедура, как я ее функцией сделаю типа Boolean ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:00 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronТеперь когда первый уже коснется края он не вызовет третий шар, нужно чтобы второй ударился для появления третьего((все потому, что ты сделал глобальную переменную, которая непонятно как инициализируется и сбрасывается, то есть там полная ерунда с событиями. Сделай как я сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:02 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:05 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronЧто же мне ее объявлять в 2 местах ? в таймере и в one_step ?ее вообще не надо объявлять vdekameronOne_step это же процедура, как я ее функцией сделаю типа Booleanты сказал, что тебе все понятно, каждая строчка 17188988 вернись и вникай дальше, я же просил сначала разобраться, потом делать дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:05 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proвернись и вникай дальше, я же просил сначала разобраться, потом делать дальше Shocker.Proты сказал, что тебе все понятно, каждая строчка Sub Command1_Click() - процедура события click по кнопке Command1 Dim a As Integer - объявление переменной a как целочисленной обычной степени точности a = 2 - присваиваем переменной a значение =2 a = MySum(a, 4) - Вызываем процедуру MySum передавая в нее параметры 2 для a и 4 для b , возвращая 18 MsgBox CStr(a) - выводим сообщением 18 (уже как строка) Мне понятна каждая строчка но я теряюсь, не знаю что нужно сейчас сделать! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:24 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
возьми листок чистой бумаги и нарисуй алгоритм движения с помощью квадратиков/ромбиков/стрелочек. когда всё нарисуешь , выложи картинку того, что наваял сюда, мы обсудим ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:27 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
можно и вот этим воспользоваться http://download.cnet.com/Code-Visual-to-Flowchart/3000-2212_4-10072756.html ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:32 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneвозьми листок чистой бумаги и нарисуй алгоритм движения с помощью квадратиков/ромбиков/стрелочек. когда всё нарисуешь , выложи картинку того, что наваял сюда, мы обсудим Чет я не понял. Полностью этот код вырисовать графически на бумаге? или что-то произвольное? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronShocker.Proты сказал, что тебе все понятно, каждая строчка Sub Command1_Click() - процедура события click по кнопке Command1 Dim a As Integer - объявление переменной a как целочисленной обычной степени точности a = 2 - присваиваем переменной a значение =2 a = MySum(a, 4) - Вызываем процедуру MySum передавая в нее параметры 2 для a и 4 для b , возвращая 18 MsgBox CStr(a) - выводим сообщением 18 (уже как строка) Мне понятна каждая строчкаа вот эта строчка? ты про нее ничего не сказал Код: vbnet 1.
мой косяк, правильно было бы так Код: vbnet 1.
но тем не менее. vdekameronвозвращая 18А что мешает возвращать True или False???? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:55 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
На мой вгляд, когда ты сделаешь как я сказал, то тебе и нам будет уже понятнее, что нужно сделать с алгоритмом появления нового шара, только сначала сделай это - не хочу на тебя вывалисать сразу кучу, давай последовательно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 14:57 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: vbnet 1.
Функция с параметрами а и b . MySum в данном случае задается как целочисленное. Вы имеете в виду сделать так? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:14 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
ну а что у вас функция false всегда возвращает. мне кажется надо вам вернуться к алгоритму программы, а не к реализации. вы пока плохо представляете, что и как должно работать и при каких условиях ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:25 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
это плохой стиль, не пишите так: Код: vbnet 1.
пишите так всегда: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:27 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
вместо Form1.Width надо юзать Form1.ScaleWidth ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:28 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneмне кажется надо вам вернуться к алгоритму программы, а не к реализации. вы пока плохо представляете, что и как должно работать и при каких условиях Да нет, алгоритм я хорошо представляю. Дело в недостатке знаний. Konst_Oneну а что у вас функция false всегда возвращае Почему.Возвращает true при ударе о край формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:31 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
посмотрите Код: vbnet 1.
то что у вас внутри формы работает в рамках ScaleWidth/ScaleHeight ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronKonst_Oneмне кажется надо вам вернуться к алгоритму программы, а не к реализации. вы пока плохо представляете, что и как должно работать и при каких условиях Да нет, алгоритм я хорошо представляю. Дело в недостатке знаний. Konst_Oneну а что у вас функция false всегда возвращае Почему.Возвращает true при ударе о край формы. да True возвращает. но условия я бы переписал, как-то всё не логично ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:35 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneто что у вас внутри формы работает в рамках ScaleWidth/ScaleHeight Ну за этот совет спасибо! Но не в этом же дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:37 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneда True возвращает. но условия я бы переписал, как-то всё не логично Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Как только переходит в процедуру таймера пишет argument not optional и подсвечивает One_step ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:46 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:51 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
скобки забыл ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:52 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronКак только переходит в процедуру таймера пишет argument not optional и подсвечивает One_stepПотому что ты пытаешься вызвать функцию второй раз, но уже без аргумента. Ты так и не разобрался, что такое функция ((( vdekameronПочему.Возвращает true при ударе о край формы.только о левый или правый край, но не о верхний или нижний. Ок, теперь тебе надо решить, в какой момент появляется новый шар? Если при ударе ЛЮБОГО шара о край формы, то смотри код Кости. Только при таком раскладе скорость появления шаров будет расти в геометрической прогрессии, так как шаров становится все больше и больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 15:57 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Работает но на этот раз при каждом касании любого шара появляется сразу 3 новых))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProЕсли при ударе ЛЮБОГО шара о край формы, то смотри код Кости. Так код Кости и взял. Выпуливает сразу по 3 новых шара ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:04 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
ну этот код не мой, я только подправил вызовы. я же писал, что условия надо исправить, там что-то накручено в функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:06 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneя же писал, что условия надо исправить, там что-то накручено в функции. Сейчас гляну ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:08 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:13 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Хахахах хотите прикол. Выпуливало по 3 шара сразу. убрал ети form1.scaleWidt и поставил как было. Теперь стало по 2 шара))) А как только пытаюсь менять размеры шара, так все норм. По одному выпуливает Как только комментирую эту строку, снова по 2))) И еще мне интересно почему я не могу сделать размер шаров от 500 до 1000? Они тупо появляются одного размера. А как только ставлю например от 200 до 500, то появляются разных размеров... Код: vbnet 1.
Мамой клянусь Хотите через team viewer посмотрите ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:39 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
просто полный код дай у меня тоже выпуливает по три шара и больше, но не сразу, а когда как минимум три шара уже летают, они как-то более менее одновременно касаются краев ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:41 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronИ еще мне интересно почему я не могу сделать размер шаров от 500 до 1000? Они тупо появляются одного размера. А как только ставлю например от 200 до 500, то появляются разных размеров...Кто-нибудь может это перевести на русский? Я не понял, то могу, то не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:43 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
какой ScaleMode установлен для Form1? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:43 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:45 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Кстати, понял, почему по несколько Ты развернул шар, но условие нахождения у края какое-то время продолжает срабатывать (еще два тика таймера), поэтому их и появляется две-три штуки Нужно грамотно проработать вопрос разворота шара ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:49 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
нужно написать функцию расчёта траектории и её юзать с параметрами текущего положения шара на плоскости формы ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:51 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proпросто полный код дай Жалко что ли ) Вы же его сами и написали) я только тыкался мыкался) Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
Shocker.ProКто-нибудь может это перевести на русский? Я не понял, то могу, то не могу. На русском вроде и писал) Перевести на более понятный для программиста язык сейчас постараюсь. Когда пишу - Код: vbnet 1.
то шары появляются все одинаковые, хотя по смыслу должны появляться шириной от 500 до 1000 твипов Когда пишу Код: vbnet 1.
тогда шары появляются разных размеров - как положено. Konst_Oneкакой ScaleMode установлен для Form1? 1 Twip ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:53 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Смотри, что в целом вообще может получаться. Шар очередным шагом на 200 твипов шагнул к краю формы, при этом пересек его на 180 твипов допустим. Ты меняешь шаг на случайный, он начинает идти в другую сторону, но новый шаг оказывается только 50 твипов. И шар не выходит за пределы края формы за один шаг. Опять срабатывает условие, опять новый шар создается, опять меняется направление. То есть в итоге, шар на какое-то время может вообще «застрять» на краю формы, дергаясь там, пока не получит достаточно большой шаг в нужном направлении, чтобы выскочить из созданного таким образом «поля притяжения», попутно создавая новые шары. Так что считай математику движения на бумажке ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:54 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronто шары появляются все одинаковые, хотя по смыслу должны появляться шириной от 500 до 1000 твиповпотому что ты высоту не трогаешь поэкспериментируй в дизайне - поймешь ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:58 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProТак что считай математику движения на бумажке Ясно - понятно)) Ну и так вроде нормально, с моим нерусским объяснением что-то подскажите? Shocker.ProКто-нибудь может это перевести на русский? Я не понял, то могу, то не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:59 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
У тебя летает не квадрат, а прямоугольник, в этом несколько проблем: - у круга есть "поля" - не можешь сделать круг больше его высоты, то есть только растут поля ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 16:59 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proпотому что ты высоту не трогаешь поэкспериментируй в дизайне - поймешь Сорри как-раз писал ответ. Ща гляну ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:00 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProУ тебя летает не квадрат, а прямоугольник, в этом несколько проблем: - у круга есть "поля" - не можешь сделать круг больше его высоты, то есть только растут поля А вот так дотюкал! Даже без design ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:01 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Тогда вопрос в другом. Как VB6 сам решил какой у появившегося шара будет ширина и высота? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Ведь мы вначале определили ему только св-ва Visible и Shape ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:06 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronТогда вопрос в другом. Как VB6 сам решил какой у появившегося шара будет ширина и высота?а какая тебе нафиг разница? задавай явно ЗЫ: есть какое-то умолчание. Если ты дважды щелкнешь в дизайнере по кнопке "шейп" (или любой другой контрол), он появится именно с размерами по умолчанию ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:13 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proа какая тебе нафиг разница? Молчу, просто интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:15 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Мне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и цикла ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:16 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
я ссылку давал на пример реализации отскока шаров ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:17 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronМне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и циклачаще таймер и меньше шаг ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:21 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProvdekameronМне кажется или движение на самом деле отрывистое какое-то. Дело в видео карте или в неслаженой работе таймера и циклачаще таймер и меньше шагкроме того, ты же изменяешь позицию не одновременно, то есть шарик прыгает сначала вбок, потом вниз ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:23 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proчаще таймер и меньше шаг таймер в 40. В книге кот. я читаю написано, что меньше 40 уже нет смысла ставить. в 1сек. таймер не работает больше 18 раз ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Ну, разве что, иметь два шара. Один невидимый, другой видимый. Невидимый двигаешь на новое место, потом делаешь видимым, а старый - невидимым. Таким образом он не будет прыгать вбок а как бы сразу окажется на новом месте ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProНу, разве что, иметь два шара. Один невидимый, другой видимый. Невидимый двигаешь на новое место, потом делаешь видимым, а старый - невидимым. Таким образом он не будет прыгать вбок а как бы сразу окажется на новом месте Уже предвкушаю сколько мне нужно будет вас мучить чтобы это реализовать ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:47 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
сам справишься. Просто в контейнере у тебя будут жить два шарика. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 17:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProПросто в контейнере у тебя будут жить два шарикаможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 18:53 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется. а мерцания не станут еще больше? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 19:46 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronа мерцания не станут еще больше?нет, больше не станут ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 19:55 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proможно по-другому сделать. Завести один специальный буферный шар на все случаи (его можно и в дизайне создать). Изначально он невидимый. Перед тем как передвинуть очередной шар, буферному шару присваиваются все свойства старого, он делает видимым, а текущий шар делается невидимым, передвигается на новое место, показывается, а буферный шар прячется. Чтобы я раньше времени не залез в дебри для начала выясню для себя алгоритм.... Это будет выглядеть примерно так?:- 1) Создаю в design обычный шейп. Никаких свойств в дизайне ему не устанавливая. 2) Делаю например процедуру "Подстава" в которой устанавливаю ему все свойства, которые есть у оригинала. Т.е. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Кроме св-ва visible которое нужно сделать true в посл. момент. 3) В One_Step я вызываю "Подстава" перед тем, как передвинулся оригинал и делаю подставной шар видимым а оригинал невидимым, двигаю его и делаю снова невидимым. Получается что будет тот же эффект, или я просто неправильно все понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 21:08 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
вроде так, только код непонятен. ты должен скопировать все свойства с оригинального шейпа, а не задать новые случайные значения ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 21:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proты должен скопировать все свойства с оригинального шейпа, а не задать новые случайные значения Я это понимаю. Я имел в виду будет так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 21:46 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Так возьми и подумай, что будет ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 22:04 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProТак возьми и подумай, что будет Получается что не нужны. Я вызову эту процедуру из One_step где и укажу Код: vbnet 1. 2. 3. 4.
Потом будет Код: vbnet 1. 2.
И затем снова делаю подставной невидимым а оригинал видимым. Мысль правильная или надо сделать сначала? Просто руководствуюсь тем, что вы говорили о четком представлении алгоритма ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2015, 22:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
тут два равноценных варианта хошь, ставь буферный круг на новое место, а потом двигай старый, хошь наоборот - без разницы ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 00:06 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 01:49 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
ну вроде да, пробуй ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 02:36 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proну вроде да, пробуй Ща буду пробовать. Но я вчера когда уже комп вырубил подумал о том что эффекта может и не быть. Т.к. мерцание у нас происходит почему, потому что сначала шар движется по X потом по Y как бы зигзагообразно. А если мы подключим подставной шейпт и придадим ему все свойства и все законы, отличае будет только в том что он будет появлятся на мгновение до или после основного. Так один хрен он же тоже будет зигзагообразно двигаться. Ну проверю опытно ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 10:21 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
важно то, что на экран не выводится промежуточное состояние шара, когда он отклонился от траектории. проверь два варианта - сначала включать новый потом выключать старый или наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 10:52 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proважно то, что на экран не выводится промежуточное состояние шара, когда он отклонился от траектории. Ага, вместо этого мы будем видеть промежуточное сост. другого шара- буферного. Т.к. будем уже видеть как он отклоняется от траектории ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 13:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, У меня опять неразбериха с этими процедурами. Не знаю что с ними делать. Так понимаю отдельно , а что касается дела. Сразу теряюсь и не понимаю как и что объявлять((((((((((((((((((((((((((((((( Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 14:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronбуферного. Т.к. будем уже видеть как он отклоняется от траекторииэто еще почему? ты же двигаешь буферный шар, пока он невидимый, поэтому не увидишь его промежуточных состояний ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 20:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Что такое mama и check в процедуре Podstava()???? Ты как запускаешь проект? Запускай не "Start", а "Start with full compile" - он тебе сразу все ошибки необъявленных переменных покажет ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 20:36 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProЧто такое mama и check в процедуре Podstava()???? И то и то контейнеры в которых есть круг и его степы по X и Y ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 21:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronShocker.ProЧто такое mama и check в процедуре Podstava()???? И то и то контейнеры в которых есть круг и его степы по X и Yнет. Это неизвестные процедуре объекты. Бросай это дело и иди курить темы: - области определения переменных - написание процедур, параметры процедур - написание функций, возвращаемые значения Пока ты с этим не разберешься, бесполезно продолжать ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 21:43 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Ясно. Хоть посоветуйте какую то хорошую книгу. Много искал, бесплатного в нете мало а если и есть то качество говно, можно глаза сломать! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 22:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
я уже говорил, что посоветовать не могу, не готов перечитывать кучу книг, чтобы что-то посоветовать. ну хотя бы погугли эти три темы, это же не бином Ньютона, это начальные знания, они будут в ЛЮБОМ учебнике, ну прочитай три разных. Приходи, когда сможешь на вопрос 17201433 дать ответ, совпадающий с моим ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 22:57 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProПриходи, когда сможешь на вопрос 17201433 дать ответ, совпадающий с моим Ладно, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2015, 23:06 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Я сижу у себя в квартире. Ты сидишь у себя в квартире. Это разные квартиры. Но ты почему-то упорно продолжаешь считать, что я могу смотреть твой телевизор. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2015, 00:01 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я все прекрасно понимаю, но не знаю как объявить в процедуре. Не буду вас раздражать и лучше реально почитаю для начала а потом просто вернусь к этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2015, 10:56 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Все-таки хочу посмотреть будет ли эффект Не могу понять почему вылазит ошибка, я же объявил в процедуре переменную так, как нужно вроде. Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 09:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Объявил. А что в ней лежит? От чего ты хочешь получить FillStyle? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 10:17 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProОбъявил. А что в ней лежит? От чего ты хочешь получить FillStyle? В ней лежит созданный нами круг, от которого и хочу получить эти св-ва ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 10:46 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronВ ней лежит созданный нами круг, от которого и хочу получить эти св-вакак он туда попал? Ты только что объявил эту переменную. Она девственно чиста. Ты продолжаешь считать, что я могу смотреть твой телевизор. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:04 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProОна девственно чиста. Значит нужно передавать процедуре параметр. Ну подскажите уже, обещаю прочитать то, что советовали) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:28 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Почитать (и понять) уже сделанный к данному моменту код. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:30 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProПочитать (и понять) уже сделанный к данному моменту код. Вы очень строгий учитель ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:35 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronShocker.ProПочитать (и понять) уже сделанный к данному моменту код. Вы очень строгий учительИ терпеливый. Я бы просто дал эту методичку http://www.studfiles.ru/dir/cat32/subj1259/file11577.html и закрыл тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:46 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
AntonariyИ терпеливый. Никто не спорит, я уже давно это отметил) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 11:53 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProПочитать (и понять) уже сделанный к данному моменту код.вот твой код Код: vbnet 1. 2.
Что будет, если убрать параметр и объявить его как переменную? И почему? Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 15:03 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProЧто будет, если убрать параметр и объявить его как переменную? И почему? Я считаю что раз мы не передаем параметр, и объявляем как переменную, то будем работать с пустым контейнером. Постоянно с одним и тем же кругом. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 15:40 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronПостоянно с одним и тем же кругом.блин, ну почему? Откуда там возьмется круг? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 15:54 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proблин, ну почему? Откуда там возьмется круг? Хотя да((( Просто тупо пустой контейнер ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 15:58 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
вот, посмотри примерчик. там что-то полезное для себя почерпнёшь. зы делал очень давно ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 16:00 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronShocker.Proблин, ну почему? Откуда там возьмется круг? Хотя да((( Просто тупо пустой контейнерХорошо, почему совершенно аналогичная ситуация с процедурой Podstava вызывает у тебя проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 16:01 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProХорошо, почему совершенно аналогичная ситуация с процедурой Podstava вызывает у тебя проблему? Не знаю, ловлю ступор и хоть ты тресни!! Вот сейчас показал что ей передается. Код: vbnet 1. 2. 3. 4. 5. 6.
а как при вызове процедуры правильно указать снова ступор! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 16:33 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
подумай то том, откуда ты хочешь это передать, что именно хочешь передать и где это хранится на момент возникновения желания передать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2015, 17:39 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proподумай то том, откуда ты хочешь это передать, что именно хочешь передать и где это хранится на момент возникновения желания передать Ну в голове у меня так, не знаю правильно или нет:- передавать хочу тогда, когда вызывается Podstava. Хочу передать имеющийся на данный момент заполненный контейнер и работать с кругом в нем. Этот контейнер есть в двух местах. 1) в addshapes 2) One_step Но как передать - СТУПОР! Не знаю что со мной. Скажу вам честно, я схитрил, понимаю что это неправильно, что это разово и потом я все-равно упрусь в то, чего никак не могу понять. И поэтому если у вас еще есть желание дотолдычить это)) Короче вот. Эффекта ноль. Мерцание идет, а когда шаров больше становится вообще ужасно Пробовал по-разному. Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 08:59 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameron, немного помогает поменять местами переключение видимости Код: vbnet 1. 2.
Код: vbnet 1. 2.
от "дерготни" мы избавились, а от мерцания - нет, для закрашенных кругов перерисовку видно, это уже проблема реализации перерисовки самого элемента shape, там, видимо, двойная буферизация не используется. Так что для улучшения качества придется использовать другие средства - рисовать самому круги с помощью GDI или DirectX ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 11:34 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proот "дерготни" мы избавились, Поменял местами, эффекта ноль. Может я придираюсь, но движение какое-то дерганое , колеблющее. Режет глаз. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 11:45 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.Proа от мерцания - нет, для закрашенных кругов перерисовку видно Мерцания появляются даже без закраски кругов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 11:50 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Да, хоть и не так заметно. В общем, внутри шейп устроен так, что при самообновлении он сначала стирает себя полностью, потом рисует заново - от этого мерцание. Это внутреннее устройство шейпа, да и вообще, видимо, любого стандартного контрола VB - они же не предназначены для анимации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 12:35 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
если рисовать в контексте устройства, то лучше юзать API. там есть специализиврованные ф-ии обновления окна типа invalidaterect и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 12:39 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
векторное рисование через API ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 12:58 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Konst_Oneвекторное рисование через API спасибо конечно, но далеко мне еще до этого ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 14:11 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
vdekameronпередавать хочу тогда, когда вызывается Podstava.vdekameronЭтот контейнер есть в двух местах. 1) в addshapes 2) One_stepНикак не пойму, что же за ступор у тебя в голове, который мешает тебе осознать некоторые, вроде бы простые вещи. Еще одно предположение - может у тебя там напрочь отсутствует вектор времени? То есть тебе кажется, что программа выполняется вся и одновременно? Ты не можешь себе представить, что она выполняется последовательно, команда за командой? Что область локальных переменных существует только тогда, когда выполняются команды, находящиеся в этой области и не существует в другое время? Ты вызываешь Podstava в момент выполнения кода процедуры One_step. Причем тут addshapes? Разве addshapes выполняется параллельно с One_step? Разве переменные addshapes существуют в момент выполнения Podstava? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:20 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Shocker.ProТы вызываешь Podstava в момент выполнения кода процедуры One_step. Причем тут addshapes? Разве addshapes выполняется параллельно с One_step? Разве переменные addshapes существуют в момент выполнения Podstava? Это все мы возвращаемся к тому, что вы мне говорили еще в самом начале моего появления на этом форуме. Все дело в том, что я отдельно понимаю эти простые вещи а когда много всего нового для меня, такого как массивы, контейнеры которые мы использовали в этой программке, то у меня возникает ступор. А именно из-за того, что вот про это новое я конечно прочитал. Но глубоко и досконально не изучил. Курю сейчас по-тихому массивы Буду дальше читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 11:00 |
|
Создание объекта shape программно
|
|||
---|---|---|---|
#18+
Например только сейчас дошел до пользовательских типов данных, которые мы кстати тоже использовали для создания своего "контейнера" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 11:09 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2156049]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
189ms |
get tp. blocked users: |
1ms |
others: | 305ms |
total: | 584ms |
0 / 0 |