[CDR 2021] Вызвать refresh палитры

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
150
Реакции
41
Может подскажете, как реализовать кнопкой или макросом refresh, в стандартной customization не нашёл:


refresh.jpg
 

DukereD

Участник
Сообщения
99
Реакции
6
а просто application.refresh не помогает?
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
150
Реакции
41
Кода не нашел, application.refresh не помогает, хочется удалить лишние цвета из палитры документа, а если нужно- вставить.
Со вставкой проблем нет: ActiveDocument.AddColorsToDocPalette
С удалением: надо перебрать все цвета в документе, сравнить с палитрой и, если в палитре есть неиспользуемые, то удалить.
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
1 446
Реакции
1 271
без GUID
***********
1 and/or 2
*************
запускать первый Sub

Код:
Sub Reset_DocPalette()

ResetPalette ActiveDocument
End Sub

Sub ResetPalette(ByRef iDoc As Document)

Dim CurColNo As Integer, CurPg As Page, CurSh As Shape, CurSR As ShapeRange, DoIt As Boolean

For CurColNo = iDoc.Palette.Colors.Count To 1 Step -1
   DoIt = True
   For Each CurPg In iDoc.Pages
      Set CurSR = CurPg.Shapes.All
      If CurSR.Shapes.Count > 0 Then
         For Each CurSh In CurSR.Shapes
            If CurSh.Fill.Type = cdrUniformFill Then
               If CurSh.Fill.UniformColor.IsSame(iDoc.Palette.Colors(CurColNo)) Then DoIt = False
            End If
         Next CurSh
      End If
   Next CurPg
   If DoIt Then iDoc.Palette.RemoveColor CurColNo
Next CurColNo

End Sub

add
****
группы, поверклипы, пантоны в поиск не попадают
 
Последнее редактирование:

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
150
Реакции
41
Последнее редактирование: