[CDR 2023] Фокусировка и работа в группе не разгруппировывая

DukereD

макрософил
Топикстартер
Сообщения
483
Реакции
116
Но вообще глянул. да есть события с фокусировкой.

Код:
Private Sub GlobalMacroStorage_OnApplicationEvent(ByVal EventName As String, Parameters() As Variant)
    If InStr(1, EventName, "Focus") Then MsgBox EventName
End Sub


BringInFocus и BringOutFocus, но дело ж в том, что это даже не используешь. т..к при выделении разношерстных объектов этого пункта меню не будет и собственно событие некому будет вызвать. поэтому только через "умную группировку" :)
 

eugeny

15 лет на форуме
Сообщения
886
Реакции
217
BringInFocus и BringOutFocus, но дело ж в том, что это даже не используешь. т..к при выделении разношерстных объектов этого пункта меню не будет и собственно событие некому будет вызвать. поэтому только через "умную группировку" :)
А что за умная группировка? какой-то отдельный метод? или подразумевается самостоятельное запоминание объектов до и после.
 
Последнее редактирование:

DukereD

макрософил
Топикстартер
Сообщения
483
Реакции
116
А что за умная группировка? какой-то отдельный метод? или подразумевается самостоятельное запоминание объектов до и после.
да. уже думаю над реализацией. он запоминает объекты ниже которых он лежал. и после разгруппировки он обратно под них объекты раскидает.
 

DukereD

макрософил
Топикстартер
Сообщения
483
Реакции
116
Ну вот для начала накидал немного. вроде работает )

 
  • Спасибо
Реакции: eugeny

eugeny

15 лет на форуме
Сообщения
886
Реакции
217
Но вообще глянул. да есть события с фокусировкой.

Код:
Private Sub GlobalMacroStorage_OnApplicationEvent(ByVal EventName As String, Parameters() As Variant)
    If InStr(1, EventName, "Focus") Then MsgBox EventName
End Sub


BringInFocus и BringOutFocus, но дело ж в том, что это даже не используешь. т..к при выделении разношерстных объектов этого пункта меню не будет и собственно событие некому будет вызвать. поэтому только через "умную группировку" :)
Да здесь не спорю.
Но можно сделать так:
Запускаешь макрос по кнопке.
он запоминает положение в группе и даешь группе определенное имя.
при выходе из фокусировки на событие BringOutFocus вешаешь макрос, который находит группы с определенным именем,
и размещает фигуры на свои места.
Здесь единственный минус, что надо определенную часть в ThisMacrosStorage записывать.и этот обработчик события весит в памяти.
А плюс в том, что если забыл отменить умную группировку, выход из фокуса сам сделает это за тебя