Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как форму сделать модальной? / 6 сообщений из 6, страница 1 из 1
12.06.2008, 00:16
    #35370761
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
Как создать собственное модальное диалоговое окно? Чтобы оно возвращало какое-то значение
...
Рейтинг: 0 / 0
12.06.2008, 00:24
    #35370762
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
Там есть метод
form2.show 1
(1 == modal)
только как сделать так, чтобы form2 что-то вернула? Напр, содержимое строки text1
...
Рейтинг: 0 / 0
12.06.2008, 02:42
    #35370798
глоб
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
ну дык запиши в глобальную переменную.
...
Рейтинг: 0 / 0
12.06.2008, 13:38
    #35371218
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
глобну дык запиши в глобальную переменную.
нее, эт понятное дело. Но не структурный это подход) Это я так выкрутился из ситуации - записав в переменную. Вопрос в том - как написать свою функцию, подобную msgbox
msg = msgbox(P1,P2,P3..)
...
Рейтинг: 0 / 0
12.06.2008, 14:12
    #35371259
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
Форма есть класс. Напишите для него свои методы, свойства и события как для класса. Кстати, лучше писать не form2.show 1, а Form2.Show vbModal.
...
Рейтинг: 0 / 0
12.06.2008, 22:45
    #35371782
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как форму сделать модальной?
Красивое решение получается когда вызов модальной формы делается как-то так:
Код: plaintext
Result = Form2.ShowDocument()
Для этого в этой (диалоговой) форме можно записать функцию так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim m_Result as Long  'фтопку глобальные переменные - обходимся только с локальными!

Public Function ShowDocument(ByVal Caption As String) As Long
   Me.Caption = Caption
   Me.Show vbModal     'Ниже этой строчки код пойдет только после выгрузки или сокрытия формы (нам нужно второе)
   ShowDocument = m_Result 'Т.к. до момента выгрузки формы, все переменные еще имеют значения
   Unload Me
End Function

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
   Cancel = Me.Visible  'Не позволяем бесконтрольно выгрузиться по нажатию на крестик в углу формы
   btnCancel_Click
End Sub

Private Sub btnCancel_Click()
   m_Result =  0 
   Me.Hide
End Sub

Private Sub btnOK_Click()
   m_Result =  12  'çàãëóøêà
   Me.Hide
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как форму сделать модальной? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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