выделение

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

выделение

Сообщение BOO » 08.01.2004 (Чт) 0:00

Как мне в своем редакторе сделать чтобы объекты выделялись как в windowsе т.е:
щелкнул - протянул - отпустил : все что попало в это поле выделелось
Пусть координаты моих объектов будут повторены регионами, но как сделать само выделение (синий увеличивающийся прамоугольник???)
Если кто понял что я тут накатал и знает ответ - напишите пожалуста,а лучше киньте ссылку на подобную прогу!
Слушайте рок!

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 08.01.2004 (Чт) 3:42

если на форме, то наверное сэмулировать можно при помощи Shape ... а там потом сам знаешь как перетаскивать ... другой метод полигон с управляемой прозрачностью .... работать будет - в >=НТ и выше ...
Фиксируем точку ... и размер вычисляем по нахождению курсора в одной из четвертей ...

типо такого
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Lobo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 08.01.2004 (Чт) 16:49
Откуда: Таллинн, Эстония

Сообщение Lobo » 08.01.2004 (Чт) 17:30

Делал я что-то такое... Если, конечно, я правильно понял - написано невразумительно!

Лови пример (код формы).

Option Explicit

Private mvStartX As Variant
Private mvStartY As Variant
Private mvXold As Variant
Private mvYold As Variant

Private mboDrag As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Starts drag mode

mboDrag = True
mvStartX = X
mvStartY = Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Selects a region if left button is pressed
Dim i As Integer
Dim j As Integer

If mboDrag And Button = vbLeftButton Then
'Draw selection rectangle:
If IsEmpty(mvXold) Or IsEmpty(mvYold) Then
mvXold = mvStartX
mvYold = mvStartY
Else
DrawMode = vbInvert
DrawStyle = vbDot
Line (mvStartX, mvStartY)-(mvXold, mvYold), , B
Line (mvStartX, mvStartY)-(X, Y), , B
DrawStyle = vbSolid
DrawMode = vbCopyPen
mvXold = X
mvYold = Y
End If
End If
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Draws a seat or a group of seats
Dim intX As Integer
Dim intY As Integer

If Button = vbRightButton Or Button = vbMiddleButton Then
Exit Sub
End If

'Release selection rectangle:
If mboDrag Then
If mvXold <> mvStartX Or mvYold <> mvStartY Then
DrawMode = vbInvert
DrawStyle = vbDot
Line (mvStartX, mvStartY)-(X, Y), , B
DrawStyle = vbSolid
DrawMode = vbCopyPen
End If
End If

intX = CInt(X)
intY = CInt(Y)

'Restore state to that before drag:
mboDrag = False
mvStartX = Empty
mvStartY = Empty
mvXold = Empty
mvYold = Empty
End Sub


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron