Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Активная линия? Миф или реальность? ((( Добавлено: 03.10.08 17:24  

Автор вопроса:  alcoRythm | ICQ: ч7оSSSIIбS 
Здарствуйте. Вот такая проблема:
Нужно чтобы линия на форме была активной (т.е. реагировала хотябы на клик) У стандартной линии в VB 6 (там то это и нужно мне) этого нету. как быть? Если можно подробней. Заранее спасибо всем откликнувшимся!

Если подобное уже решалось, прошу сильно не пинать форум большой, поиском не нашёл...((

Ответить

  Ответы Всего ответов: 19  

Номер ответа: 1
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 03.10.08 20:00
вариант 1: хранить точку начала, точку конца линии, построить уравнение прямой y=kx+b, потом подставлять в уравнение координаты x,y курсора мыши, ну и если правая часть равна левой, то мы над линией
вариант 2: брать цвет пикселя под мышкой, если он равен цвету линии, то мы над линией, но это с условием, что на форме больше нет ничего такого цвета.

Ответить

Номер ответа: 2
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #2
Добавлено: 03.10.08 20:02
а еще, наскока помню в вб6 есть компонент Shape не помню есть там линия или нет, но если есть, то клик он обрабатывает

Ответить

Номер ответа: 3
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #3
Добавлено: 03.10.08 20:07
Ну тут немного думаю и наче нужен подход
.
 
alcoRythm давай подумаем?

Вот представь окно в доме, кто-то нарисовал на нем линию и на перекрест еще одну. В квартире живет злой и ужастный!
Ты же думаешь, что там твоя чувиха кидаешь камень и попадаешь в линию, а вот Windows не поняла и рассыплось.
Отсель вывод делая клик по линии(краске), стучишь по предмету. Там где ты видел что линию тащат скорее всего это picture(предмет) с обрезанным холстом где цвет линии другой.

Ответить

Номер ответа: 4
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #4
Добавлено: 03.10.08 20:11
Боцман, 0_0 это конечно наркоманство, но правда=)

Ответить

Номер ответа: 5
Автор ответа:
 alcoRythm



ICQ: ч7оSSSIIбS 

Вопросов: 1
Ответов: 2
 Профиль | | #5 Добавлено: 03.10.08 20:25
Ёма народ!
2 Боцман :
я думал) то что ты описал (если я вообще понял то что ты написал) и было выходом из моего положения (имею ввиду объект обрезаный вне линии)
А писав сюда надеялся что мне подкинуть какуюнибудь ocx с тем что нужно. наивности во мне много как оказалось)

2 Skywalker :
Первый вариант интересен.

Спасибо всем) Но если появятся ещё идеи...вообщем вопрос остаётся открытым )

Ответить

Номер ответа: 6
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #6
Добавлено: 03.10.08 20:56
ocx это UC, неужели трудно сделать контрол где цвет не линии обрезан. У тебя появится и возможность маштабировать, крутить и т.п.
Насчет не понял что писал, ясно не телепат, вот тебе более подробно.
Вот представь окно в доме, кто-то нарисовал на нем линию и на перекрест еще одну. В квартире живет злой и ужастный!
Ты же думаешь, что там твоя чувиха кидаешь камень и попадаешь в линию, а вот Windows не поняла и рассыплось.
И злой и ужастнвй вдруг хлопает тебя сзади по плечу, и глоголит, и что это было брат? У меня вообще стекла цейсовские стояли.
Отсель вывод делая клик по линии(краске), стучишь по предмету Т.Е картине, форме и т.п. Там где ты видел что линию тащат скорее всего это picture(предмет) с обрезанным холстом где цвет линии отличный от фона picтure.


Насчет идей вот тебе идеи со всего миоа:
http://www.planet-source-code.com/

Ответить

Номер ответа: 7
Автор ответа:
 alcoRythm



ICQ: ч7оSSSIIбS 

Вопросов: 1
Ответов: 2
 Профиль | | #7 Добавлено: 03.10.08 21:14

"picture(предмет) с обрезанным холстом где цвет линии отличный от фона picтure." Это я какрас понял) к этому сам и пришёл ещё до поста на форуме. не понятно было N-строк перед этим) Сложилось ощущение что ты описал один из своих снов (ну или там чужих) всё так быстро происходило, и собсна основную непонятку сеяло то, что какого фига я палюсь кидая камень в окно, когда мог спокойно пролезть по вентиляции, кокнуть "злого и ужасного" используя навык "УНЧНСР" в народе известный как "Удар ногой Чак Норриса с развороту" и спасти свою чувиху.(комментировать действия Windows я категорически отказываюсь, так же как и то, откуда у меня нога Чака Норриса. о_О)

контрол не сложно) а вот обрезать цвет не линии сложно. ибо я шалун, и главы про обрезание в книгах пропускал (вера не позваляет). Буду благодарен если научишь. Внукам даже рассказывать буду о безграничной помощи оказаной мне загодочным Боцманом в минуту когда я был беспомощен. (ну или как-то так) xD ;)

Ответить

Номер ответа: 8
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #8
Добавлено: 03.10.08 21:25
Я уже принял 0,5+сколько еще принять думаю, помню на восьмое марта даже исходники в этом году давал так там прям код для VB6 писался автоматом. Посмотри в форуме,
за ближайшие числа к 8 марта естественно, если что пиши.

Ответить

Номер ответа: 9
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 03.10.08 22:54
Кароче хватит фигню тут городить. Пользуй
вариант 1: хранить точку начала, точку конца линии, построить уравнение прямой y=kx+b, потом подставлять в уравнение координаты x,y курсора мыши, ну и если правая часть равна левой, то мы над линией
и прекрати париться

Ответить

Номер ответа: 10
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #10 Добавлено: 04.10.08 00:06
Под .NET Microsoft выпустила специальный пак в котором есть некоторые контролы из VB6

Подробнее можно почитать здесь:
http://darkbrand.spaces.live.com/blog/cns!2C4EE6D28AD2206!269.entry

Хотя не исключено что уже успела выйти более новая версия, я за темой вообще не слежу.

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 04.10.08 00:06
Line, насколько я помню, там есть

Ответить

Номер ответа: 12
Автор ответа:
 alcoRythm



Вопросов: 2
Ответов: 4
 Профиль | | #12 Добавлено: 04.10.08 03:11
2Winand:
Этот вариант мне не понятен.
И целесобразно его применять если мне требуется допустим минимум 200 линий?

2Steel Brand
мне ужно какрас наоборот) нет ли контрола для VB6 с линиями из .NET? ))

Ответить

Номер ответа: 13
Автор ответа:
 alcoRythm



Вопросов: 2
Ответов: 4
 Профиль | | #13 Добавлено: 04.10.08 03:44
Поправлюсь, не чтоб не понятен, просто он меня настораживает, хотя и интересен. Хотелось бы решить проблему иначе.

Ответить

Номер ответа: 14
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #14
Добавлено: 04.10.08 03:45
alcoRythm, если тебе требуется 200 линий, то самое нецелесообразное - создать 200 контролов. имхо.

Ответить

Номер ответа: 15
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #15
Добавлено: 04.10.08 04:18
autoredraw,scalemode=pixels. Тут правда тупейший код в функции Form_MouseMove) но мысль моя такая
  1. Option Explicit
  2. Private Type POINT
  3.     X As Integer
  4.     Y As Integer
  5. End Type
  6. Private Type tLine
  7.     p1 As POINT
  8.     p2 As POINT
  9. End Type
  10. Dim ln(20) As tLine
  11.  
  12. Private Sub Form_Load()
  13.     Dim i As Integer
  14.     Randomize
  15.     For i = 0 To 20
  16.         ln(i).p1.X = Int(Rnd * 600)
  17.         ln(i).p1.Y = Int(Rnd * 600)
  18.         ln(i).p2.X = Int(Rnd * 600)
  19.         ln(i).p2.Y = Int(Rnd * 600)
  20.         Line (ln(0).p1.X, ln(0).p1.Y)-(ln(0).p2.X, ln(0).p2.Y)
  21.     Next i
  22. End Sub
  23.  
  24. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  25.     Dim p As Single, i As Integer
  26.     For i = 0 To 20
  27.         p = (X - ln(i).p2.X) / (ln(i).p1.X - ln(i).p2.X)
  28.         If Abs(p * ln(i).p1.Y + (1 - p) * ln(i).p2.Y - Y) < 5 And p <= 1 And p >= 0 Then _
  29.             Line (ln(i).p1.X, ln(i).p1.Y)-(ln(i).p2.X, ln(i).p2.Y), vbRed _
  30.         Else _
  31.             Line (ln(i).p1.X, ln(i).p1.Y)-(ln(i).p2.X, ln(i).p2.Y)
  32.     Next i
  33. End Sub

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам