Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» AutoCad 2005/VBA

Автор: NoLacIPa
Дата сообщения: 11.11.2009 14:27
Доброго времени суток.

Заранее сорри, если тему не туда вставил.

Описание проблемы:

есть пользовательсякая форма встроенная в документ АвтоКад 2005, на ней имееться ТекстБокс1. Я никогда не морочил себе голову и запускал ее из отладки и делал, что мне нужно. А теперь надо шефу показать и нужно чтоб при открытии данного документа форма выскакивала автоматически. Я когда то еще давно пользовал ВБА для Excel ну и по аналогии решил сделать так:
в ThisDrawing вставил код

Private Sub AcadDocument_Activate()

UserForm1.Show

End Sub

Форма грузиться, но фокус на ТекстБокс не удаеться перевести (тоесть туда писать ни чего нельзя). Фокус передаеться либо в строку команд, либо вообще хрен знает куда. Я своим скудным умом думаю это из-за того что не все модули загружены... Вот что делать? Я уже чем только не спикулировал. Подкиньте идей, кто разбираеться...
Автор: dneprcomp
Дата сообщения: 11.11.2009 20:31
NoLacIPa
Попробуй

Код: Private Sub AcadDocument_Activate()

UserForm1.Show

ТекстБокс1.SetFocus

End Sub
Автор: Alexikit
Дата сообщения: 12.11.2009 11:43
NoLacIPa
Попробуйте вставить этот код не в ThisDrawing , а вставить модуль и туда Ваш код. Только я бы написала

Public Sub AcadDocument_Activate()

UserForm1.Show

End Sub
Автор: PrWork1
Дата сообщения: 12.11.2009 22:14
NoLacIPa
попробуй в acaddoc.lsp

(command "-vbastmt" "..команда VBA для загрузки и отображения окна..")
Автор: NoLacIPa
Дата сообщения: 21.11.2009 12:29
Alexikit это не подойдет, нужно чтоб эта процедура вызывалась при загрузке данного документа

dneprcomp

это не подойдет. Почему, я не знаю. Говорят без hwnd не обойтись


Добавлено:
PrWork1
Если можешь напиши по подробнее, я просто в этом не понимаю. Или пример пришли какой нибудь..
Автор: PrWork1
Дата сообщения: 21.11.2009 15:25
NoLacIPa

Например в этом чертеже есть

Sub test1()

Call UserForm1.Show


End Sub

В файл acaddoc.lsp в конце поставь

(command "_vbarun" "ThisDrawing.test1")

Тогда при открытии ЛЮБОГО документа будет запускаться эта процедура
( если её в документе нет, будет выдаваться в командной строке ошибка)

Можно сделать, чтобы эта команда вызывалась только в определенном документе (по имени)

Страницы: 1

Предыдущая тема: CxTreeList. Проблема.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.