Как сделать сетку и чтоб контролы ровнять по ней?

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

Как сделать сетку и чтоб контролы ровнять по ней?

Сообщение Георгий2 » 14.10.2007 (Вс) 21:52

Как сделать сетку точками, как в дизайн-моде и как реализовать привязку контролов к ней при перемещении оных мышкой?
Спасибо.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 14.10.2007 (Вс) 22:16

Хм.. Ну задаешь размер сетки, потом при перемещении мыши смотришь, к какой точке ближе текущее положение, и ставишь точку туда, а не туда, где реально мышь. Суть ясна?
label:
cli
jmp label

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 14.10.2007 (Вс) 22:35

Георгий2

На.
Процедура двигает элемент массива Card(Index) шаг сетки - это переменная StepMod. Если надо прорисовать сетку пройдись по форме for-next'ами с шагом StepMod

Код: Выделить всё
Private Sub Card_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then
    Card(Index).Move ( _
    Int((X + Card(Index).Left - pX) / StepMod)) * StepMod, ( _
    Int((Y + Card(Index).Top - pY) / StepMod)) * StepMod
    Card(Index).ZOrder 0
End If

End Sub
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 14.10.2007 (Вс) 23:40

Что называется разжевали... Большое спасибо!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.10.2007 (Пн) 9:39

Лучший способ понять что-то самому — объяснить это другому.

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 15.10.2007 (Пн) 11:50

Я люблю людей на этом форуме потому что они думают обо мне лучше чем я есть на самом деле! Спасибо Antonariy! Но если б вы представляли, насколько мне непонятен этот пример :oops: :oops: :oops: . Хоть видит око, да зуб неймёт! Я его скачал до того как завёл тему, но ничего не поняв, решил спросить в надежде на более простое решение. Я ОЧЕНЬ слабо разбираюсь в VB к сожалению.
Поверите, после получения примера от Дениса я только сейчас смог попробовать его, и то окно времени у меня примерно час-полтора, потом надо мчаться по делам, и когда я снова включу VB неизвестно, может через пол-года-год, бывало и так. Для меня это пламенная страсть, которой я не могу отдаться даже на 1/1000 своего времени! Жизнь-сволочь! Ну, извините за офф. Поплакался и легче стало на душе.
Денису. Спасибо, ваш пример работает, но с маленьким минусиком - при первом движении мышки контрол скачет верхним левым углом совмещаясь с курсором, проскакивая несколько узлов, а потом движется последовательно от узла к узлу. Оно понятно исходя из кода. Но хотелось бы чтоб двигался он последовательно, перескакивая узлы сетки по очереди. Счас пытаюсь сообразить, как это сварганить, но туплю...

Георгий2
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 23.03.2006 (Чт) 21:29
Откуда: Тбилиси, Грузия

Сообщение Георгий2 » 15.10.2007 (Пн) 13:22

Простите за тупой вопрос, но что такое pX и pY ? И какую роль они выполняют? Работает и без них да и по логике процесса вроде лишние они :oops:


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 98

    TopList