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
  1. Выберите прямоугольник
  2. Нажмите макрос
  3. Макрос должен отлично работать, чтобы создать и поместить дату в центр прямоугольника. НО, дата СЕЙЧАС (дата выполнения макроса).

  4. Затем вы должны изменить " CStr(Date)" на значение, на которое ссылается дата.

Msgstr "Переменная объекта или переменная блока не установлена".

Активного документа там нет.

Я думаю, что вы должны сначала создать новый документ

Другие вопросы по тегам