Ответ: Как создать кнопку copy
Понятно. То есть, для нескольких фиксированных значений.
В аттаче - зип-файл с gms-файлом. У вас в Кореле должен быть установлен VBA. Если не установлен - установите. После этого скопируйте файл Dup.gms в папку C:\Program Files\Corel\Corel Graphics 11\Draw\GMS Запустите Корел, скомандуйте Tool > Customization, там выберите Commands > Macros, и там вы увидите список макросов которые вы можете включить в интерфейс программы. Среди них будут и нужные вам:
Duplicating.QuickDup.Duplicate90Plus
Duplicating.QuickDup.Duplicate90Minus
Duplicating.QuickDup.Duplicate59Plus
Duplicating.QuickDup.Duplicate59Minus
Теперь вы можете выбрать для них иконки и перетащить эти иконки на какой-нибудь тул-бар, на новый, например.
Но, нафига мучить ж если нужно думать головой - просто назначьте этим макросам шорт-каты, там же, в том же диалоге, и все. И вызывайте их по ним, например Ctrl+9 & Ctrl+Alt+9 - 90 и -90, Ctrl+5 & Ctrl+Alt+5 - 59 и -59.
Исходный текст можете посмотреть в редакторе VBA - Ctrl+F11.
Вот он:
Код:
Option Explicit
Sub Duplicate90Plus()
Call myDuplicate(90, 0, cdrMillimeter)
End Sub
Sub Duplicate90Minus()
Call myDuplicate(-90, 0, cdrMillimeter)
End Sub
Sub Duplicate59Plus()
Call myDuplicate(0, 59, cdrMillimeter)
End Sub
Sub Duplicate59Minus()
Call myDuplicate(0, -59, cdrMillimeter)
End Sub
Private Sub myDuplicate(dupX As Double, dupY As Double, cUnit As CorelDRAW.cdrUnit)
Dim cdApp As New CorelDRAW.Application
Dim cdDoc As CorelDRAW.Document
Dim sh As CorelDRAW.Shape
If cdApp.Documents.Count > 0 Then
Set cdDoc = cdApp.ActiveDocument
cdDoc.Unit = cUnit
Set sh = cdDoc.Selection
If sh.Shapes.Count > 0 Then
sh.Duplicate dupX, dupY
Else
MsgBox "At least one object must be selected", vbExclamation
End If
Else
MsgBox "At least one document must be", vbExclamation
End If
End Sub
Там где function или sub стоят без private - там они считаются Корелом макросами для внешнего исполнения, а там где private - не считаются таковыми.
Можете редактировать макрос сколько влезет.
В аттаче также снапшут - как оно работает с тулбаром.
