Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CREATEOBJEC() модальная форма / 8 сообщений из 8, страница 1 из 1
23.03.2008, 13:25
    #35208161
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
Прошу помощи. Стал программировать классами и споткнулся при работе с модальной формой...
По нажатию кнопки в форме нужно показать модальную форму, в которой нужно выбрать элемент из списка ListBox-a (путем двойного нажатия или Enter) либо нажать на Esc для отказа от выбора элемента. Вот так вот создается модальная форма.

Код: plaintext
1.
THIS.oform_list = CREATEOBJECT('Form_List')
THIS.oform_list.Show( 1 ) 

В методе KeyPress модальной формы:

Код: plaintext
1.
2.
3.
4.
LPARAMETERS nKeyCode, nShiftAltCtrl

IF nKeyCode= 27 
  RELEASE THISFORM
ENDIF

Тоже самое в методе DblClick ListBox-а этой формы

Код: plaintext
RELEASE THISFORM
Но при выполнении указанных команд форма не закрывается. Закрывается только если нажать на Х формы или Ctrl+F4

Выкрутился следующим кодом:
Код: plaintext
1.
THISFOR.Hide()
RELEASE THISFORM

Правильно ли это?!!

И еще вопрос - как передать параметры в форму понятно CREATEOBJECT('Form', parameter1,...), а как вернуть?
Не хотелось бы идти по пути DO FORM

Спасибо.
...
Рейтинг: 0 / 0
23.03.2008, 13:49
    #35208180
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
Все правильно. Модальную форму надо сначала спрятать, а потом уже уничтожать.
Возвращает модальная форма значение в методе Unload, о чем, кстати, и в хелпе написано.
Еще один вариант:
Код: plaintext
1.
2.
3.
4.
THIS.oform_list = CREATEOBJECT('Form_List')
with .oform_list
.Show( 1 )
lValue = .someproperty 
endwith
То есть после show(1) и до endwith из формы можно вытаскивать все что угодно.
...
Рейтинг: 0 / 0
23.03.2008, 14:16
    #35208198
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
Спасибо!!!
...
Рейтинг: 0 / 0
23.03.2008, 14:48
    #35208221
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
... и еще, для прояснения полной картины работы с модальной формой
Sergey SizovВсе правильно. Модальную форму надо сначала спрятать, а потом уже уничтожать.
Возвращает модальная форма значение в методе Unload, о чем, кстати, и в хелпе написано.
Это понятно.

Если можно, уточните, где здесь можно поймать то, что передается в Unload модальной формы?
Sergey Sizov
Код: plaintext
1.
2.
3.
4.
THIS.oform_list = CREATEOBJECT('Form_List')
with .oform_list
.Show( 1 )
lValue = .someproperty 
endwith
...
Рейтинг: 0 / 0
23.03.2008, 15:47
    #35208262
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
psv73Если можно, уточните, где здесь можно поймать то, что передается в Unload модальной формы?
Sergey Sizov
Код: plaintext
1.
2.
3.
4.
THIS.oform_list = CREATEOBJECT('Form_List')
with .oform_list
.Show( 1 )
lValue = .someproperty 
endwith

Здесь не используется Unload, это совершенно другой способ. Это считывание свойств модальной формы перед ее уничтожением. А уничтожится она только на строке с endwith.
...
Рейтинг: 0 / 0
23.03.2008, 17:05
    #35208320
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
...
Рейтинг: 0 / 0
23.03.2008, 17:11
    #35208323
psv73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CREATEOBJEC() модальная форма
Большое всем спасибо!!! Все предельно ясно!
...
Рейтинг: 0 / 0
24.03.2008, 09:26
    #35208801
CREATEOBJEC() модальная форма
авторЗдесь не используется Unload, это совершенно другой способ. Это считывание свойств модальной формы перед ее уничтожением. А уничтожится она только на строке с endwith.

из модальной класс-формы удобнее всего возвращать что-то именно таким способом
Код: plaintext
1.
2.
3.
4.
loForm = create(.....
with loForm 
  .show( 1 )   &&  в форме на кнопке или еще гдето нужно выполнить hide()
  что-то = .свойство


авторА уничтожится она только на строке с endwith
добавлю

уничтожится, если была loForm была объявлена локально или приват. только
после завершения метода, проц-ры ..,
если паблик - то не уничтожится
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CREATEOBJEC() модальная форма / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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