Megallim
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Нужно написать прграммку на VBA. На форме должны появляться множество точек (или маленьких кружочков), которые случайно разбросаны. Эти точки как бы являются "звёздами" и со временем они должны мерцать. Мерцание можно сделать двумя способами. 1) С помощью Timer сделать так, чтобы некоторые, так сказать, "звёзды" через несколько секунд (у каждой "звезды" рандомное время мерцания) после появления начали становиться больше, затем меньше, затем опять больше и так далее (бесконечный цикл). 2) Или с помощью опять того же таймера сделать так, чтобы появившиеся "звёзды" через несколько секунд пропадали (у каждой "звезды" рандомное время мерцания), потом опять появлялись на том же месте, пропадали и т.д. (бесконечный цикл). Вот впрочем и всё описание моего задания. Изучаю Java, Haskell, CSS и начал изучать VBA, который по мнению многих программистов является одним из самых лёгких языков и прекрасно подходит для изучения новичкам. Но я бы не сказал так. VBA мне по каким-то причинам пока даётся трудом. Да и учебников хороших нет, чтобы всё по полочкам разложено было. Все "учебники" на самом деле являются справочниками. Нужные модули рисования (библиотеки) подключены. Написан даже код, который позволяет рисовать линии на форме: Код: Private Sub UserForm_Activate() ''' resets the repiant thing for ellipse Range("repaint_mode") = 0 End Sub Private Sub UserForm_Deactivate() CleanUpLine 'cleans up, realse objects etc CleanUpEllipse ''' resets the repiant for thing ellipse Range("repaint_mode") = 0 End Sub Private Sub UserForm_Initialize() 'sets things up for drawing - see sub Setup 'sethting up for drawing see sub drawellipsetest End Sub Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single) If Button = 1 Then SetDrawStart x, y ElseIf Button = 2 Then '''set start points lXs = x lYs = y Else: End If End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single) 'Pass the mouase positin to subs If Button = 1 Then Draw x, y ElseIf Button = 2 Then If Range("repaint_mode") = 1 Then DrawEllipseNoRepaint x, y Else DrawEllipse x, y End If End If End Sub | Но это не то. Как бы так его изменить, чтобы он отвечал моим требованиям? Поэтому хотелось бы, чтобы вы подсказали, так сказать, подтолкнули меня. С чего вообще начать? Хочу узнать хотя бы то, как объявлять координаты этих точек ("звёзд"). |