CorelDraw X6 Macro для вставки даты с помощью DTPicker Control
Я пытаюсь вставить дату в ярлык. Я написал следующий код. Я могу выбрать дату, нажав на стрелку, и календарь появится. Кнопка "ОТМЕНА" работает, но когда я нажимаю "ОК", я не могу вставить ее на этикетку. Этикетка представляет собой обычный документ Corel с текстом и изображениями. Я попытался вставить прямоугольный набор инструментов, чтобы посмотреть, смогу ли я получить его, чтобы вставить туда дату, используя координаты X,Y, но это не сработало. Мне в основном нужно знать, как вставить DTPicker.Value
на этикетке.
Sub ShowIt()
Calendar.Show
End Sub
Private Sub Cancel_Click()
Unload Me
End Sub
Private Sub OK_Click()
a = DTPicker1.Value
b = Format(DTPicker1.Value, "mm/dd/yy")
Unload Me
End Sub
Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
DTPicker1.Value = Format(DTPicker1.Value, "mm/dd/yy")
End Sub
Private Sub Calendar_Activate()
Me.DTPicker1.Value = Date
End Sub
Спасибо!
4 ответа
Приведенный ниже код должен работать в соответствии с требованиями:
ActiveDocument.ReferencePoint = cdrCenter
XPos = Activeselection.PositionX 'XPos of the rect
YPos = Activeselection.PositionY 'YPos of the rect
Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
s.PositionX=XPos
s.PositionY=YPos
НО: он не использовал Corel Draw.....:)
https://community.coreldraw.com/talk/coreldraw_community/f/101/t/51007
Попробуйте следующее: 1. Добавьте кнопку в форму макроса. 2. Выберите прямоугольник. 3. Нажмите кнопку 4. Макрос отобразит X, Y Pos для прямоугольника, затем создайте текст и поместите его в центр прямоугольника.
ActiveDocument.ReferencePoint = cdrCenter
XPos = Activeselection.PositionX 'XPos of the rect
YPos = Activeselection.PositionY 'YPos of the rect
Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
s.PositionX=XPos
s.PositionY=YPos
Попробуйте запустить предыдущий код отдельно от вашего кода.
Sub Macro1()
ActiveDocument.ReferencePoint = cdrCenter
XPos = Activeselection.PositionX
YPos = Activeselection.PositionY
Set s = ActiveLayer.CreateArtisticText(0, 0, CStr(Date))
s.PositionX=XPos
s.PositionY=YPos
End Sub
- Выберите прямоугольник
- Нажмите макрос
Макрос должен отлично работать, чтобы создать и поместить дату в центр прямоугольника. НО, дата СЕЙЧАС (дата выполнения макроса).
Затем вы должны изменить " CStr(Date)" на значение, на которое ссылается дата.
Msgstr "Переменная объекта или переменная блока не установлена".
Активного документа там нет.
Я думаю, что вы должны сначала создать новый документ