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

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

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

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

Спасибо.

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

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

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

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

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

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

Код: 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
24.03.2005, 17:05
    #32979213
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
ну вообще если так круто замешано
так как вы хотите не получиться по моему мнению потому что моно вообще из грида не выйти так как не видно критерия выхода
моно легко попасть в ловушку с NODEFAULT или подобными вещами
вот как вариант моно наложить сверху еще один грид без заголовка и из одной строчки и с ней работать не выпускать из строки а когда пользовательпройдет строчку отпустить при этом создасться впечатления работы в строчке грида и редактирование будет идти через посредника
...
Рейтинг: 0 / 0
24.03.2005, 17:11
    #32979233
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
Да, что-то я с шейпами недокрутил (на клавиатуру реагирует), но общая идея понятна - создать обьект посредник с помощью которого производить ввод данных.
...
Рейтинг: 0 / 0
24.03.2005, 17:12
    #32979236
kms_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
Конечно, я не хочу кричать о том, что во всех любых вариантах все будет работать!!! Но тем не менее как мог протестировал, постарался испровать все, что можно и без проблем!
Дело в том, что под критерием выхода подразумевается любое действие пользователя кроме перемещения вдоль строки:
Код: 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
24.03.2005, 17:26
    #32979285
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
This.RowColChange%2#0
на первый взгляд моно тока разговор был про пятерку
...
Рейтинг: 0 / 0
24.03.2005, 17:29
    #32979299
kms_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
, так я ж в писал, что надыбал 8-ку и там все сделал, а учитывая, что help123, который и просил ему помочь, работает как раз на 8-ке, то я посчитал, что вопрос решен.
Что же касается 5-ки, то тут такого не сделаешь, надо извращаться, но спрашивается зачем, если указанную схему редактирования я никогда использовать не буду. вот и все!
...
Рейтинг: 0 / 0
25.03.2005, 03:04
    #32979804
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BeforeRowColChange как определить намерения пользователя?
Hi leaf!

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

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

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


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