Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Create form / 12 сообщений из 12, страница 1 из 1
21.11.2012, 16:43
    #38047369
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Есть некий проект. В нем описан Formset. На одной из форм по нажатию кнопки требуется открыть окно и ввести параметры. Так-как эта операция нужна очень редко и мало кому хочу описать ее как:
_frm=CREATEOBJECT('Form')
_frm.name=SYS(2015)
_frm.left=10
_frm.width=350
_frm.top=10
_frm.height=150
_frm.visible=.t.
_frm.addobject('Text1','Textbox')
_frm.text1.left=10
_frm.text1.width=75
_frm.text1.top=10
_frm.text1.height=25
_frm.alwaysontop=.t.
_frm.show()

При этом форма смигивает. и все...

При попытке поставить _frm.show(1) = выдает ошибку, что не может изменить модальность в видимой форме...
...
Рейтинг: 0 / 0
21.11.2012, 16:53
    #38047394
ArgonS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
glamisЕсть некий проект. В нем описан Formset. На одной из форм по нажатию кнопки требуется открыть окно и ввести параметры. Так-как эта операция нужна очень редко и мало кому хочу описать ее как:
_frm=CREATEOBJECT('Form')
_frm.name=SYS(2015)
_frm.left=10
_frm.width=350
_frm.top=10
_frm.height=150
_frm.visible=.t.
_frm.addobject('Text1','Textbox')
_frm.text1.left=10
_frm.text1.width=75
_frm.text1.top=10
_frm.text1.height=25
_frm.alwaysontop=.t.
_frm.show()

При этом форма смигивает. и все...

При попытке поставить _frm.show(1) = выдает ошибку, что не может изменить модальность в видимой форме...

_frm = CreateObject("Form1")
_frm.Show(1)

Define class Form1 as form
AutoCenter = .t.
Name = "Form1"

add object Text1 AS textbox with ;
Alignment = 3, Height = 23, Left = 36, Margin = 2, Top = 24, Width = 100, Name = "Text1"
ENDDEFINE
_frm.name="test"
_frm.left=10
_frm.width=350
_frm.top=10
_frm.height=150
_frm.alwaysontop=.t.
...
Рейтинг: 0 / 0
21.11.2012, 17:15
    #38047452
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
ArgonS_frm = CreateObject("Form1")
_frm.Show(1)

Define class Form1 as form
AutoCenter = .t.
Name = "Form1"

add object Text1 AS textbox with ;
Alignment = 3, Height = 23, Left = 36, Margin = 2, Top = 24, Width = 100, Name = "Text1"
ENDDEFINE
_frm.name="test"
_frm.left=10
_frm.width=350
_frm.top=10
_frm.height=150
_frm.alwaysontop=.t.

Class difinition Form1 is not found
...
Рейтинг: 0 / 0
21.11.2012, 17:16
    #38047455
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
glamis, все у тебя правильно только ты не учитываешь область видимости переменной _frm.
поставь в конце MessageBox('') и посмотришь на свою форму :)
Форма создается и показывается, но тут твой код заканчивает работать и переменная _frm уничтожается и форма тоже.
в этом одно из основных отличий CREATEOBJECT('Form') и DO FORM ...
Если тебе надо чтобы форма продолжала существовать то сделай так чтоб переменная жила дальше. Например используй свойство другой формы или экрана. Или PUBLIC ее сделай, но это не очень хорошо.
...
Рейтинг: 0 / 0
21.11.2012, 17:18
    #38047463
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
glamisПри попытке поставить _frm.show(1) = выдает ошибку, что не может изменить модальность в видимой форме...
Код: sql
1.
2.
_frm.Visible = .F.
_frm.show(1)
...
Рейтинг: 0 / 0
21.11.2012, 17:42
    #38047498
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Dima TglamisПри попытке поставить _frm.show(1) = выдает ошибку, что не может изменить модальность в видимой форме...
Код: sql
1.
2.
_frm.Visible = .F.
_frm.show(1)



Этот фокус не прошел
...
Рейтинг: 0 / 0
21.11.2012, 17:49
    #38047510
Penner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
_frm=CREATEOBJECT('Form')
_frm.name=SYS(2015)
_frm.left=10
_frm.width=350
_frm.top=10
_frm.height=150
_frm.visible=.t.
_frm.addobject('Text1','Textbox')
_frm.text1.left=10
_frm.text1.width=75
_frm.text1.top=10
_frm.text1.height=25
_frm.alwaysontop=.t.
_frm.show( 1 )
...
Рейтинг: 0 / 0
22.11.2012, 08:37
    #38048100
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Помогло.
Странно, я вроде эти варианты с visible проверял.

сенк
...
Рейтинг: 0 / 0
22.11.2012, 08:59
    #38048112
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Кстати, совершенно непонятно почему не отрабатывает конструкция
createobject()
Define class...

Почему-то createobject не видит define.
...
Рейтинг: 0 / 0
22.11.2012, 09:06
    #38048122
Create form
glamis,
Я так думаю из-за того, что Define Class ... следует уже после того, как сделан CreateObject... В этот момент Фокс не знает еще, что он должен создавать - описания-то нет. Поэтому и идет ошибка..

Я, после знакомства с С/С++, стараюсь Define и Create писать либо в разных файлах (чтобы Фокс сам нашел необходимые ссылки), либо, если в одном файле, то Define... перед Create...
...
Рейтинг: 0 / 0
22.11.2012, 11:01
    #38048291
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Станислав С...кий,

если ставлю define class перед create - ругается на add object в описании класса - пишет, что данная команда может быть использована только в define class
...
Рейтинг: 0 / 0
22.11.2012, 11:05
    #38048294
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Create form
Пардонец,

Проект чужой, этот блок строится динамически и только что разглядел, что дергаюсь внутри другого defin class
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Create form / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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