powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Присвоение
10 сообщений из 10, страница 1 из 1
Присвоение
    #33902285
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Grid1.column2.text1.KeyPress пишу такой код
LPARAMETERS nKeyCode, nShiftAltCtrl
PUBLIC lnCode
lnCode=0
IF nkeycode=13
lnCode=thisform.grid1.column1.text1.Value()
ENDIF

MESSAGEBOX(lnCode)
т.е. я хочу присвоить lnCode числовое значение.
И у меня выкидывает ошибку Invalid subscript reference (Error 31)
Подскажите в чем ошибка , может неправильный синтаксис.
...
Рейтинг: 0 / 0
Присвоение
    #33902292
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lnCode=thisform.grid1.column1.text1. Value
С уважением, Алексей
P.S. Value - это не функция, а свойство
...
Рейтинг: 0 / 0
Присвоение
    #33902776
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо , и еще вопрос чтобы можно было передвигаться по Grid я переписал код так
LPARAMETERS nKeyCode, nShiftAltCtrl
PUBLIC lnCode

If Inlist(nKeyCode,5,13,24)
Do Case
Case nKeyCode=24
Keyboard '{ctrl+dnarrow}'
Case nKeyCode=5
Keyboard '{ctrl+uparrow}'
Case nKeyCode=13
thisform.grid1.column2.text1.SetFocus
lnCode=thisform.grid1.column1.text1.Value
MESSAGEBOX(lnCode)
lnCode=0

Endcase
Nodefault
Endif
Возникла проблема нажав один раз нужное число выводится, нажав на другой записи выводится старое число, т.е. оно не обновляется. Может я неправильно цикл записал?
...
Рейтинг: 0 / 0
Присвоение
    #33902875
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, разобрался т.к. я поставил свойства Grid1.AllowCelSellection=F
то надо было писать таке thisform.grid1.column1.text1.SetFocus
Все работает.
...
Рейтинг: 0 / 0
Присвоение
    #33904164
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МашкоБ.В.В Grid1.column2.text1.KeyPress пишу такой код
PUBLIC lnCode

а зачам Public?
...
Рейтинг: 0 / 0
Присвоение
    #33904652
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Penner МашкоБ.В.В Grid1.column2.text1.KeyPress пишу такой код
PUBLIC lnCode

а зачам Public?

Просто я хочу передать эту переменную в другую форму
...
Рейтинг: 0 / 0
Присвоение
    #33904826
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ помогите пожалуйста решить такую проблему все с тем же присваиванием.
Я имею форму form1 на ней находится Grid2 организованная от локального представления vie , которое основанно на таблице disp3.
Из form2 по такому коду я возвращаю значение индексного поля
LPARAMETERS nKeyCode, nShiftAltCtrl
PUBLIC lnCode
If Inlist(nKeyCode,5,13,24,4)
Do Case
Case nKeyCode=24
Keyboard '{ctrl+dnarrow}'
Case nKeyCode=5
Keyboard '{ctrl+uparrow}'
Case nKeyCode=13
thisform.grid1.column1.text1.SetFocus
lnCode=thisform.grid1.column1.text1.Value
RELEASE WINDOWS
Endcase
Nodefault
Endif
Этот кусок кода полностью работает- значение передает,
но когда я пытаюсь в form1 по нажатию на ячейку Grid2.Сolumn4 записать полученное значение lnCode в disp3 через такой код
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode = 13
NODEFAULT
do form form10 && происходит выбор значения и запись его в lnCode
&& значение в form1 передается проверял на messagebox(lnCode)
SELECT disp3
REPLACE code WITH lnCode
= TABLEUPDATE(.T.)
Requery('vie')
thisform.grid2.SetFocus()
ENDIF

То указатель просто переходит вверх и значение не меняется.
Т.е. должно быть так пожатию на ячейке в 4 столбце в Grid2 вызывается форма form2 выбирается значение и заносится в disp3 затем данные обновляются в локальном представлении.
Помогите пожплуйста . я приложил код.
...
Рейтинг: 0 / 0
Присвоение
    #33906805
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы всеж отказался от Public и сделал бы все через дополнительное свойство формы (возможно с assign-методом)
...
Рейтинг: 0 / 0
Присвоение
    #33906808
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или реализовал form2 как класс и

Код: plaintext
1.
2.
3.
loForm=createobject("MyClass")
loForm.show()
lnCode=loForm.grid1.column1.text1.Value
loForm.realease()

а внутри MyClass вместо Thisform.Release() поставил Thisform.Hide()
...
Рейтинг: 0 / 0
Присвоение
    #33907046
МашкоБ.В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо я решил свою проблему, действительно говорят ,поспешишь народ насмешишь. Код на ячейку надо было поставить такой
LPARAMETERS nKeyCode, nShiftAltCtrl
PUBLIC lnCode3
LOCAL x1
IF nKeyCode = 13
NODEFAULT
DO form form10
SELECT vie
lnCode3=code3
SELECT disp3
LOCATE FOR code3=lnCode3
REPLACE code WITH lnCode
= TABLEUPDATE(.T.)
Requery('vie')
Все работает, всем спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Присвоение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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