Модуль dbDlg


Модуль dbDlg download содержит ряд вспомогательных функций:

Указатель
PBOPEN- открывает окно указателя.
PBPOSITION- устанавливает текущую позицию и диапазон.
PBTEXT- устанавливает текст указателя.
PBCLOSE- закрывает окно указателя.

Анимированное окно ожидания
WDOPEN- открывает окно.
WDTEXT- устанавливает текст окна.
WDCLOSE- закрывает окно.

Вспомогательные функции
WRITE_MONEY- деньги прописью.
CALC_TRANSLATE- перевод скобочной арифметики в стековую нотацию.
TEXT_ARANGE- автоформатирование текста.
VOLAPUK_TRANSLATE- перевод текста из кодировки Волапюк.

Оконные объекты
EDITDATE- окно для редактирования даты.

Список функций

PBOPEN

Назначение.Открывает окно указателя.

PBOPEN( LONG<hWnd>, STRING<sTitle> ) LONG<hPB>

hWnd- описатель родительского окна.
sTitle- загаловок окна.

Описание.При вызове функции отображается окно вида:

в котором отображается указатель. При этом происходит деактивизация родительского окна. Функция возвращает описатель созданного окна. Положение указателя задается функцией PBPOSITION.

Пример:

hPB=DBDLG!PBOPEN($HWND,"Поиск")
FOR i=1 TO 100
 IF DBDLG!PBPOSITION( hPB ) THEN EXIT
 ...
NEXT
DBDLG!PBCLOSE( hPB )

PBPOSITION

Назначение.Устанавливает текущую позицию и диапазон.

PBPOSITION( LONG<hPB>, LONG<Pos>, LONG<Range> ) BOOL

hPB - описатель окна указателя.
Pos - позиция указателя.
Range - диапазон указателя.

Описание.Функция устанавливает позицию и диапазон указаетеля. Если до вызова функции была нажата кнопка СТОП, то функция возвращает истину, иначе ложь.

PBTEXT

Назначение.Устанавливает заголовок окна указателя.

DBDLG!PBTEXT( LONG<hPB>, STRING<sTitle> )

hPB - описатель окна указателя.
sTitle- загаловок окна.

PBCLOSE

Назначение.Закрывает окно указателя.

PBCLOSE( LONG<hPB> )

hPB - описатель окна указателя.

WDOPEN

Назначение.Открывает окно.

WDOPEN( LONG<hWnd>, STRING<sAviFile> ) LONG<hWD>

hWnd- описатель родительского окна.
sAviFile- имя avi-файла.

Описание.При вызове функции отображается окно вида:

в котором проигрывается avi-файл. При этом происходит деактивизация родительского окна. Функция возвращает описатель созданного окна.

Пример:

hWD=DBDLG!WDOPEN( $HWND, "Findfile.avi" )
FOR i=1 TO 100
 IF DBDLG!WDTEXT( hWD, "Состояние:"+STR(i) ) THEN EXIT
 DELAY 100
NEXT
DBDLG!WDCLOSE( hWD )

WDTEXT

Назначение.Устанавливает текст окна.

WDTEXT( LONG<hWD>, STRING<sTitle> ) BOOL

hWD - описатель окна.
sTitle - текст окна.

Описание.Функция устанавливает текст окна. Если до вызова функции была нажата кнопка СТОП, то функция возвращает истину, иначе ложь.

WDCLOSE

Назначение.Закрывает окно.

WDCLOSE( LONG<hWD> )

hWD - описатель окна.

WRITE_MONEY

Назначение.Функция возвращает сумму прописью.

WRITE_MONEY( STRING<Rub> ) VARIABLE

Rub - число ввиде строки.

Описание.Функция возвращает сумму прописью принимая на входе число. Во избежания переполнения число передается ввиде строки.

Пример.

Res=DBDLG!WRITE_MONEY("1111.11")
Результат:Одна тысяча сто одиннадцать рублей 11 копеек

CALC_TRANSLATE

Назначение.Перевод скобочной арифметики в стековую нотацию.

CALC_TRANSLATE( STRING<Formula>, STRING<Names> ) VARIABLE

Formula - текст формулы.
Names - список разрешенных имен переменных через разделитель |.

Пример.

sFormula="SUMMA|SUM2|SUM1|SUM0|KURS|NDS|NC1|NC2|NT1|NT2"
Formula= GET(104)
IF LEN(Formula)=0 GOTO ERR01
Formula= DBDLG!CALC_TRANSLATE( Formula, sFormula )
IF LEN(Formula)=0 THEN END 0

TEXT_ARANGE

Назначение.Автоформатирование текста.

TEXT_ARANGE( STRING<Text>, LONG<Len> ) VARIABLE

Text - текст.
Len - допустимая длинна.

Описание.Функция разбивает текст на строки допустимой длинны используя в качестве точек вставки дополнительных LF пробелы между словами текста.

Пример.

Res=DBDLG!TEXT_ARANGE( "Данный текст будет разбит на строки", 10 )

Результат:
Данный
текст
будет
разбит на
строки

VOLAPUK_TRANSLATE

Назначение.Перевод текста из кодировки Волапюк.

VOLAPUK_TRANSLATE( STRING<Text> ) VARIABLE

Text - текст.

EDITDATE

Назначение.Окно для редактирования даты.

Описание.Окно данного класса следует добавить в ресурс окна диалога, как.
CONTROL "00.00.00", 101, "EDITDATE", 0 | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_BORDER| WS_TABSTOP, 51, 6, 40, 12
Для регистрации класса EDITDATE в код следует добавить оператор DEF DBDLG. Для инициализации следует передать желаемую дату PUT 101,DATE(DATE(-1)). Если нам необходим год со столетием, то следует это указать т.о. PUT 101,DATE(DATE(-1),"dd.MM.yyyy") или PUT 101,"00.00.0000"). Чтение результата осуществляется функцией Date=DATE(GET(101)). Если фокус ввода находится в окне, то нажатие клавишы ПРОБЕЛ приводит к установки текущей даты, а нажатие клавишы DELETE сбросу даты в 0.

Пример.

DEF DBDLG
...
END

EDIT11:
 PUT 101,DATE(Date,"dd.MM.yyyy")
END

EDIT21:
 Date=DATE(GET(101))
END

Hosted by uCoz