powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите создать красоту
8 сообщений из 8, страница 1 из 1
Помогите создать красоту
    #32516289
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как создать бегущую строку которая показывает выполнения процесса (ну как при инсталяции или копировании файлов)
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516316
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*!* *Used in external procedure
*!* =thermometr(0,1000,.T.,.F.,'Title of window','Thermometr message')
*!* FOR I = 1 TO 1000
*!* =thermometr(I,1000)
*!* ENDFOR
*!* =thermometr(0,1000,.F.,.T.)
procedure thermometr
PARAMETERS nTmpCount,nRecCount,lOpenScreen,lCloseScreen,cThermTitle,cThermMsg

#DEFINE C_THERMCLASS 'thermometer' && single progress bar

IF TYPE('nTmpCount') != 'N' .AND. TYPE('nRecCount') != 'N'
=MESSAGEBOX('Не заданы параметры линейки',0+16,'Ошибка')
RETURN
ENDIF

DO CASE
CASE lOpenScreen = .T.
IF TYPE('cThermTitle') = 'L'
cThermTitle = ''
ENDIF
IF TYPE('cThermMsg') = 'L'
cThermMsg = 'Пожалуйста, подождите!'
ENDIF

=AddClassLib()

PUBLIC gOTherm

gOTherm = CREATEOBJ(C_THERMCLASS,cThermTitle, cThermMsg)
*!* parameters cWinTitle, cTitle, iBasis, iInterval

gOTherm.Show()
CASE lCloseScreen = .T.
gOTherm.Complete()
RELEASE gOTherm
OTHERWISE
gOTherm.Update(nTmpCount/nRecCount * 100)
ENDCASE

*******************************************
FUNCTION AddClassLib

#DEFINE C_MAINCLASSLIB "thermometr.vcx"

IF ATC(C_MAINCLASSLIB,SET("CLASSLIB")) = 0

IF !FILE("thermometr.vcx")
find_file = GETFILE("VCX")
IF LEN(ALLTRIM(find_file)) = 0
RETURN
ELSE
Name_File = ALLTRIM(find_file)
ENDIF
ELSE
Name_File = "thermometr.vcx"
ENDIF

IF ATC(C_MAINCLASSLIB,Name_File)#0
SET CLASS TO &Name_File ADDITIVE
ELSE
RETURN .F.
ENDIF

ENDIF

ENDFUNC
*******************************

а файлы thermometr.vct и thermometr.vcx впихнутл во вложение....
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516540
Наверное, проще использовать ActiveX ProgressBar
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516570
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как его использовать?
никогда непробовал :(
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516595
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не скажете ли - что сложного в моем примере???
готовая функция запускается с параметрами - и переделывать ничего не надо... в чем проблема - то???
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516665
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за пример - работает класно.
Но всеравно интересно еще и прогресбар "расколупать"
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516866
Про ProgressBar.
1. Сначала нужно разместить его на форме. Есть масса способов, приведу один. Щелкаете на инструменте ActiveX Control (OLEControl) конструктора форм, затем выделяете мышью место на форме, куда вы хотите вставить новый контрол.
2. Через нексколько секунд фокс выведет диалоговое окно для выбора ActiveX контрола. Выберите из списка Microsoft ProgressBar Control (лучше SP6). Если в списке его нет, то проверьте, установлен ли флажок Insert Control в этом окне.
3. ProgressBar появится на форме в указанном месте. Выделяете его и открываете окно свойств (Properties). Здесь вы можете переименовать этот контрол (если на форме нет других ActiveX, то по умолчанию он имеет имя OleControl1), определить ориентацию (свойство Orientation - верикальная или горизонтальная шкала) и стиль (свойство Scrolling).
4. Далее в методе, в котором выполняется наблюдаемый процесс, пишите примерно следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select MyTable
go top
thisform.OleControl1.value =  0 
thisform.OleControl.max = reccount()
scan
   thisform.OleControl1.value = recno()
   *** здесь выполняемый код ***
endscan
В процессе сканирования таблицы будете наблюдать процесс.

Для более подробного знакомства щёлкните по контролу правой кнопкой мыши и в появившемся меню выберите HELP (правда, для этого у вас должна быть установлена MSDN).

Успехов!
...
Рейтинг: 0 / 0
Помогите создать красоту
    #32516914
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромнейшее спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите создать красоту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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