[CDR 2017-2021] Вызов индикатора фоновой работы из скрипта

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
fon.jpg


В CorelDraw есть возможность включить работу в фоновом режиме (рис. 1) - сохранение, экспорт, генерацию PDF (рис. 2).
Вопрос: можно ли показать индикатор при генерации PDF скриптом?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
Под скриптом вы снова VBA макрос, надо полагать, подразумеваете?
Корел не особо большие возможности для многозадачности предоставляет, индикатор можно
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Наверное макрос, хотя теперь всё в 2021 называется скриптами)


Код:
Sub ExportJPG_PDF()

    Dim myDoc As Document
    Set myDoc = ActiveDocument
        With myDoc.PDFSettings
            .ColorMode = pdfCMYK
            .BitmapCompression = pdfJPEG
            .CompressText = True
            .pdfVersion = pdfVersion14
            .TextAsCurves = True
        End With
    
    myDoc.PublishToPDF Mid(ActiveDocument.FullFileName, 1, Len(ActiveDocument.FullFileName) - 3) & "pdf"
    
    Dim expOptions As New StructExportOptions
        expOptions.AntiAliasingType = cdrNormalAntiAliasing
        expOptions.Compression = cdrCompressionJPEG
        expOptions.ImageType = cdrRGBColorImage
        expOptions.MaintainAspect = True
        expOptions.ResolutionX = 300
        expOptions.ResolutionY = 300
        expOptions.UseColorProfile = True
    
    ActiveDocument.Export Mid(ActiveDocument.FullFileName, 1, Len(ActiveDocument.FullFileName) - 3) & "jpg", cdrJPEG, cdrCurrentPage, expOptions

End Sub
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
  • Спасибо
Реакции: mnemonix

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Благодарю, постараюсь разобраться.
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
К сожалению указанные там макросы не работают в X7 и выше. печалька.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Не смог добиться результата, будем курить мануалы))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Не смог вызвать джинна индикатор. Из макроса не пошло, JS мне пока незнаком.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Не заработало, там две версии вызова, обе не пошли.
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Именно так и делал, со счётчиком.
Код:
Sub TestProgressBar()
Const Max = 1000000
Dim stat As AppStatus, z&
    Set stat = Application.Status
    stat.BeginProgress
    For z = 1 To Max
        stat.Progress = (z / Max) * 100
        stat.UpdateProgress
    Next
    stat.EndProgress
End Sub
 
Последнее редактирование:

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
чтобы наверняка везде работало - попробуйте так:
- на форме создаете два Label - #1 с числами 0 слева и 100% справа
- Label #2 изначально имеет ширину 0, другой цвет и число исполненных процентов в Caption (с выравниванием справа)
и располагается ровно над Label#1
- по мере роста числа циклов меняйте в коде ширину Label#2
- получите подобие стандартного прогресс-бара
 
Последнее редактирование:

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
вариантов оформления масса - типа такого напрмер
1622813259254.png
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Продолжаем разговор)) Данные команды вызывают прогресс-бар, но сразу половину (50%), по окончании закрывает. Но хотелось бы нормального движения. Пока не решил. Где может собака порыться?


Код:
Application.Status.BeginProgress

CanAbort = False

Application.Status.UpdateProgress step = 1

Application.Status.EndProgress

1630408035868.png
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
579
Реакции
175
Код:
Sub TestProgressBar()
Const Max = 500000
Dim stat As AppStatus, z&
    Set stat = Application.Status
    stat.BeginProgress
    For z = 1 To Max

        stat.Progress = (z / Max) * 100
        stat.UpdateProgress step = 1
    Next
   stat.EndProgress
End Sub

Так, забегал бар, но только первый раз. После срабатывания stat.EndProgres бегать перестаёт. Может как-то обнулить/перезапустить?
 
  • Спасибо
Реакции: DukereD