Тема: Как добиться, чтоб изменение стиля текста не исчезло после regen-a?

Здравствуйте, добрые люди!
У меня такая проблемочка... Есть несколько объектов AcadText, для каждого из которых указан стиль. Некоторые из них надо нарисовать указанным стилем, но заменить в нём шрифт. Всё бы ничего, но после Regen шрифт возвращается к тому, который соответствует данному стилю вообще, то есть забывает про нашу модификацию. Если в программе не делать regen-a, то аналогичная неприятность происходит после переключения в окно модели (или другой layout) и потом обратно.  Вот мой код:

    Set currTextStyle = ThisDrawing.ActiveTextStyle
    Set newTextStyle = ThisDrawing.TextStyles.Item(my_font_style)
    newTextStyle.GetFont typeFace, Bold, Italic, charSet, PitchandFamily
    old_typeFace = typeFace ' for any case - for all, changed or not
    If (typeFace <> my_font_name) Then
        typeFace = my_font_name
        newTextStyle.SetFont typeFace, Bold, Italic, charSet, PitchandFamily
    End If
    ThisDrawing.ActiveTextStyle = newTextStyle
    Set my_text = ThisDrawing.PaperSpace.AddText("kuku", ins_pt, my_font_size)
    ThisDrawing.Regen acAllViewports 'here all right!!!! ???
    If old_typeFace <> "" Then 'return old font to our (new) textStyle
        newTextStyle.SetFont old_typeFace, Bold, Italic, charSet, PitchandFamily
    Else
        newTextStyle.fontFile = "txt"
    End If
    ThisDrawing.ActiveTextStyle = currTextStyle 'return to old text tyle

Если дальше сделать regen или переключиться в другое окно и обратно, то изменения стиля пропадают. Помогите, пожалуйста, кто может. Буду очень признательна...

Re: Как добиться, чтоб изменение стиля текста не исчезло после regen-a?

Либо создавать новые стили для вставки однострчных текстов, либо создавать многострочные, задавая форматироване "напрямую" в тексте.
ИМХО

Re: Как добиться, чтоб изменение стиля текста не исчезло после regen-a?

Спасибо! А ещё тогда такой вопрос: чем многострочные лучше или хуже однострочных? Мне вообще-то одной строки достаточно, там маленькие надписи...   Просто очень не хочется создавать кучу стилей (в общем случае - для каждой надписи), а если потом удалить их, то, наверно, с надписями будут проблемы?

Re: Как добиться, чтоб изменение стиля текста не исчезло после regen-a?

Ээээммм... Поехали чуток назад, ок?
Если в файле есть хотя бы один примитив, использующий указанный стиль, разве будет возможно удалить этот стиль? Сам ACAD такого не даст сделать. Попробуй провернуть, к примеру, PurgeAll на файле, в котором 1 текст использует стиль Style1, а второй - Style2. Будут эти стили удалены или нет? Вряд ли...
Дальше. Я не очень понял смысла применения отдельного стиля на отдельную надпись. Чего там может быть такого страшного, что Текст1 формировать Стилем1, Текст2 - Стилем2 и т.д. Может, там вся проблема только в том, что толщину тексту надо задать?
И теперь то, что самое первое - чем одно лучше / хуже / по барабану (ненужное подчеркнуть) другого. Ща тут начнутся религиозные войны...
Известные мне отличия однострочника от многострочника:
- в однострочном тексте, кажется, максимальная длина строки - 255 символов (в многострочном - больше 32000 символов);
- однострочный текст не поддерживает форматирование (многострочный поддерживает), т.е. верхний / нижний индексы (кроме ввода юникодовских символов), написание части текста полужирным или наклонным фонтом ну и т.д.
- поведение текстового атрибута блока очень похоже на поведение однострочного текста;
- особым образом сформированный многострочный текст будет работать как поле (field).

Re: Как добиться, чтоб изменение стиля текста не исчезло после regen-a?

Насчёт удаления -  это очень здорово, что нельзя. :)  Я пошла по пути создания стилей и рисования однострочных подписей... Мне нужно менять шрифт текста, и вот как удалось этого добиться (пока, вроде, работает) :

Sub DrawOneLabel(text As String, ins_pt() As Double, align As Integer, alfa As Double, my_font As LabelFont)
    Dim newTextStyle As AcadTextStyle, currTextStyle As AcadTextStyle, needTextStile As AcadTextStyle
    Dim typeFace As String, Bold As Boolean, Italic As Boolean, charSet As Long, PitchandFamily As Long
    Dim old_typeFace As String, need_style_name As String
    Set currTextStyle = ThisDrawing.ActiveTextStyle
    Set newTextStyle = ThisDrawing.TextStyles.Item(my_font.font_style)
    newTextStyle.GetFont typeFace, Bold, Italic, charSet, PitchandFamily
    old_typeFace = typeFace ' for any case - for all, changed or not
    If (typeFace <> my_font.font_name) Then 'try take need style (if exists), else - create new
        need_style_name = newTextStyle.Name & "_with_font_" & typeFace
        Err.Clear
        On Error Resume Next
        needTextStile = ThisDrawing.TextStyles.Item(need_style_name)
        If Err <> 0 Then 'need style is absent ==> need create
            Set newTextStyle = ThisDrawing.TextStyles.Add(need_style_name)
            typeFace = my_font.font_name
            newTextStyle.SetFont typeFace, Bold, Italic, charSet, PitchandFamily
        Else
            newTextStyle = needTextStile
        End If
    End If
    ThisDrawing.ActiveTextStyle = newTextStyle
    Dim my_text As AcadText
    Set my_text = ThisDrawing.PaperSpace.AddText(text, ins_pt, my_font.font_size / (map_scale / 1000)) 'm.b.  size / (map_scale / 1000) ?...
    my_text.Rotate ins_pt, alfa
    my_text.Alignment = align
    ThisDrawing.Regen acAllViewports ' acActiveViewport 'whant to see change of font
    ThisDrawing.ActiveTextStyle = currTextStyle 'return to old text tyle
End Sub

P.S. Отдельное спасибо за просвещение меня в области однострочных/многострочных текстов!