Тема: Как реализовать запрос из цикла ?

Код: выделяю объекты и если это не text (случайно кликнул в пустое поле) то НЕ выхожу из цикла, а повторно запрашиваю объект, если нажата ESC то выход.
Как реализовать?
uv_ExitOCtrlFlag = False
While Not uv_ExitOCtrlFlag
On Error GoTo Error_Control
ThisDrawing.Utility.GetEntity Object, basePnt, "Объект >>"
  If TypeName(Object) = "IAcadText2" Then
        'какие-то действия
  End If
Wend

Re: Как реализовать запрос из цикла ?

Я когда-то пыталась делать нечто подобное... Попробуйте такой фрагмент вставить в обработчик кнопки "выделить объекты":

MyUserForm.Hide
On Error Resume Next 'catch selcting errors.
    ' The following example waits for a selection from the user
RETRY:
    ThisDrawing.Utility.GetEntity my_obj, base_point, "Select a text, please"
    If Err <> 0 Then
        Err.Clear
        MsgBox "Try again."
        GoTo RETRY
    Else
        my_obj.Update
        stmp = my_obj.EntityName
        MsgBox "The object type is: " & stmp
        If (Not ((stmp = "AcadText") Or (stmp = "AcadMText")) ) Then
            MsgBox "The selected object isn't a text. You can try again."
            CAN_APPLY_FLAG = False 'as if we at start. Need, because m.b. successful oerations before, so, flag=true
        Else
            CAN_APPLY_FLAG = True
        End If
    End If
MyUserForm.Show 'show again dialog window

Re: Как реализовать запрос из цикла ?

А на нажатие Esc можно сделать MyUserForm.Show, в обработчике таймера.
Кстати, хорошо бы в теме сообщения кратко писать, что же вы хотите реализовать. :)

Re: Как реализовать запрос из цикла ?

Для нелокализованого  ACADa

Public Sub Bla_bla_bla()
    On Error GoTo NOT_ENTITY
    Do
    ' Get information about selected object
        ThisDrawing.Utility.GetEntity Object, PickedPoint, TransMatrix, ContextData, "Tykaj na Text"
        ObjName = TypeName(Object)
        If ObjName Like "*IAcadText*" Then
                 'Bla bla bla
        End If
    Loop
Exit_Here:
  Exit Sub
NOT_ENTITY:
  varErr = ThisDrawing.GetVariable("LASTPROMPT")
  If InStr(1, varErr, "*Cancel*") <> 0 Or Err.Description = "User input is a keyword" Then
    Err.Clear
    Resume Exit_Here
  Else
    Resume
  End If
End Sub