Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89

Уменьшение размера активного окна, передвижение вдоль границ экрана

20.11.2013, 11:51. Показов 4194. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа постепенно уменьшает размеры активного окна до определенного уровня, затем передвигает окно вдоль границ экрана и в конце восстанавливает его до нормальных размеров.
Записывал макрос, потом делал уменьшение, через каждое уменьшение вставлял msgbox чтобы это не происходило мгновенно, но полюбому можно сделать как-то по другому через цикл?? Кто поможет?

Добавлено через 3 минуты
реализовать нужно в Microsoft Visual Basic for Applications
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2013, 11:51
Ответы с готовыми решениями:

Программа, которая рисует изменение шара (рост от центра до границ экрана или уменьшение от границ экрана до центра)
Написать программу, которая спрашивает у пользователя, как должен вести себя шар: 1 –расти из центра до границ экрана или 2 – уменьшаться...

Движение объекта вдоль границ графического окна
Напишите программу решающую следующую задачу. Круг начинает самостоятельно двигаться из нижнего левого угла графического окна стандартного...

Нарисовать снеговика, перемещать его по экрану сначала слева направо, а потом сверху вниз вдоль границ графического окна
Не получается передвигать снеговик.Я просто не могу понять Нарисовать снеговик и перемещать его по экрану сначала слева направо, а потом...

12
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
20.11.2013, 12:32
На Visual Basic это делается просто
Ставится таймер и он все делает сам
уменьшает, передвигает и т.д.
Но я не стал бы для этого делать цикл.
Ведь цикл будет делать тоже самое, но
в сто крат хуже.
0
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
20.11.2013, 12:56  [ТС]
можно пример реализации?) я не очень шарю в этом, а реализовать хочется

Добавлено через 1 минуту
тут дело не в оценке даже, 5 из 6 задач я сделал, а вот как реализовать эту, даже зная теперь что нужно пользоваться таймером, я не знаю (

Добавлено через 3 минуты
и кстати таймер разве есть в VB for applications?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
20.11.2013, 13:29
Честно говоря, я не знаю этого.
У меня VB 6.0 . Давайте так.
Вы посмотрите есть ли у вашего
Бейсика таймер, если есть я напишу
программу для таймера, если нет, то
программу для цикла.
Договорились?
0
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
20.11.2013, 14:05  [ТС]
Цитата Сообщение от geh Посмотреть сообщение
есть ли у вашего ... Бейсика таймер?
таймера нет (
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
20.11.2013, 14:15
Цитата Сообщение от Fenik Посмотреть сообщение
Записывал макрос, потом делал уменьшение ...
Приложите свои наработки, меньше будет вопросов и дело пойдет быстрее.
0
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
20.11.2013, 15:26  [ТС]
c моими знаниями получилось только так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub this4()
   MsgBox ("В FullScreen")
   Application.DisplayFullScreen = True
  
    MsgBox ("Из FullScreen в Normal")
    ActiveWindow.WindowState = xlNormal
    MsgBox ("Переместим вправо")
     With ActiveWindow
        .Top = 9.25
        .Left = 915.25
    End With
      MsgBox ("Переместим вниз")
     With ActiveWindow
       .Top = 362.5
        .Left = 914.5
    End With
     MsgBox ("Переместим влево")
      With ActiveWindow
        .Top = 368.5
        .Left = 8.5
    End With
    MsgBox ("Переместим наверх")
      With ActiveWindow
        .Top = 4
        .Left = 1
    End With
    MsgBox ("в Maximized")
     Application.DisplayFullScreen = False
    ActiveWindow.WindowState = xlMaximized
   
End Sub
Добавлено через 2 минуты
MsgBox приходится использовать чтобы замедлить все, иначе все происходит мгновенно. вроде бы есть какая-то библиотека, подключаешь её и через sleep тормозишь

Добавлено через 3 минуты
И конечно так по координатам не очень правильно, хотелось бы чтобы перемещало медленно и плавно по всему экрану, а не дёргалось по его краям
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
20.11.2013, 15:39
Класс таймера, работающего под VBA.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#If Win64 Then
 Private Declare PtrSafe Function SetTimer Lib "user32" (ByVal hwnd As LongLong, ByVal nIDEvent As LongLong, ByVal uElapse As LongLong, ByVal lpTimerFunc As LongPtr) As Long
#Else
 Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
#End If
 
#If Win64 Then
 Private Declare PtrSafe Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
#Else
 Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
#End If
 
Private IdEv As Long
 
Public Property Let fIdEv(dIdEv As String)
 IdEv = dIdEv
End Property
Public Property Get fIdEv() As String
 fIdEv = IdEv
End Property
 
#If Win64 Then
 Public Sub СоздатьТаймер(dИнтервал As Long, dlpTimerFunc As LongLong)
  If IdEv = 0 Then
   IdEv = SetTimer(0&, 0&, dИнтервал, dlpTimerFunc)
  End If
 End Sub
#Else
 Public Sub СоздатьТаймер(dИнтервал As Long, dlpTimerFunc As Long)
  If IdEv = 0 Then
   IdEv = SetTimer(0&, 0&, dИнтервал, dlpTimerFunc)
  End If
 End Sub
#End If
 
Public Sub УдалитьТаймер()
 If IdEv <> 0 Then
  Call KillTimer(0&, IdEv)
  IdEv = 0
 End If
End Sub
 
Private Sub Class_Terminate()
 УдалитьТаймер
End Sub
+ управляющяя надстройка в модуле
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public dТаймерИсполненияЗадачи As New TimerClass
Dim dМаркерУдаленияВсехТаймеров As Boolean
 
Public Sub fТаймер_ИсполненияЗадачи_Управление(dДействие$)
 If dДействие$ = "Запуск" Then
  If dМаркерУдаленияВсехТаймеров <> True Then Call dТаймерИсполненияЗадачи.СоздатьТаймер(1000, AddressOf fТаймер_ИсполненияЗадачи)
 ElseIf dДействие$ = "Остановка" Then
  Call dТаймерИсполненияЗадачи.УдалитьТаймер
 End If
End Sub
 
Public Sub fТаймер_ИсполненияЗадачи(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTimer As Long)
 On Error Resume Next
 ' что-то
End Sub
 
Private Function fУстановкаМаркераУдаленияВсехТаймеров()
 dМаркерУдаленияВсехТаймеров = True
End Function
Private Function fСнятиеМаркераУдаленияВсехТаймеров()
 dМаркерУдаленияВсехТаймеров = False
End Function
Добавлено через 2 минуты
чтиво по траблам с таймером В момент отработки виндового таймера
1
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
20.11.2013, 15:53  [ТС]
StepInLik, что означает данная ошибка. она же возникает при попытки подключить Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Миниатюры
Уменьшение размера активного окна, передвижение вдоль границ экрана  
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
20.11.2013, 15:56
Код в студию.
0
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
20.11.2013, 16:01  [ТС]
Цитата Сообщение от StepInLik Посмотреть сообщение
Код в студию.
Уменьшение размера активного окна, передвижение вдоль границ экрана
только перед Sub this4() подключаю
Visual Basic
1
2
Declare Sub Sleep Lib "kernel32" ( _
    ByVal dwMilliseconds As Long)
он именно на библиотеку показывает
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
20.11.2013, 16:35
Выложите файл.
0
 Аватар для Fenik
3 / 3 / 0
Регистрация: 25.05.2012
Сообщений: 89
21.11.2013, 15:53  [ТС]
Вопрос закрыт. Реализовал через for
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2013, 15:53
Помогаю со студенческими работами здесь

Уменьшение размера окна и все расходится в стороны
Что исправить? Пытался fixed, absolute ставить, не получилось! Фон: html { height: 100%; } body { margin: 0;...

Изменение размера рабочего экрана/окна
Что-то никак не могу найти где можно изменить размер экрана/окна отмеченного на картинке. Когда пытаюсь тянуть одну сторону то он просто...

Увеличение размера окна у стенок экрана не работает
Это издевательство, уже не раз пожалел с переходом на Windows 10, хотя у него есть и свои плюсы. Столкнулся с очередной проблемой. ...

Уменьшение границ массива
Дан массив А из 12 вещественных элементов. Найти среднее арифметическое элементов массива А. Сформировать массив В из элементов массива А,...

Создайте приложение, отображающее движение окружности вдоль границы окна. Учтите возможность изменения размеров окна
Создайте приложение, отображающее движение окружности вдоль границы окна. Учтите возможность изменения размеров окна. Добавлено через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru