Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Можно ли в Форме создать программно.........  [new]
Slava A. Odievich
Member

Откуда: Москва
Сообщений: 74
......... новый Control, а затем программно его уничтожить, когда надобность в нем пропадет.
13 янв 04, 11:40    [488986]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
# Darth Vader #
Member

Откуда: RESIDENT EVIL
Сообщений: 7697
Можно.
Но в большинстве ситуаций это абсолютно не нужно.
13 янв 04, 11:51    [489016]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Allll
Member

Откуда:
Сообщений: 1435
Можно в mdb

Из справки Access 97:
В данном примере сначала создается форма, имеющая базовую

таблицу «Заказы». Затем функция CreateControl создает поле
и присоединенную к нему подпись в форме.

Sub NewControls()
Dim frm As Form
Dim ctlLabel As Control, ctlText As Control
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer

' Создает новую форму с базовой таблицей «Заказы».
Set frm = CreateForm
frm.RecordSource = "Заказы"
'
Задает координаты элементов управления.
intLabelX = 100
intLabelY = 100
intDataX = 1000
intDataY = 100
' Создает в области данных неприсоединенное поле стандартных размеров.

Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _
intDataX, intDataY)
'
Создает надпись, присоединенную к полю.
Set ctlLabel = CreateControl(frm.Name, acLabel, , ctlText.Name, _
"NewLabel", intLabelX, intLabelY)
' Восстанавливает окно формы.
DoCmd.Restore
End Sub

В данном примере создается форма, содержащая кнопку,

и выводится сообщение, предлагающее пользователя удалить эту кнопку.
При нажатии кнопки Да в диалоговом окне из формы удаляется кнопка.

Sub DeleteCommandButton()
Dim frm As Form, ctlNew As Control
Dim strMsg As String, intResponse As Integer, intDialog As Integer

' Создает новую форму и получает указатель на нее.
Set frm = CreateForm
'
Создает новую кнопку.
Set ctlNew = CreateControl(frm.Name, acCommandButton)
' Восстанавливает окно формы.
DoCmd.Restore
'
Задает текст подписи.
ctlNew.Caption = "Новая кнопка"
' Задает размер элемента управления.
ctlNew.SizeToFit
'
Предлагает удалить кнопку.

strMsg = "Удаляем кнопку " & ctlNew.Name &". Продолжить?"
' Задает кнопки, которые выводятся в диалоговом окне.
intDialog = vbYesNo + vbCritical + vbDefaultButton2
intResponse = MsgBox(strMsg, intDialog)
If intResponse = vbYes Then
'
Удаляет элемент управления.
DeleteControl frm.Name, ctlNew.Name
End If
End Sub
13 янв 04, 11:52    [489019]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Slava A. Odievich
Member

Откуда: Москва
Сообщений: 74
Если можно, то как?

Как поступить в том случае, если заранее не известна конфигурация Контролов Формы (к примеру колличество и расположение различных TextBox) а определяется только текущей конфигурацией Данных
13 янв 04, 11:56    [489027]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
# Darth Vader #
Member

Откуда: RESIDENT EVIL
Сообщений: 7697
А что контролов очень много на форме?
Если нет , то не занимайся онанизмом А используй свойство Visible контролов.
13 янв 04, 11:59    [489035]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
в mde CreateControl работать не будет
13 янв 04, 12:00    [489040]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
elephant_work
Member

Откуда: Israel
Сообщений: 110
будет только если ты открываешь форму сначало для дизайна а потом уж и создаешь в ней свои Controls и потом ее открываешь как нормальную
13 янв 04, 12:45    [489190]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Slava A. Odievich
Member

Откуда: Москва
Сообщений: 74
Хорошо, тогда может кто либо посоветует как сделать так, чтобы после того, как выведен ListBox и выбрано некоторое значение из этого ListBox нужно разорвать исходный ListBox в этом месте, оставив верхнюю часть без изменения, а нижнюю сдвинув на некоторое расстояние вниз
13 янв 04, 13:32    [489315]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9900
нужно разорвать исходный ListBox
Господи, что это?
Самсон, раздирающий листбокс накуй... Кошмар...
13 янв 04, 13:41    [489333]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9900
Кстати, кто тебе мешает сделать два листбокса сразу?
И управлять их размерами и видимостью?
13 янв 04, 13:43    [489340]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Slava A. Odievich
Member

Откуда: Москва
Сообщений: 74
Лох спасибо.

Это и в самом деле может быть решением.
13 янв 04, 15:59    [489725]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли в Форме создать программно.........  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
2elephant_work
на мой пост "в mde CreateControl работать не будет"
>будет только если ты открываешь форму сначало для дизайна а потом уж и создаешь в ней свои Controls и потом ее открываешь как нормальную

Вопрос:И как же это ты откроешь форму для дизайнав mde?
Ответ:Не иначе как только во сне.
13 янв 04, 16:05    [489739]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить