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

  • Автор темы Автор темы mnemonix
  • Дата начала Дата начала

mnemonix

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


В CorelDraw есть возможность включить работу в фоновом режиме (рис. 1) - сохранение, экспорт, генерацию PDF (рис. 2).
Вопрос: можно ли показать индикатор при генерации PDF скриптом?
 
Под скриптом вы снова VBA макрос, надо полагать, подразумеваете?
Корел не особо большие возможности для многозадачности предоставляет, индикатор можно
 
Наверное макрос, хотя теперь всё в 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
 
Благодарю, постараюсь разобраться.
 
К сожалению указанные там макросы не работают в X7 и выше. печалька.
 
Не смог добиться результата, будем курить мануалы))
 
Не смог вызвать джинна индикатор. Из макроса не пошло, JS мне пока незнаком.
 
Последнее редактирование:
Не заработало, там две версии вызова, обе не пошли.
 
Именно так и делал, со счётчиком.
Код:
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
 
Последнее редактирование:
чтобы наверняка везде работало - попробуйте так:
- на форме создаете два Label - #1 с числами 0 слева и 100% справа
- Label #2 изначально имеет ширину 0, другой цвет и число исполненных процентов в Caption (с выравниванием справа)
и располагается ровно над Label#1
- по мере роста числа циклов меняйте в коде ширину Label#2
- получите подобие стандартного прогресс-бара
 
Последнее редактирование:
вариантов оформления масса - типа такого напрмер
1622813259254.png
 
Продолжаем разговор)) Данные команды вызывают прогресс-бар, но сразу половину (50%), по окончании закрывает. Но хотелось бы нормального движения. Пока не решил. Где может собака порыться?


Код:
Application.Status.BeginProgress

CanAbort = False

Application.Status.UpdateProgress step = 1

Application.Status.EndProgress

1630408035868.png
 
Код:
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