powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фиксация курсора на строке в GRIDe
24 сообщений из 24, страница 1 из 1
Фиксация курсора на строке в GRIDe
    #33044732
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, во-первых, спасибо за разбор полетов по кодировке Excel-DBF.

Проблема новая:

Нужно осуществить обычный поиск в Гриде. Есть кнопочка с поиском типа Locate или Find. Физически после этого номер текуще записи меняется и информация находится. НО! В Гриде ничего не меняется и курсор не встает на эту запись. Пробовал даже менять для этой записи цветовую гамму в Гриде - получается, но запись все равно приходится находить, листая Грид, как дальтоник.

Как бы это сделать - чтобы курсор вставал на свое место?
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044737
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если SetFocus() попробовать ?
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044748
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал в INIT так:

GO nrec

thisform.Grid1.SetFocus


не сработало.



А с SetFocus() не пойму, как использовать...
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044752
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему же в Init ?
Это нужно в метод Click ставить твоей кнопки, по которой осуществляется поиск.

Код: plaintext
1.
2.
3.
4.
Procedure Click
....
GO nrec
thisform.Grid1.SetFocus
EndProc
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044757
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Попробую.
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044788
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все равно не выходит.

Может, по тексту проще ошибку найти:

------------------------------------------------------------------------

В INITe:

ogrd = THISFORM.grid1

ogrd.SETALL("dynamicforecolor", "iif(substr(kart.oe,1,2)='OE', rgb(0,102,204), rgb(0,0,0))", "Column")
ogrd.SETALL("dynamicbackcolor", "iif(substr(kart.oe,1,2)='OE', rgb(206,234,247), rgb(255,255,255))", "Column")

&& ogrd.SETALL("dynamicFontBold", "iif(SUBSTR(kart.oe,1,2)='OE' .and. stck>0, .t., .f.)", "Column")

ogrd.SETALL("dynamicforecolor", "iif(RECNO()=Nrec, rgb(0,0,255), rgb(0,0,0))", "Column")
ogrd.SETALL("dynamicFontBold", "iif(RECNO()=Nrec, .t., .f.)", "Column")
ogrd.SETALL("dynamicFontItalic", "iif(RECNO()=Nrec, .t., .f.)", "Column")


ogrd.SETALL("dynamicFontStrikethru", "iif(stck<=0, .t., .f.)", "Column")


ThisForm.nRec = Recno()
thisform.Grid1.SetFocus
this.setfocus



THISFORM.grid1.REFRESH()


ogrd.REFRESH




Свойство nRec заведено.


В AfterRowColChange –

LPARAMETERS nColIndex
Thisform.nRec = Recno()
This.Refresh()


При вставлении в Клик кнопки текста


....
GO nrec
thisform.Grid1.SetFocus

выдается сообщение: Неизвестный элемент грид



А вообще, мне кажется, что я уже столько лишнего наворотил, что комп скоро задымит…
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044830
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Я бы посоветовал свойство nRec перенести из THISFORM в сам GRID
2. Если уж свойство nRec в форме, то надо и ссылаться на него, как на свойство формы: в "SETALL("dynamicFontItalic", "iif(RECNO()=THISFORM.Nrec, .t., .f.)", "Column")"
3. В INIT GRID не имеет смысла вставлять SetFocus, так как INIT формы будет самый последний INIT и там имеет смысл вызывать SetFocus
С уважением, Алексей
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044848
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, уже в пути!
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33044983
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хоть убейте, не получается. Ну, да это, наверно, последствие Первомая.. Будем разбираться.
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33045063
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты НАЙТИ что-нибудь хочешь или просто грид РАСКРАСИТЬ?
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33045088
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу: 1-найти строку (это получается по Локейт) и
2- что бы в Гриде позиция курсора устанавливалась на этой строке (это не получается)
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33045160
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты, вообще-то в курсе, что существует такое понятие, как "рабочая область"?

Можно сказать, что "рабочая область" - это хендл, дискриптор или идентификатор таблицы. При этом одна таблица может быть открыта в нескольких рабочих областях, но в одной рабочей области не может быть более одной таблицы.

Так вот, если таблица открыта в нескольких рабочих областях, то перемещение указателя записи в одной из них никак не повлияет на перемещение указателя записи в другой.

В качестве идентификатора рабочих областей может быть использована символьная строка, называемая "алиас"

ГДЕ ты осуществляешь поиск записи (LOCATE, SEEK, GO)? В какой рабочей области?

ЧТО является источником данных GRID? Какая рабочая область?

Если все это происходит в одной рабочей области и в одной DataSession, то после перехода на нужную запись достаточно просто передать фокус в Grid. Все!

Если это не работает, то либо ты ПОСЛЕ поиска делаешь переход на другую запись, либо речь вообще идет о разных таблицах (рабочих областях)
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33045376
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот, если таблица открыта в нескольких рабочих областях, то перемещение указателя записи в одной из них никак не повлияет на перемещение указателя записи в другой.

---------------------
Таблица открыта в одной области.




ГДЕ ты осуществляешь поиск записи (LOCATE, SEEK, GO)? В какой рабочей области?

----------------------------------
В этой же области




ЧТО является источником данных GRID? Какая рабочая область?
-----------------------
Эта же область.



Если все это происходит в одной рабочей области и в одной DataSession, то после перехода на нужную запись достаточно просто передать фокус в Grid. Все!

Если это не работает, то либо ты ПОСЛЕ поиска делаешь переход на другую запись, либо речь вообще идет о разных таблицах (рабочих областях)

----------------------------
Нет, перехода нет. Таблица одна.
Причем, нужная запись выделяется жирным курсивом, но курсор стоит на старом месте. При этом, если я щелкну мышкой в любом месте грида, сначала на долю секунды мелькнет курсор на выделеннй строке, а потом установится в месте щелчка.
Такое ощущение, что не хватает какой-то ерунды. И, кстати, чтобы не сглупить еще раз - передача фокуса в грид - это четко - как?
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33045411
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyz
Такое ощущение, что не хватает какой-то ерунды. И, кстати, чтобы не сглупить еще раз - передача фокуса в грид - это четко - как?
Я делаю так:
Код: plaintext
1.
2.
grid1.Refresh
grid1.column1.Text1.SetFocus()
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33046873
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще возможен вариант установки на определенный ряд и в определенную ячейку типа:

Код: plaintext
THISFORM.grid1.ACTIVATECELL(m.lnrow, 6 )

где

Код: plaintext
m.lnrow=THISFORM.grid1.ACTIVEROW

а 6, например, номер поля в Grid...

Доступно с версии VFP 8.00 и выше...
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33047296
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все происходит в одной области, с одной таблицей!
Но что интересно - нужная найденная позиция становиться жирным шрифтом и если я прокручиваю колесо мышки немного, курсор встает на нужное место, подсвечивая ее и делая активной. Так что в принципе проблема решилась, но как-то....
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33047393
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мой вариант не пробовали? Вполне рабочий - я его использую для поиска записи при сканировании деталей в заказе...
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33047556
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey ChА мой вариант не пробовали? Вполне рабочий - я его использую для поиска записи при сканировании деталей в заказе...
А что для VFP 6 посоветуешь? Если это с 8 версии...
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33048180
Aries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
LOCATE FOR Expr
IF FOUND()
  THIS.oGrid.Refresh()
  THIS.oGrid.Column1.SetFocus()
endIF
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33048376
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akel А что для VFP 6 посоветуешь? Если это с 8 версии...
Эволюционный переход на 8 версию А еще лучше на 9, тем более что с 6 версии надо не много кода переписывать...

Good luck!
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33049369
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Sergey!

> Эволюционный переход на 8 версию А еще лучше на 9, тем более что с 6 версии надо не много кода переписывать...

Переписывать немного - выкидывать много, а это всегда страшно :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33049770
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KorolyovПереписывать немного - выкидывать много, а это всегда страшно :)
Я уже пообжигался с этим делом много - каждая новая версия FoxPro содержит свою изюминку, которая становится очень быстро незаменимой... Но что-то я пока ни как не могу создать файл инсталляции для runtime library для всех пользователей (почему-то для каждого пользователя надо запускать отдельно и если делать на всех то нужны права админа на локальный компьютер)... как создам - так сразу все перепишу с 8 на 9
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33049905
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если версия 8 и выше, то надо еще свойство HighLightStyle = 0, иначе твои Dynamic... свойства для выделенной строки неправильно работать будут.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Фиксация курсора на строке в GRIDe
    #33049925
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch Igor KorolyovПереписывать немного - выкидывать много, а это всегда страшно :)
Я уже пообжигался с этим делом много - каждая новая версия FoxPro содержит свою изюминку, которая становится очень быстро незаменимой... Но что-то я пока ни как не могу создать файл инсталляции для runtime library для всех пользователей (почему-то для каждого пользователя надо запускать отдельно и если делать на всех то нужны права админа на локальный компьютер)... как создам - так сразу все перепишу с 8 на 9

Если используешь InstallShield (у меня InstallShield Express 4.0), то там есть опция, которая позволяет дать пользователю выбрать вариант установки: инсталлируемая программа будет доступна для всех пользователей или только для того, кто инсталлирует. Следовательно, инсталлировать должен администратор, а пользоваться могут все.
С уважением, Алексей.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фиксация курсора на строке в GRIDe
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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