Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите создать красоту / 8 сообщений из 8, страница 1 из 1
13.05.2004, 14:06
    #32516289
Alex Sheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать красоту
Как создать бегущую строку которая показывает выполнения процесса (ну как при инсталяции или копировании файлов)
...
Рейтинг: 0 / 0
13.05.2004, 14:16
    #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
13.05.2004, 15:45
    #32516540
Помогите создать красоту
Наверное, проще использовать ActiveX ProgressBar
...
Рейтинг: 0 / 0
13.05.2004, 15:56
    #32516570
Alex Sheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать красоту
а как его использовать?
никогда непробовал :(
...
Рейтинг: 0 / 0
13.05.2004, 16:03
    #32516595
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать красоту
а не скажете ли - что сложного в моем примере???
готовая функция запускается с параметрами - и переделывать ничего не надо... в чем проблема - то???
...
Рейтинг: 0 / 0
13.05.2004, 16:27
    #32516665
Alex Sheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать красоту
Спасибо за пример - работает класно.
Но всеравно интересно еще и прогресбар "расколупать"
...
Рейтинг: 0 / 0
13.05.2004, 17:42
    #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
13.05.2004, 18:00
    #32516914
Alex Sheff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать красоту
Огромнейшее спасибо.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите создать красоту / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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