Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите с твипами!

47K
22 марта 2009 года
aus2007
4 / / 22.03.2009
Здравствуйте! Срочно нужна помощ!!!
Ситуация такая:
Через цикл рисую прямую в твипах, в обьекте PictureBox, а вот снять потом эти же значения цветов именно в твипах не получается!((( В пикселях и поинтах все нормально работает, но мне нужно именно в твипах!
Помогите плыз!
7
22 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Не понял вопроса.Ну создал я PictureBox,именуемый Pic1,и вписал такой код(в Form_Activate),
 
Код:
Pic1.Line (300, 300)-(2500, 2200), vbBlue
чем получил синюю линию.Затем написал
 
Код:
MsgBox Pic1.Point(300, 300)
т.е. получил цвет начальной точки.Он и был синим
Не понимаю,в чём проблема
47K
22 марта 2009 года
aus2007
4 / / 22.03.2009
Проблема собственно в том что если цвет в цикле изменять в зависимости от счетчика:
 
Код:
for i=0 to 10
picture1.pset(i,1), "&H" & hex(rgb(123,231,120+i))
next i


В соответствии этому циклу каждый последующий твип будет своего, отличного от предыдущего, цвета.

А вот при снятии цвета:
 
Код:
dim c
text1.text = ""
for i=0 to 10
c=picture1.point(i,1)
text1.text = text1.text & "&H" & hex(c) & vbcrlf
next i


торезультаты будут сняты не верно!!!
7
22 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
О,милый мой!..Что ж ты хотел?
Твип–это ж не реальная единица,а виртуальная!Подумай сам,сколько памяти понадобилось бы,дабы хранить всё изображение в твипах(например,при соотношении как у меня:1 твип=15 пикселей по горизонтали и вертикали).Поэтому при определении цвета точки берётся цвет именно точки,а оная,в свою очередь,имеет цвет среднего твипа(или последнего).Т.е. из всех 15ти твипов в реальную точку воплощается только 1;его цвет ты и получаешь Point'ом
И вообще,код лучше оформить вот так:
 
Код:
For I = 0 To 10
  Picture1.PSet (I, 1), "&H" + Hex(RGB(123, 231, 120 + I))
 Next I
 For I = 0 To 10
  C = Picture1.Point(I, 1)
  Text1 = Text1 + "&H" + Hex$(C) + vbCrLf
 Next I
Т.е.,кроме всего прочего,амперсанды(они тут ни к чему) заменить на плюсы
47K
22 марта 2009 года
aus2007
4 / / 22.03.2009
Тоесть при записи в твипах записывается только каждая 15 точка!?
И с этим никак нельзя бароться!?
7
22 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Насчёт "каждой 15й" я точно не уверен,но вот идею ты верно ухватил–не все точки туда отобразятся.И никак с этим не поборешься,такая уж особенность–ведь вывод идёт на уровне пикселей,твип–виртуальная единица…не знаю,правда,зачем она нужна
5.9K
23 марта 2009 года
SPB-667
119 / / 23.06.2007
Если допустимо для твоей программы, можно изменить систему измерения в самом PictureBox с помощью свойства ScaleMode: там вместо твипов можно выбрать пиксели.
7
23 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: aus2007
В пикселях и поинтах все нормально работает

Тут же ясно написано,что в пикселях он пробовал.Твой ответ ни к чему

5.9K
24 марта 2009 года
SPB-667
119 / / 23.06.2007
Так пусть и делает в пикселах ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог