powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемы обратной совместимости в VFP 9.0
6 сообщений из 6, страница 1 из 1
Проблемы обратной совместимости в VFP 9.0
    #35042704
svk-job
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Недавно столкнулся с проблемой корректной работы старого объекта @ .. GET в среде VFP 9.0. Суть проблемы заключается в следующем: есть старый код, написанный еще под FPD 2.6, успешно в свое время портированный (без редизайна) под VFP 6.0 и успешно работающий под VFP 6.0. Этот код успешно компилируется под VFP 9.0 и работает, однако обнаружил одну странную багу: если в окне присутствует кнопка, реализуемая через объект @ .. GET, и на эту кнопку наводится мышь, то вся информация в окне исчезает. Затем при движении мыши по этому окну появляются только кнопки (когда на место, где они располагались, наводится курсор мыши), надписи типа @ .. SAY не появляются вообще. Кусок проблемного кода ниже:

Код: 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.
*** Вызов
  IF  2  = SAY_PODTV("Вы желаете продолжить операцию удаления ?",;
                      "Выберите одну из опций ...",)

*** Определение функции
FUNCTION SAY_PODTV
PARAMETERS SOOB,PODTV,PODTV2
 PRIVATE ALL EXCEPT REG_ARHIV
 PUSH KEY CLEAR
 NPAR = PARAMETERS()
 IF NOT WEXIST("w_class")
   DEFINE WINDOW w_class ;
      FROM INT((SROW()- 5 )/ 2 )+ 4 ,INT((SCOL()- 70 )/ 2 ) ;
	    TO INT((SROW()- 5 )/ 2 )+ 4 + 5 + 1 ,INT((SCOL()- 70 )/ 2 )+ 69  ;
		FONT 'FixedSys',  10  ;
		STYLE 'N' ;
	    FLOAT ;
	    NOCLOSE ;
	    SHADOW ;
	    DOUBLE ;
	    COLOR SCHEME  7 
 ENDIF
 IF WVISIBLE("w_class")
   ACTIVATE WINDOW w_class SAME
 ELSE
   ACTIVATE WINDOW w_class NOSHOW
 ENDIF
 SET BELL ON
 SET BELL TO  512 , 2 
 ?? CHR( 7 )
 SET BELL OFF
 otkaz =  1 
 @  0 , 0  SAY PADC(SOOB,WCOLS("w_class")) COLOR GR+/R
 @  1 , 0  SAY PADC(PODTV,WCOLS("w_class")) COLOR W+/R
 IF NPAR =  3 
   @  2 , 0  SAY PADC(PODTV2,WCOLS("w_class")) COLOR W+/R
 ENDIF
 @  3 , 21  GET otkaz ;
          PICTURE "@*HT \<Нет;\<Да" ;
          SIZE  1 , 5 , 16  ;
          MESSAGE ''
 IF NOT WVISIBLE("w_class")
   ACTIVATE WINDOW w_class TOP
 ENDIF
 READ CYCLE MODAL
 RELEASE WINDOW w_class
 POP KEY
RETURN otkaz

Файл с изображением исходного окна и окна после нескольких перемещений мыши приложен.

Скажите, плиз, если кто-то уже столкнулся с этим, в чем корень проблемы и как с этим бороться? Редизайн программы в части пользовательского интерфейса будет выполнен, но не скоро, увы...
...
Рейтинг: 0 / 0
Проблемы обратной совместимости в VFP 9.0
    #35042723
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svk-job... код, написанный еще под FPD 2.6, успешно в свое время портированный (без редизайна) под VFP 6.0 и успешно работающий под VFP 6.0. Этот код успешно компилируется под VFP 9.0 и работает... А зачем на 9 переходить с 6-ки если FPDшный код никто переписывать не собирается?

Твоя функция SAY_PODTV - это MessageBox() переписать дело одной минуты.
...
Рейтинг: 0 / 0
Проблемы обратной совместимости в VFP 9.0
    #35042729
svk-job
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T svk-job... код, написанный еще под FPD 2.6, успешно в свое время портированный (без редизайна) под VFP 6.0 и успешно работающий под VFP 6.0. Этот код успешно компилируется под VFP 9.0 и работает... А зачем на 9 переходить с 6-ки если FPDшный код никто переписывать не собирается?

Твоя функция SAY_PODTV - это MessageBox() переписать дело одной минуты.

Еще и другие проги разрабатываются, вот и решено было подтащить все к одной версии, да и девелоперам вроде как удобнее вести работу в одной, последней версии VFP.
Касательно MessageBox(): приведенный пример - малая толика проблемных мест, есть масса специфичных окон, которые не заменишь стандартными диалогами, увы...
...
Рейтинг: 0 / 0
Проблемы обратной совместимости в VFP 9.0
    #35042747
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, тогда жди пока ответит тот кто решал эту довольно специфичную проблему
...
Рейтинг: 0 / 0
Проблемы обратной совместимости в VFP 9.0
    #35042750
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если проблема коткретно в @ get - можно попробовать замеить на @ prompt + menu to.
Дополнительно я бы попробовал убрать ?? chr(7) или проверить и установить SET TALK OFF + перед выводом SAY/GET clear окно + не дополнять пробелами строку по ширине окна + окно определить дополнительно как объект (WINDOW ... OBJECT) + убрать COLOR SCHEME 7 + попробовать изменить опции READ + попробовать SET MOUSE OFF. Может что-нибудь поможет. Проверить не могу - нет 9-ки.
...
Рейтинг: 0 / 0
Проблемы обратной совместимости в VFP 9.0
    #35044485
Гулин Федор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверил у себя вроде не вылазит
у меня vfp9 без SP
в таких случаюях надо указывать Sp (0,1,2)

ps кстати у мнея была похожая функция yesno('fgjgf~j~')
в которой была раскраска строк - поэтому долго не переходил на винд. формы
пока не нарисовал класс обрабатывающий это дело - но глюков не было

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


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