Форум Команды NeTTeam

Форум команды программирования на vb.net
Текущее время: 25-04, 16:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: вопрос по CreateGraphics
СообщениеДобавлено: 15-08, 10:49 
Не в сети
Прохожий

Зарегистрирован: 15-08, 10:30
Сообщения: 1
Раньше когда я писал программы на VB6 у меня этой проблемы не было. Но теперь в Microsoft Visual Studio 2005 у меня проблема, простейшее занчение PictureBox1.CreateGraphics.DrawLine(Pens.Aqua, 10, 200, 10, 300) не появляется в пик боксе. Если оно загружается с формой. Если поле загрузке, то линия появляется, но если убрать форму за экран то она пропадает. Как быть если надо, начернить графику только после загрузки формы и после этого её двигать нельзя, а то можно потерять изо..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16-08, 09:10 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19-07, 19:51
Сообщения: 128
Откуда: пгт.Ванино
Как я понял при загрузке формы линия не появляется. А если после загрузки,например добавив код в кнопку то при нажатии появляется?

А вам надо начертить графику после загрузки формы????
Так плохо написано я не уловил суть.

P.S
Цитата:
Если поле загрузке

Имеется в виду после загрузки или всетаки поле?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16-08, 10:23 
но беда заключается в том что ели завести за экран или даже на этот рисунок навести любую форму он проподает. ВОТ


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 16-08, 11:04 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19-07, 19:51
Сообщения: 128
Откуда: пгт.Ванино
А для какой цели тебе это надо.Может для конкретного случая будет конкретное решение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19-08, 14:10 
http://forum.vingrad.ru/forum/topic-145 ... index.html
вот нашел тему на эту тему :) Просмотрите может пригадится.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 19-08, 15:52 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19-07, 19:51
Сообщения: 128
Откуда: пгт.Ванино
Спасибо тебе. Только если ты зарегистрирован то входи от своего имени а то и + поставить некому :-))).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22-08, 11:12 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim g As Graphics = PictureBox1.CreateGraphics
' Для рисования мы используем объект Pen размера 1 пиксель чёрного цвета
Dim blackPen As New Pen(Color.Black, 1)
' Далее, мы должны задать координаты линии
Dim x1 As Single = 100
Dim y1 As Single = 50
Dim x2 As Single = 200
Dim y2 As Single = 550
' Рисуем линию!
g.DrawLine(blackPen, x1, y1, x2, y2)
'Неработает :( Опустив форму вниз экрана линия проподает
End Sub

Мне надо запускать с кнопки !!! Как занести в палитру ????

Требуется замутить программу в которой при нажатие кнопки отображался текст PictureBox1


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 23-08, 23:38 
Не в сети
Новичок

Зарегистрирован: 07-08, 03:43
Сообщения: 20
Там же, по ссылке написано - что нужно добавлять графику в обработчике события Paint.
Для того чтобы отрисовка происходила при нажатии на кнопку нужно, на мой взгляд:
1. Завести глобальную переменную типа интегер, которая показывала бы какой вид графики нужно нарисовать (допустим 0 - нет графики, потому что кнопка не была нажата, 1- была нажата кнопка 1,нужно нарисовать зеленую линию 2см, и еще кружок красный чтоб ее пересекал, 2- нужно нарисовать другую и т.д.). Если вид отображаемой графики один, то достаточно булеановой переменной, которая показывает была ли нажата кнопка или нет.
2. При нажатии кнопки устанавливать соответствующее значение глобальной переменной и переход в подпрограмму, которая рисует
3. В событии Paint твоей PictureBox нужно просто втупую сделать перенаправление на ту процедуру, которая рисует, проверив не равна ли нулю или false переменная, показывающая тип графики и была ли нажата кнопка
4. В процедуре рисования выбираешь и рисуешь в зависимости от значения переменной нужный вид линий



В VB6 происходило кстати то же самое, просто незаметно для программиста VB. но там для того, чтобы избежать перерисовки нужно было достаточно свойство формы AutoRedraw в True. В NET другая архитектура, которая несмотря на кажущуюся сложность является более гибкой и позволяет делать более интересные вещи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24-08, 19:09 
Не в сети
Член команды

Зарегистрирован: 19-07, 19:59
Сообщения: 38
Откуда: Санкт-Петербург
SAS, ага, а гораздо проще написать функцию или процедуру эмулирующую эллементы процедуры Paint.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25-08, 04:27 
Не в сети
Новичок

Зарегистрирован: 07-08, 03:43
Сообщения: 20
это кому как) и зависит от задачи)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25-08, 08:24 
Не в сети
Член команды

Зарегистрирован: 19-07, 19:59
Сообщения: 38
Откуда: Санкт-Петербург
согласен. но вот запланированную графику, тоесть нажал на кнопку появилась линия из точки "а" в точку "б", лучше делать заготовленными функциями.
представь, что ты в самом конце проекта решил сделать анимированную заставку, такой аля эллемент дизайн, а если Paint напичкана разной ерундой, то она будет сильно мешать. я просто сталкивался с этим не раз...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26-08, 01:19 
А зачем все в паинт писать? можно отдельный класс сделать, к которому обращаться из обработки события паинта, в классе набор функций для обработки. Или непосредственно обработку по хэндлу туда передавать.
В общем это уже что то типа священных войн о методах программирования получается))). Думаю, krewin достаточно той информации, что в .Net нужно заставлять перерисовывать графику при каждом паинте. Дальше думаю разберется).

Да, насчет анимированной заставки честно говоря не понимаю сложностей. Анимировать программно, на мой взгляд немного некрасиво. Лучше уж авишник сделать и вставить его на форму)


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 26-08, 10:19 
Не в сети
Член команды

Зарегистрирован: 19-07, 19:59
Сообщения: 38
Откуда: Санкт-Петербург
Цитата:
А зачем все в паинт писать? можно отдельный класс сделать, к которому обращаться из обработки события паинта, в классе набор функций для обработки. Или непосредственно обработку по хэндлу туда передавать.
В общем это уже что то типа священных войн о методах программирования получается))). Думаю, krewin достаточно той информации, что в .Net нужно заставлять перерисовывать графику при каждом паинте. Дальше думаю разберется).

Да, это мы тут чего-то лишнего уже намутили :)
Цитата:
Да, насчет анимированной заставки честно говоря не понимаю сложностей. Анимировать программно, на мой взгляд немного некрасиво. Лучше уж авишник сделать и вставить его на форму)

Ну программно - неочень - получается что-то вроде заставки при победе в пасянсе "паук".
А на чём это можно сделать? Есть проги для этого? Если анимировать ави в виндус мов мейкер, то куча места занимать будет...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26-08, 15:20 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 19-07, 19:51
Сообщения: 128
Откуда: пгт.Ванино
Зачем в мов мейкер.
Все видели логотип вверху страницы? так вот он сделан в Cinema 4D
Сначало делалась модель а потом ее крутили и фоткали.
Там можно целые мультфильмы делать.
Можно такую заставку заделать и в любой формат (от Gif до Avi)
Самое трудно сделать модель. Вот вам и аниме...


P.S Cinema 4D - почти тоже что и 3DMax только легче в освоении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27-08, 14:02 
Не в сети
Член команды

Зарегистрирован: 19-07, 19:59
Сообщения: 38
Откуда: Санкт-Петербург
а сколько Cinema 4D весит? реально выложить?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB