Есть несколько окружностей разного диаметра на форме, созданных программой во время выполнения.
Т.к. нет обработки событий при нажатии "мышкой" на окружность, то как поймать нужную окружность для определения координат ее центра и радиуса ?
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim sh As Control, r#, r2#, x0#, y0#
kk = Controls.Count ' количество ЭУ (элементов управления) на форме
For i = 1 To kk ' перебираем их все
Set sh = Controls(i - 1) ' создали переменную
If TypeName(sh) = "Shape" Then ' проверяем тип ЭУ
If sh.Shape = 3 Then ' это круг, а не овал или еще что-то
r = sh.Width / 2: r2 = sh.Height / 2
x0 = sh.Left + r: y0 = sh.Top + r2 ' находим центр
If r2 < r Then r = r2 ' находим радиус
r2 = (X - x0) ^ 2 + (Y - y0) ^ 2 - r ^ 2 ' попали мышкой ?
If r2 < 0 Then MsgBox "Круг " & sh.Name, vbInformation
End If
End If
Next i: Set sh = Nothing ' освободили переменную
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26