Тема: Как свернуть/ развернуть форму на vba

Добрый вечер, Коллеги!
Поискал на эту тему материал не нашёл. Можноли форму написанную на VBA свернуть/ развернуть, для доступа к полю чертежа, есть ли альтернативный метод данный операции?

Re: Как свернуть/ развернуть форму на vba

Покопайте в сторону модальных форм. Свойство .ShowModal = True/False.
Или можно временно отгрузить форму. Именно свернуть не получится.

Re: Как свернуть/ развернуть форму на vba

Какая функциональность вам вообще нужна?
Если, например, как в акадовском диалоге создания блока (временный выход из форму с запросом точки), то у меня с этой целью на кнопке, например, висит вот такой код:

Private Sub CommandButton4_Click()
Me.Hide
Dim Point1 As Variant
'Запрашиваем точку чистого пола
On Error Resume Next
Err.Clear
Point1 = ThisDrawing.Utility.GetPoint(Prompt:="Введите точку чистого пола:")
If IsError(Point1(0)) Then GoTo FAIL
On Error GoTo 0
TextBox1.Value = Point1(1)
FAIL:
Me.Show
End Sub

Re: Как свернуть/ развернуть форму на vba

> Александр Бауск /ctrl e/
В принципе как вариант прокатывает, Textbox1 сделаю невидимым, по клику будет выходить в форму. Благодарю! Сам попробывал через API не сработало
Option Explicit
' описание API-функций и констант
#If Win32 Then
   Private Declare Function SetWindowLong Lib _
     "user32" Alias "SetWindowLongA" (ByVal _
     hWnd As Long, ByVal nIndex As Long, ByVal _
     dwNewLong As Long) As Long
   Private Declare Function GetWindowLong Lib _
     "user32" Alias "GetWindowLongA" (ByVal _
    hWnd As Long, ByVal nIndex As Long) As Long
#Else
   Declare Function SetWindowLong Lib "User" _
     (ByVal hWnd As Integer, ByVal nIndex As _
     Integer, ByVal dwNewLong As Long) As Long
   Declare Function GetWindowLong Lib "User" _
     (ByVal hWnd As Integer, ByVal nIndex As _
     Integer) As Long
#End If
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
И сама функция
Public Sub SetCaptionButtons(Frm As Form)
  Dim lRet As Long
  lRet = GetWindowLong(Frm.hWnd, GWL_STYLE)
  SetWindowLong Frm.hWnd, GWL_STYLE, lRet Or _
  WS_MINIMIZEBOX * (Abs(Frm.MinButton)) Or _
  WS_MAXIMIZEBOX * (Abs(Frm.MaxButton))
End Sub
Наберусь наглости спросить: а с аналогичным кодом по извлечению длины из примитива сталкивались?

Re: Как свернуть/ развернуть форму на vba

> а
с аналогичным кодом по извлечению длины из примитива сталкивались?
Эээ... не понял. Можно конкретнее? каким образом аналогичным?

Re: Как свернуть/ развернуть форму на vba

Я бы просто (в лиспе) сделал бы набор, далее просто из свойств примитива извлёк длину, в VBA под Acad я просто пишу формы.

Re: Как свернуть/ развернуть форму на vba

Ну можно сделать запрос на выбор примитива GetEntity (вместо GetPoint), а потом точно также из его свойств забрать длину.
С Лиспом сравнивать не могу, я в нем не компетентен.