Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / не работает без wait / 6 сообщений из 6, страница 1 из 1
20.02.2004, 08:17
    #32416300
Katty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает без wait
Подскажите, пожалуйста:
Есть форма с гридом. Грид связан с таблицей. В гриде встаю на строку, запоминаю ее и вызываю другую форму. После работы с ней пытаюсь вернуться в гриде на исходную строку, используя locate. Если перед locate поставить wait wind timeout=0.01 (или что-то в этом роде) - курсор прекрасно становится на нужную запись. Если убрать wait - остается на первой записи.
Такое бывает, или я сошла с ума?
...
Рейтинг: 0 / 0
20.02.2004, 08:42
    #32416312
не работает без wait
А как вы запоминаете строку в GRID'e?
Не проще ли запомнить номер текущей строки и затем просто выполнить позиционирование через GO? Это нормально работает.
А с ума вы не сошли. В фоксе полно подобных глюков.
...
Рейтинг: 0 / 0
20.02.2004, 12:21
    #32416742
Katty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает без wait
Запоимнаю значение ключевого поля и ищу командой locate for
...
Рейтинг: 0 / 0
20.02.2004, 13:03
    #32416814
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает без wait
1. Перед вызовом дочерней формы надо принудительно убрать фокус из Grid. Переключится на любой другой объект формы. Например:

ThisForm.CommandButton1.SetFocus()

2. При возврате в родительскую форму после поиска нужной записи надо также принудительно передать фокус в Grid

ThisForm.Grid1.SetFocus()
...
Рейтинг: 0 / 0
20.02.2004, 13:26
    #32416865
не работает без wait
to Katty:
В Grid открыта таблица. Вы устанавливаете указатель на какую-либо строку. Затем вызываете другую форму.
В этой форме вы меняете положение указателя в таблице? (то есть перемещаетесь по записям)? Если нет, то делайте, как сказал ВладимирМ. И не надо никакого Locate.
Если же в вызываемой форме вы переходите на другие записи, то в методе элемента (кнопке или TextBox'e Grid'a), из которого вызывается форма, запомните номер текущей записи:
nRecord = RECNO()
DO FORM MyForm
SELECT алиас_таблицы
GO nRecord
thisform.Grid1.SetFocus
...
Рейтинг: 0 / 0
24.02.2004, 06:55
    #32418772
Katty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает без wait
Ваш вариант тоже работает только если перед GO ставить wait... Иначе курсор так же соскакивает на первую запись... Не знаю уже что и думать.

******************
obse=sele()

n_record=recno()
thisform.visible=.F.
do form form_pp

thisform.visible=.T.
sele(obse)

wait wind timeout 0.001

go n_record
thisform.grid.SetFocus()
********************
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / не работает без wait / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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