изменить вид курсора мыши

Андрей8989
Дата: 22.09.2012 15:45:53
в программе некоторое время происходит выборка данных. как на это время изменить тип курсора мыши и сделать песочные часики, чтобы пользователь понимал что что-то происходит
Jonny540
Дата: 22.09.2012 16:42:59
Андрей8989,

см. Thisform.MousePointer
asdor
Дата: 22.09.2012 18:24:36
Андрей8989,
Вы хоть разберитесь с текстом вашей формы. Там же есть это.
И Кристинка, то же пусть разберется)))
Dima T
Дата: 22.09.2012 20:44:18
wait 'Выборка данных ...' window nowait
* Тут сама выборка
wait clear
Станислав С...кий
Дата: 22.09.2012 22:23:24
Дополнил...
Dima T
wait 'Выборка данных ...' window nowait NOCLEAR
* Тут сама выборка
wait clear
Dag
Дата: 23.09.2012 08:41:15
Андрей8989
в программе некоторое время происходит выборка данных. как на это время изменить тип курсора мыши и сделать песочные часики, чтобы пользователь понимал что что-то происходит

А зачем менять тип курсора мыши? Можно на экран вывести термометр. Как-то так.

local lcTalk
lcTalk=set("Talk")
set Talk on
* Тут сама выборка
set Talk &lcTalk
Jonny540
Дата: 24.09.2012 08:38:27
asdor
Андрей8989,
Вы хоть разберитесь с текстом вашей формы. Там же есть это.
И Кристинка, тоже пусть разберется)))
А Вы уверены, что это два человека?
Кристинка89
IF EMPTY(ALLTRIM(curs1.smocod))
SELECT curs1
REPLACE smocod WITH smo.smocod
UPDATE pacient SET pacient.smocod=curs1.smocod from curs1 WHERE pacient.polis=curs1.polis
thisform.grid1.refresh()
ELSE
IF !EMPTY(ALLTRIM(curs1.smocod))
IF MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)=6 && YES (ДА)
SELECT curs1
REPLACE smocod WITH smo.smocod
UPDATE pacient SET pacient.smocod=curs1.smocod from curs1 WHERE pacient.polis=curs1.polis
thisform.grid1.refresh()
ELSE
MESSAGEBOX=2 && YES (ДА)
ENDIF
ENDIF
ENDIF
Андрей8989
IF thisform.check1.Value=0
SET FILTER TO ASCAN(arrSerPol,ALLTRIM(ser)+ALLTRIM(polis))>0
ELSE
IF thisform.check1.Value=1
SET FILTER TO ASCAN(arrSerPol,ALLTRIM(ser)+ALLTRIM(polis))>0 AND EMPTY(ALLTRIM(smocod))
ENDIF
ENDIF
Очень похоже, правда ведь?

К тому же вспомним первый пост Кристинка89:
Кристинка89
Всем привет! у меня есть таблица в которой хранятся записи о сотрудниках магазина основные поля в этой таблице "номер". Есть вторая таблица в которой хранятся записи о покупателях там основные поля поле1, поле2. Есть третья таблица в котором хранятся данные о товарах, предполагается что каждый сотрудник продает определенный товар. в третьей таблице основное поля поле1,поле2,номер. задача такая сотрудник вводит пароль и входит в программу при этом надо в грид вывести данные о покупателях, которых обслуживал этот сотрудник. логика такая: сотрудник вводит пароль и входит в программу при этом сначала из таблицы товары выбираются все записи у которых поле товар.номер=сотрудник.номер, затем выбираются покупатели у которых поля покупатель.поле1 и покупатель.поле2=товар.поле1 и товар.поле2 и эти записи вывести в грид. помогите реализовать все это на фокспро. я не понимаю как сделать такой поиск. очень нужно
Фиг с ней, с торговлей, в поликлинике добавили место второго программиста!!!
P.S. Если бы Андрей8989 следовал советам, то уже прочитал минимум две книги и не задавал бы таких вопросов.
Как-то даже и помогать желание пропало.
Андрей8989
Дата: 24.09.2012 09:20:15
Всем доброе утро. Это не один человек, тут раньше один программист работал но он ушел, и пришли Я(Андрей) и моя одногруппница Кристина. т.к. мы фокспро в университете проходили поверхностно теперь заново с нуля учим. Но нам дали программу изменить эту пока новый продукт не купят. поэтому спрашиваем тут. зачем же сразу нападать. Здесь на форуме нашел метод, чтобы изменять курсор мыши на часики песочные.

автор
Не могу понять.
Создал для формы метод, преобразования курсора из обычного в часики и обратно, чтобы обозначить выполнение каких либо задержек, при выполнении.

ThisForm.WaitApp(.t.)

..... перечень команд


ThisForm.WaitApp(.f.)

Часики не всегда появляются. Может курсор как- то Refresh ить надо?


Процедура WaitApp:

LPARAMETERS tlWaitMode
lnMousePointer = IIF(tlWaitMode, 11, 0)
THISFORM.SetAll('MousePointer', lnMousePointer)



Процедуру написал в методе LOAD у FORM1, а вызов метода в методе interactivechange у combo, но курсор не появляется когда при изменении значения в combo таблица обновляется. Делаю thisform.mousepointer=11 тоже не меняется. может я метод не там написал?
автор
LPARAMETERS tlWaitMode
lnMousePointer = IIF(tlWaitMode, 11, 0)
THISFORM.SetAll('MousePointer', lnMousePointer)
Андрей8989
Дата: 24.09.2012 09:46:15
получилось.
Станислав С...кий
Дата: 24.09.2012 10:02:25
Андрей8989
Это не один человек, тут раньше один программист работал но он ушел, и пришли Я(Андрей) и моя одногруппница Кристина. т.к. мы фокспро в университете проходили поверхностно теперь заново с нуля учим. Но нам дали программу изменить эту пока новый продукт не купят

Понятно... "Эффективные менеджеры" вместо одного нормального программиста взяли двух студентов... И остались в "профите" :-)

Судя по коду, в университете учили поверхностно не только Фоксу, но и вообще программированию... Ибо такого:
IF EMPTY(ALLTRIM(curs1.smocod))
...
ELSE
    IF !EMPTY(ALLTRIM(curs1.smocod))
....
    ENDIF
ENDIF 


даже вменяемый вчерашний школьник не напишет. А уж тем более не должен такое писать студент или выпускник(!) университета(!!!)....
Теперь непосредственно по вопросу.

1. Хелп еще никто не отменял. Вот что там написано:

автор
Событие InteractiveChange

Происходит, когда пользователь изменяет значение элемента управления, используя клавиатуру или мышь.

PROCEDURE Control.InteractiveChange

Применяется к: CheckBox | ComboBox | CommandGroup | EditBox | ListBox | OptionGroup | Spinner | TextBox

Событие происходит каждый раз, когда значение объекта изменяется в интерактивном режиме. Например, когда пользователь печатает текст в текстовом боксе, событие InteractiveChange срабатывает после каждого введенного символа.

То есть, Вы на каждом перемещении по комбобоксу инициируете выполнение некоторых команд. А если это будет запрос к удаленному серверу длительностью 5 минут? Офигенное ускорение работы пользователей Вы получите... :-)))
Если уж так хочется привязаться к объекту формы, то делайте вызов функции тогда, когда выбор пользователем уже сделан. Например, в событии Valid (проверка введенных данных)
2. Отладчиками (дебаггерами) Вас учили пользоваться? Вот запустите форму под отладчиком и смотрите почему Ваша функция не вызывается... Или отрабатывает не так, как нужно.... А то здешние телепаты в отпуск ушли...