PLEASE HELP !!!!!

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

PLEASE HELP !!!!!

Сообщение t4lli » 23.08.2004 (Пн) 14:03

1) Есть два PictureBox'a , как сделать шоб если они пересекутся воскочил msgbox(ОНИ ДВИЖУТСЯ ПО ФОРМЕ)????
2) Чтоб один PictureBox двигался по напровлению к другому (ВТАРОЙ PictureBox МОЖЕТ НАХОДИТСЯ В ЛЮБОМ МЕСТЕ ФОРМЫ)????
3) Есть две ехе'шки на одной Label у каторого .Caption = "50" , во втарой проге кнопка , вапрос как сделать чтоб при нажатие на кнопку в адной проге изменился Caption Label'a первой проги дапустим на "10" Я идиот! Убейте меня, кто-нибудь!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.08.2004 (Пн) 14:06

1. Проверять пересечение по координатам на каждом сдвиге. Функцией IntersectRect.
2. А, так ты этого ещё не сделал? Зачем тогда вопрос 1? Метод Move зацени.
3. Ну это вряд ли, не окно Label, не окно... Разве что межпроцессной коммуникацией заняться... Покопай в сторону CreateFileMapping.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

t4lli
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 02.07.2004 (Пт) 14:15
Откуда: Lithuania

Сообщение t4lli » 23.08.2004 (Пн) 18:29

Можна кодам на первые два вопроса ? :wink: Please :roll: GSerg !

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.08.2004 (Пн) 19:14

Предполагается, что и у формы, и у картинок scalemode = vbpixels.

Код: Выделить всё
Private Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

private type RECT
  left as long
  top as long
  right as long
  bottom as long
end type

private function PicturesCollision(byval p1 as picturebox, byval p2 as picturebox) as boolean
  dim r1 as rect, r2 as rect, r as rect
 
  if p1.parent is p2.parent then
    setrect r1, p1.scaleleft, p1.scaletop, p1.scaleleft+p1.scalewidth, p1.scaletop+p1.scaleheight
    setrect r2, p2.scaleleft, p2.scaletop, p2.scaleleft+p2.scalewidth, p2.scaletop+p2.scaleheight
    picturescollision=cbool(intersectrect(r,r1,r2))
  end if
end function


Код: Выделить всё
picture1.move x,y 'остальное сам...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

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

    TopList