powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / BeforeRowColChange как определить намерения пользователя?
25 сообщений из 28, страница 1 из 2
BeforeRowColChange как определить намерения пользователя?
    #32976892
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суток!

Может кто и сможет помочь.
В гриде, в методе BeforeRowColChange необходимо получить номер строки на которую произойдет перемещение курсора. Возможно ли это?

Спасибо.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32977245
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kms_Доброго всем времени суток!

Может кто и сможет помочь.
В гриде, в методе BeforeRowColChange необходимо получить номер строки на которую произойдет перемещение курсора. Возможно ли это?

Спасибо.

А что должно проистекать после того, как мы узнаем на какую строку собирается переместиться курсор ? Не пустить курсор на определенную строку с определенным значением поля ? Опишите задачу подробнее. Лично мне кажется тут одним BeforeRowColChange не обойтись.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32977261
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Диченко, спасибо, но вопрос уже решен. Это проблемка была пораждена в топике "Grid - не дать пользователю перейти на другую строку ... " и заключалась в том, что у меня в Vfp 5.0 в гриде нет свойства RowColChange, соотвественно, я и пытался выкрутиться другими способами. Но все разрешилось благополучно, если интересно, то можете глянуть названный топик.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32977431
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi kms_!

> В гриде, в методе BeforeRowColChange необходимо получить номер строки на которую произойдет перемещение курсора. Возможно ли это?

Напрямую - нет. Перемещение может и не произойти в общем случае :)
Но если охота поизвращаться - анализируй позицию последнего клика, последние нажатые клавиши и пытайся определить по какой строке кликнули или какой кнопкой инициировали переход %)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32977615
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Igor Korolyov.

Об извращениях я уже думал, когда пытался решить проблему для help123 в 5-ке (там нет свойства RowColChange), но посчитал, что проблемка не стоит таких извратов.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979067
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а activecolumn в пятерке есть ?
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979079
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ActiveColumn есть, но данное свойство возвращает номер текущего столбца, и никак не дает информации о том переместиться ли пользователь на другую строку или просто в другой столбец текущей строки.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979128
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу всё правильно это beforerowcolchange а afterrowcolchange что возвращает ?
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979133
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дальше продолжать ???
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979135
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это кстати ответ на ваш предыдущий пост
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979139
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
угу-то, угу! да вот AfterRocColChange уже поздно.
Дело в том, что начало этого топика, то есть его первопричина находтся в топике: " Grid - не дать пользователю перейти на другую строку ... " Это я уже ранее писал, так вот если вы туда загляните, то поймете, для чего мне это все нужно было.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979140
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да есть в 5-ке ActiveRow, смотри лучше.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979142
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, люди вы чего? Такое ощещение, что вы читаете только последние сообщения! Не надо на меня накидываться толпой - просто ознакомтесь с проблемкой, пожалуйста.
Нисколько не хочу вас обидеть своим постом, но все же...
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979147
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там еще такое интересное свойство есть как activerow
неужели ничего так и не получаеться
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979159
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если return .f. в afterrowcolchange ничего не измениться
ну или что-то подобное
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979162
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kms_

Извините, если обидел.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979163
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребяты, давайте жить дружно! Я вас очень прошу загляните, пож., в названный мной топик, там все есть!
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979179
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist, вы меня нискольно не обидели! И, честно говоря, такая оживленная дискуссия гораздо более приятна, чем полное отсутствие внимания к топику со стороны посетителей форума!
Так что я даже благодарен!
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979200
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже не знаю, что предложить, ну например такая идея решения

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
PUBLIC oForm

oForm = CREATEOBJECT('GridShape')
oForm.show( 1 )

DEFINE CLASS gridshape AS form


	DoCreate = .T.
	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT grid1 AS grid WITH ;
		Height =  193 , ;
		Left =  12 , ;
		Top =  48 , ;
		Width =  349 , ;
		Name = "Grid1"


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  12 , ;
		Left =  24 , ;
		Height =  25 , ;
		Width =  61 , ;
		Caption = "Edit", ;
		Name = "Command1"


	ADD OBJECT command2 AS commandbutton WITH ;
		Top =  12 , ;
		Left =  120 , ;
		Height =  25 , ;
		Width =  61 , ;
		Caption = "Cancel", ;
		Name = "Command2"


	ADD OBJECT shape1 AS shape WITH ;
		Top =  48 , ;
		Left =  12 , ;
		Height =  84 , ;
		Width =  361 , ;
		BackStyle =  0 , ;
		BorderStyle =  0 , ;
		Name = "Shape1"


	ADD OBJECT shape2 AS shape WITH ;
		Top =  156 , ;
		Left =  2 , ;
		Height =  84 , ;
		Width =  370 , ;
		BackStyle =  0 , ;
		BorderStyle =  0 , ;
		Name = "Shape2"


	PROCEDURE Load
		CREATE CURSOR test (cChar c( 10 ))

		FOR i =  1  TO  10  
			INSERT INTO test (cChar) VALUES (TRANSFORM(i))
		ENDFOR 

		GO TOP IN test
	ENDPROC


	PROCEDURE command1.Click
		thisform.shape1.ZOrder( 0 )
		thisform.shape2.ZOrder( 0 )
	ENDPROC


	PROCEDURE command2.Click
		thisform.shape1.ZOrder( 1 )
		thisform.shape2.ZOrder( 1 )
	ENDPROC


	PROCEDURE shape1.Init
		this.ZOrder( 1 )
	ENDPROC


	PROCEDURE shape2.Init
		this.ZOrder( 1 )
	ENDPROC


ENDDEFINE

Если не двигать записи, то после нажатия кнопки Edit, доступна только 5-ая запись.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979213
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вообще если так круто замешано
так как вы хотите не получиться по моему мнению потому что моно вообще из грида не выйти так как не видно критерия выхода
моно легко попасть в ловушку с NODEFAULT или подобными вещами
вот как вариант моно наложить сверху еще один грид без заголовка и из одной строчки и с ней работать не выпускать из строки а когда пользовательпройдет строчку отпустить при этом создасться впечатления работы в строчке грида и редактирование будет идти через посредника
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979233
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, что-то я с шейпами недокрутил (на клавиатуру реагирует), но общая идея понятна - создать обьект посредник с помощью которого производить ввод данных.
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979236
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, я не хочу кричать о том, что во всех любых вариантах все будет работать!!! Но тем не менее как мог протестировал, постарался испровать все, что можно и без проблем!
Дело в том, что под критерием выхода подразумевается любое действие пользователя кроме перемещения вдоль строки:
Код: plaintext
This.RowColChange<> 2 
и все работает - можете пробовать. Один грид, одна кнопка и две процедуры:

В методе Click кнопки пишите:
Код: plaintext
1.
2.
ThisForm.mGrid1.Tag=AllTrim(Str(Recno('A1')))
ThisForm.mGrid1.ReadOnly=.f.
ThisForm.mGrid1.SetFocus


метод грида BeforeColRowChange

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
IF !Empty(This.Tag)
   IF This.RowColChange<> 2 
      cMess='Вы находитесь в режиме редактирования строки, '
      cMess=cMess+'смещение на другую строчку означает выход из режима редактирования.'+chr( 13 )
      cMess=cMess+'Желаете завершить редактирование записи?'
      IF MessageBox(cMess, 4 + 32 + 0 ,'Внимание!')= 6 
         This.Tag=''
         This.ReadOnly=.t.
      ELSE
         NOdefault
      EndIF
   EndIF
EndIF
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979285
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
This.RowColChange%2#0
на первый взгляд моно тока разговор был про пятерку
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979299
kms_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
, так я ж в писал, что надыбал 8-ку и там все сделал, а учитывая, что help123, который и просил ему помочь, работает как раз на 8-ке, то я посчитал, что вопрос решен.
Что же касается 5-ки, то тут такого не сделаешь, надо извращаться, но спрашивается зачем, если указанную схему редактирования я никогда использовать не буду. вот и все!
...
Рейтинг: 0 / 0
BeforeRowColChange как определить намерения пользователя?
    #32979804
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi leaf!

> потому что моно вообще из грида не выйти так как не видно критерия выхода

Даже если он и виден, всёравно такой интерфейс очень недружественен, о чём я и писал ещё в прошлой теме. Это близко по духу к так любимым некоторыми товарищами RETURN 0 в Valid - типа хоть ты расшибись, а я не выпущу тебя из текстбокса пока не введёшь то что нужно... IMHO такое стоит избегать всеми возможными способами.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / BeforeRowColChange как определить намерения пользователя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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