powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Чисто Риторический вопрос к профессионалам ....
7 сообщений из 7, страница 1 из 1
Чисто Риторический вопрос к профессионалам ....
    #32564772
Lipton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вот такая штука,

хочу использовать у себя в проектах ActiveX Control,
и почему то он на некоторых пишет мне вот такое...

Класс не зарегистрирован ....

Как с этим бороться , подскажите пожалуста...


и еще вот есть в ActivX Control такой ProgressBar

так вот он работает при вот таком коде замечательно..
select table1
go top
thisform.Olecontrol1.value = 0
thisform.Olecontrol1.max = reccount()
scan
thisform.OleControl1.value = recno()
*****
endscan


а если я использую такой код

select * from table1 into cursor (или into table)

то как тогда быть, как заставить его работать при таком коде ???
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32564811
to Lipton

Сообщение "Класс не зарегистрирован" появляется, когда вы переносите свою программу на другой компьютер, где VFP не установлен? Тогда надо перенести на этот компьютер и файлы с типом .OCX, в которых находятся ActiveX. Например, такие ActiveX, как ProgressBar, TreeView, ListView, ImageList содержатся в файле ComCtl32.ocx, расположенном в папке Windows/Sustem для Win9x или ../System32 для XP.

Для регистрации выполните команду:

RegSvr32 ComCtl32.ocx

По второй части вопроса - увы!.. При выполнении запроса SELECT..SQL нет никакой информации, чем он занимается, пока запрос не будет выполнен.
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32564816
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveX - это внешние, по отношению к FoxPro объекты. Чтобы с ними работать они должны быть зарегистрированы в ОС. Как правило, хватает регистрации стандарным RegSVR32.exe, однако в некоторых случаях требуется еще специальный регистрационный ключ.

В связи с этим, лучше при переносе программы создавать дистрибутив, который и выполнит регистрацию всех используемых ActiveX, если это необходимо.

FoxPro выполняет все команды в "синхронном" режиме. Т.е. пока не завершился один процесс другой не может быть выполнен.

Применительно к данному примеру, пока не завершилась команда Select-SQL никакой другой процесс не может вмешаться в его работу.

Используй штатный ProgressBar:

SET TALK ON
SELECT ... FROM ...
SET TALK OFF
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32564831
Lipton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное Спасибо вам ребята...
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32565003
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По 2 вопросу тоже можно изловчиться :)
(работающего примера нет но когда - то так делал)

Пускай у тебя есть класс ProgressBar, у которого имеется метод Update (piRecno as Integer) , который и выполняет всю работу по визуальному представлению прогресса операции.

Пишеш пользовательскую функцию,



Код: plaintext
1.
2.
3.
4.
5.
6.
Function UpdateProgress
lparam pcAlias, poProgressBar
if vartype(poProgressBar) = "O" and ! IsNull (poProgressBar)
poProgressBar.Update (Recno (pcAlias))
endif
return True
endfunc

И добавляеш ее в Select :

Код: plaintext
1.
2.
Select Field1, Field2 from table1 ;
where SomeCondition AND UpdateProgress ("table1", goProgressBar)

здесь goProgressBar - ссылка на объект
Суть в том, что выполняя Select, Fox делает проход по записям таблицы проверяя соответствие условию WHERE.
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32567156
kdanylo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, с Recno () конечно преувеличил, но кое - что получилось. Есть желание - смотрите пример.
...
Рейтинг: 0 / 0
Чисто Риторический вопрос к профессионалам ....
    #32567584
oleg_km
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Организовать прогресс-бар для SELECT-SQL сложно по двум причинам:
1) часто невозможно оценить к-во строк, которое будет перебирать команда SELECT-SQL
2) соответственно внутри SELECT-SQL не к чему привязаться (RECNO('Алиас') в команде SELECT-SQL не работает)

Конкретный пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
PRIVATE nCount
SELECT a.name, b.owner ;
    FROM a LEFT JOIN b ON a.id = b.id ;
    WHERE fProgress() ;
    INTO CURSOR c
? nCount

FUNCTION fProgress
nCount - nCount +  1 
RETURN .T.

В таблице a - 273 строки
в таблице b - 3201 строка

в результирующей таблице получается 273 строки
а nCount - 524

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


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