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

Поясни куды жать: "Файл -Добавить проект" или "Проект - Добавить форму"?
Я, когда писал - имел ввиду второй случай.
...
Рейтинг: 0 / 0
09.06.2005, 11:27:32
    #33108892
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
Не за что =)
...
Рейтинг: 0 / 0
09.06.2005, 12:02:21
    #33109018
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
Сделал... и при попытке сохранить(при активной форме) программа хочет сохранить файл ...frm. Т.е. отдельно от проекта с ActiveX. Это потом придется кроме самого ActiveX еще и этот ...frm на компы устанавливать?
Элемент "надпись" в VB удивил:
- свойства "оформление"(утопленный, приподнятый и т.д.) не нашел
- свойство "тип границы" только два варианта, если выбрать Fixed Single, то надпись становится "утопленной" и никак ее не "поднять".
- свойство "цвет границы" - не нашел.
Но, с удивлением, обнаружил у надписи свойства из группы "Данные", во как!
...
Рейтинг: 0 / 0
09.06.2005, 17:34:35
    #33110282
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
А как ее открыть-то эту добавленную в проект форму(и как,заодно, закрыть)?
Метод DoCmd не проходит...
...
Рейтинг: 0 / 0
10.06.2005, 14:37:59
    #33112064
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
С открытием/закрытием разобрался...
Но вот тут такой вопрос:
Форма должна открываться "около" кнопки, которая ее открывает. В VBA я для этого получаю значение
Код: plaintext
Set mContr = Application.Screen.ActiveControl
а в VB как это проделать? Выражения
Код: plaintext
Set mContr = Screen.ActiveControl
или
Код: plaintext
Set mContr = UserControl1.ActiveControl
возвращают Nothing....
...
Рейтинг: 0 / 0
10.06.2005, 16:22:04
    #33112360
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
Это потому, что активный контрол принадлежит другому приложению.
Передай актвиксу ссылку на кнопку перед показом формы.
...
Рейтинг: 0 / 0
10.06.2005, 16:41:47
    #33112412
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
Привет!
Какому "другому"? Все в одном проекте: кнопка тулбара и форма, которую она открывает.
А может это быть из-за того, что я все это повесил на Load формы?
В VBA это висит на событие Open , но в VB этого события-то нет.
...
Рейтинг: 0 / 0
10.06.2005, 17:54:05
    #33112618
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
Значит из-за Load.
...
Рейтинг: 0 / 0
10.06.2005, 18:12:30
    #33112664
Benzin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли добавить в Активикс еще одну форму?
А какое событие эквивалентно Аксессному Form_Open?!
...
Рейтинг: 0 / 0
12.06.2005, 11:06:21
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Можно ли добавить в Активикс еще одну форму? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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