powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли добавить в Активикс еще одну форму?
12 сообщений из 12, страница 1 из 1
Можно ли добавить в Активикс еще одну форму?
    #33108754
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самодельном ActivX, по нажатию кнопки должна открываться модальная формочка, где пользователь может выбрать один из 9 цветов заливки(стандартное окно выбора цветов применить нельзя, там слишком много оттенков, а надо только 9).
Столкнулся с тем, что при попытке команды "добавить форму", форма добавляется не в этот проект-ActivX, а, как-бы, "в соседний".
Т.е., если представить UserControl как "подложку", то выходит, что в состав ActivX могут войти только контролы расположенные на этой подложке.
Может что посоветуете?
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33108789
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правой кнопкой мыши щелкаешь на нужный проект в Project Explorer'e - Add
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33108840
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Antonariy: Привет! Еще раз спасибо за вчерашнюю помощь - прям не налюбуюсь! (В VB я, можно сказать, новичек, отсюда такая щенячья радость)

Поясни куды жать: "Файл -Добавить проект" или "Проект - Добавить форму"?
Я, когда писал - имел ввиду второй случай.
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33108892
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не за что =)
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33109018
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал... и при попытке сохранить(при активной форме) программа хочет сохранить файл ...frm. Т.е. отдельно от проекта с ActiveX. Это потом придется кроме самого ActiveX еще и этот ...frm на компы устанавливать?
Элемент "надпись" в VB удивил:
- свойства "оформление"(утопленный, приподнятый и т.д.) не нашел
- свойство "тип границы" только два варианта, если выбрать Fixed Single, то надпись становится "утопленной" и никак ее не "поднять".
- свойство "цвет границы" - не нашел.
Но, с удивлением, обнаружил у надписи свойства из группы "Данные", во как!
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33110282
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ее открыть-то эту добавленную в проект форму(и как,заодно, закрыть)?
Метод DoCmd не проходит...
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33112064
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С открытием/закрытием разобрался...
Но вот тут такой вопрос:
Форма должна открываться "около" кнопки, которая ее открывает. В VBA я для этого получаю значение
Код: plaintext
Set mContr = Application.Screen.ActiveControl
а в VB как это проделать? Выражения
Код: plaintext
Set mContr = Screen.ActiveControl
или
Код: plaintext
Set mContr = UserControl1.ActiveControl
возвращают Nothing....
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33112360
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это потому, что активный контрол принадлежит другому приложению.
Передай актвиксу ссылку на кнопку перед показом формы.
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33112412
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Какому "другому"? Все в одном проекте: кнопка тулбара и форма, которую она открывает.
А может это быть из-за того, что я все это повесил на Load формы?
В VBA это висит на событие Open , но в VB этого события-то нет.
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33112618
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит из-за Load.
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33112664
Benzin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какое событие эквивалентно Аксессному Form_Open?!
...
Рейтинг: 0 / 0
Можно ли добавить в Активикс еще одну форму?
    #33113496
АндрейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то в проекте надо открыть модально форму, причем открывать ее надо не где попало, и, судя по всему, из нее чего-то надо вернуть. Если так, то вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Public Type Dimensions
    Width As Long
    Height As Long
End Type
Public Type Rect
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const SWP_NOZORDER = &H4
Function fnОткрыть_Вернуть(objFrm As Form, strControl As String, ctl As Control) As Variant
'objFrm - форма, strControl - имя элемента формы, из которого возвращается значение, ctl - контрол, к которому привязываем позицию открытия
Dim frmRect As Rect, ctlRect As Rect, frmDimensions As Dimensions
GetWindowRect ctl.hwnd, ctlRect 'геометрия Тулбара
GetWindowRect objFrm.hwnd, frmRect 'геометрия формы
frmDimensions.Width = frmRect.Right - frmRect.Left 'ширина формы
frmDimensions.Height = frmRect.Bottom - frmRect.Top 'высота формы
'позиция открытия формы будет привязана к тулбару
frmRect.Left = ctlRect.Left + frmDimensions.Width
frmRect.Top = ctlRect.Top - frmDimensions.Height -  5 
'собственно сама привязка
SetWindowPos objFrm.hwnd,  0 , frmRect.Left, frmRect.Top, frmDimensions.Width, frmDimensions.Height, SWP_NOZORDER
 objFrm.Show vbModal
 fnSelFromFrm = objFrm.Controls(strControl)
 Unload objFrm
End Function
вызов функции(в контексте конкретной задачи):
Код: plaintext
qq = fnОткрыть_Вернуть(ФормаКоторуюОткрыть, "ИмяЕеПоля", Toolbar1)
может чего и перемудрил с заданием позиции открытия.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли добавить в Активикс еще одну форму?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]