Функции. Операторы Содержание.

НаименованиеНазначение
BEEPВыдает звуковой сигнал
BREAKУстанавливает флаг прекращения выполнения программы
CHAINОбьединение части программы с ранее загруженной.
COMMANDОпределение команды для события
CONTINUEПродолжение цикла см. FOR
DEFОпределение функции внешнего DLL-модуля.
DELAYЗадержка
DIALOGСоздает безмодальный диалог в окне
DIMОпределение массива
DRAWОтображиение изображения
ENDЗавершение выполнения программы
ERASEУдаление массива или объекта
EVENTОпределение события
EXITВыход из цикла см. FOR
FOR/NEXTВыполнение последовательности инструкций в цикле
FREEОчистка переменных.
GOSUB/RETURNПереход к подпрограмме и возврат из нее
GOTOПереход к заданной позиции программы
HELPВызов справочника
IFВетвление программы в зависимости от условия
INPUTОтображение окна диалога
KEYУстанавливает текущие клавиатурные акселераторы
LETПрисвоение переменной или массиву значения
LOAD/UNLOADЗагрузка/выгрузка модуля
LOOP/NEXTВыполнение последовательности инструкций в цикле
MIDЗамена подстроки другой подстрокой
MENUУстанавливает текущее меню для окна программы
ON/GOTO,GOSUBПередача управления в зависимости от значения выражения
PLAYДоступ к MCI сервису Windows
PUTУстанавливает значение элемента окна диалога
QUITЗавершение dBasic.
REDIMИзменение размерности массива
REMВставка в программу комментария
RUNЗапускает на выполнение dbasic программу
SETСоздание объекта
STOPПриостонавливает выполнение программы
TRON/TROFFВключает и выключает режим трассировки программы
TUNEУстановка свойств элемента окна диалога
WRITEПомещение текстовой информации в буфер и передача ее в Clipboard буфер, запись в файл или отправка почтой
BEEP

Назначение. Выдает системный сигнал.

BEEP

BREAK

Назначение. Устанавливает флаг прекращения выполнения программы.

BREAK

Описание.Оператор устанавливает флаг прекращения выполнения программы, который проверяется после завершения выполнения каждой строки программы. Если флаг установлен, то выполнение программы прекращается как если бы после очередного оператора стоял оператор END.

CHAIN

Назначение.Загрузка части программы в память и обьединение ее с ранее загруженной программой.

CHAIN "Имя файла пргораммы"

COMMAND

Назначение. Определение команды для события.

COMMAND Код события [,Команда]

Код события- это код передоваемый окну программы с помощью сообщения WM_COMMAND в качестве wParam,
Команда- строка представляющая собой фрагмент dbasic программы.

Описание. В результате выполнения оператора COMMAND программа начинает просматриваеть все сообщения WM_COMMAND. Если код передаваемый в wParam совпадает с кодом установленным оператором COMMAND, то выполняется заданная команда.

Примеры.

COMMAND 40000+Cmd,"RUN "+CHR(34)+PRGDIR+Module+".bas"+CHR(34)

CONTINUE

Назначение.Переход к началу цикла FOR или LOOP

CONTINUE

DEF

Назначение.Определение функции внешнего DLL-модуля.

DEF Имя DLL-модуля>!Имя функции(Список типов параметров) тип параметра

Описание. В качестве параметров используются наименования типов переменных из списка:

  • NULL- параметры отсутствуют,
  • LONG- целочисленный тип,
  • REAL- вещественный тип,
  • STRING- строковой тип,
  • BOOL- логический тип,
  • POINTER- указатель на переменную,
  • VARIABLE- указатель на переменную.
  • OBJECT- объект.
  • POINTER и VARIABLE отличаются следующим образом. Если в качестве типа в списке параметров функции указывается значение типа POINTER, то фактическим параметром должна быть переменная типа POINTER, которая возвращается функцией VARPTR и т.о. функции будет передан указатель на фактическую переменную. Если указывается значение типа VARIABLE, то фактическим параметром может быть любая переменная, а функции будет передан указатель на копию переменной находящуюся в стеке dbasic. Если в качестве возвращаемого типа указывается значение типа VARIABLE, то после считывания значения переменной dbasic дополнительно вызывает неявную функцию RELEASE, для освобождения памяти захваченной под переменную внутри DLL-модуля. Если это POINTER, то освобождение памяти не производится. Если в списке параметров указан тип STRING, а в качестве фактического параметра передается тип POINTER, указывающий на переменную типа STRING, то фактически передается указатель на эту строку. Если этот метод используется для получения значения строкового выражения из DLL-модуля, то предварительно следует инициализировать строку нулями используя функцию STRING.

    Примеры.

    DEF DBFCTRL!OPEN( STRING ) LONG
    DEF DBFCTRL!CLOSE( LONG )
    DEF DBFCTRL!LINK( LONG, STRING, STRING ) LONG
    

    DELAY

    Назначение.Задержка.

    DELAY Значение

    Значение- числовое выражение задающее величину задержки выполнения программы в мс.

    DIALOG

    Назначение. Создает безмодальный диалог в окне.

    DIALOG Имя файла,Имя диалога,Код

    Имя файла- любое строковое выражение задающее имя файла ресурса в котором находится описатель окна диалога. Файл должен иметь расширение res и создается любым Windows редактором ресурсов, например, WorkShop.
    Имя диалога- любое строковое выражение задающее имя окна диалога.
    Код- код события которое будет вызывать окно диалога при:
    PARAM=1 - инициализация окна диалога.
    PARAM=2 - нажата кнопка IDOK.
    LOWORD(PARAM)=3 - элемент с кодом HIWORD(PARAM) потерял фокус ввода.
    LOWORD(PARAM)=4 - запрос цвета текста элемента с кодом HIWORD(PARAM), при этом цвет передается как RESULT=RGB(0,0,0).
    PARAM=5 - нажата кнопка IDCANCEL.
    LOWORD(PARAM)=6 - начало редактирования элемента с кодом HIWORD(PARAM).
    LOWORD(PARAM)=7 - завершение редактирования элемента с кодом HIWORD(PARAM).
    LOWORD(PARAM)=8 - двойной КЛИК в окне с кодом HIWORD(PARAM),
    LOWORD(PARAM)=9 - вызов справочника в окне с кодом HIWORD(PARAM).

    Описание.Для заполнения полей окна диалога следует воспользоваться операторм PUT, а для считывания значений функцией GET. Кроме того при возникновении любого из выше перечисленных событий инициализируется предопределенная переменная HDLG, что позволяет так-же использовать любые функции API. Нажатие кнопок IDOK или IDCANCEL приводит к закрытию окна диалога. Все кнопки с кодом большим 2 при нажатии на них вызывают события с соответствующим кодом.

    См. так-же:
    PUT
    GET
    INPUT

    Пример.

    RES= EVENT("WINDOW")
     IF EMPTY(Tbl) GOTO CLOSE
     RES= ATTACH( Tbl.hWnd(),0,0 )
     IF NOT Tbl.Show( Rs, TITLE, "SCROLL|FIND" ) GOTO CLOSE
     RES= WAIT( QUIT )
    END
    
    WINDOW:
     SET Tbl= RSTBL.Load( HWND, PRGNAME )
     DIALOG RESNAME,"EPROV",4000
    END
    

    DIM

    Назначение. Определение массива.

    DIM [Тип переменной] Имя переменной(Размерность[,Размерность]) [, ...]

    Тип переменной- имя одного из типов определенных в dbasic;
    Имя переменной- имя массива;
    Размерность- числовое выражение задающее размерность массива.

    Описание. Во время выполнения оператора DIM устанавливается тип и ачальное значение элементов массива, равное нулю. Элементы массива строк имееют переменную длинну и начальное значение, равное пустой строке. Если тип массива не указан, то элементы массива приобретают тип в результате последующих операций присвоения. Для уничтожения массива используется оператор ERASEERASE.Для последующего изменения размерности массива можно воспользоваться оператором REDIM. Нумерация элементов массива начинается с нуля.

    Пример.

    DIM LONG AL(100),B(200,3)

    DRAW

    Назначение. Отображает битовый образ.

    DRAW hDib, HDC, X, Y

    hDib- переменная типа IMAGE содержащая битовый образ изображения созданного функцией BITMAP.
    HDC- число определяющее идентификатор контекста окна.
    X,Y- числовое выражение определяющее начальные координаты образа.

    Описание. Функция отображает битовый образ на экране.

    Пример.

    HDC= USER32!GetDC( HWND )
    hDib=BITMAP( FileName, 0 )
    DRAW hDib, HDC, 0, 0
    ok=FREE( hDib )
    USER32!ReleaseDC( HWND, HDC )
    

    END

    Назначение. Завершение выполнения программы.

    END [Код]

    Код- числовое выражение или указатель на dbasic переменную.

    Описание. Оператор END завершает выполнение программы. Он может быть помещен в любое место программы. Наличие оператора END в конце программы необезательно. Так же оператор END завершает выполнение фрагметов программы предназначенных для обработки событий EVENT, при этом если указан Код, то он возвращается программе вызвавшей данное событие.

    Пример.

    Rs.FldOption( "STATUS", "WIDTH=4;MODE=VIRTUAL;EVENT=4000" )
    EVENT 4000,STATUS
    …
    
    STATUS:
     Temp= Rs.FldGet("STATUS")
     IF Temp="N" THEN RES= MCOPY( PARAM, TYPE(0) )
     IF Temp="O" THEN RES= MCOPY( PARAM, TYPE(1) )
    END 0
    

    ERASE

    Назначение. Удаление массива или объекта.

    ERASE Имя массива, ...
    ERASE Метод

    Имя массива- имя массива, который необходимо удалить.
    Метод- удаляющий объект метод.

    Описание. В результате выполнения оператора ERASE заданные массивы удаляются. Для создания массива используется оператор DIM. В случае объекта. Оператор сперва вызывает указанный метод, после чего удаляет переменную объекта.

    Пример.

    ERASE A,B
    ERASE Rs.Close
    

    EVENT

    Назначение. Определение события.

    EVENT Код события [,Метка]

    Код события- это код передоваемый окну программы с помощью сообщения WM_COMMAND в качестве wParam,
    Метка- это имя метки, на которую должно быть передано управление при возникновении данного события.

    Описание. В результате выполнения оператора EVENT программа начинает просматриваеть все сообщения WM_COMMAND (обычно они посылаются меню главного окна программы) поступающие в окно программы. Если код передаваемый в wParam совпадает с кодом установленным оператором EVENT, то вызывается код следующий за меткой, который выполняется вплоть до конца текста программы или первого оператора END. Подробнее смотри оператор MENU. Значения кодов для меню зарезервировано в дипазоне 40000 - 41000. Выполнение оператора EVENT без метки приводит к отмене ранее установленного события. Помимо задаваемых пользователем событий dbasic имеет набор кодов для предопределенных событий, как то:
    1000 - получение фокуса ввода окном программы;
    1001 - изменение размера окна;
    1002 - активизация окна;
    1003 - деактивизация окна;
    1004 - таймер (PARAM);
    1005 - закрытие окна;
    1006 - сообщение WM_PAINT (HDC);
    1007 - сообщение WM_POWER (PARAM);
    1008 - нажатие клавиши (PARAM);
    1009 - нажатие левой кнопки мыши (XPOS,YPOS);
    1010 - нажатие правой кнопки мыши (XPOS,YPOS);
    1011 - двойное нажатие левой кнопки мыши (XPOS,YPOS);
    1012 - возвращает указатель на переменную, указатель на имя которой передан в lParam;
    1013 - возвращает указатель на переменную массива, указатель на имя которой, вида A(1), передан в lParam;
    1015 - перемещение мыши (XPOS,YPOS);
    1016 - отпускание левой кнопки мыши (XPOS,YPOS);
    1017 - начало операции drag and drop (PARAM);
    1018 - чтение данных из буфера окна;
    1019 - запись данных в буфер окна. Параметр содержит указатель на буфер с текстовой информацией;
    1020 - очистка буфера окна;
    В скобках приведено имя предопределенной переменной инициализируемой при получении сообщения. Значения кодов предопределенных событий определено в модуле "Events.bas".

    Пример.

    QUIT=SIGNAL(0)
    EVENT 40100,EXIT
    RES=WAIT(QUIT)
    END
    
    EXIT:
      SEND(QUIT)
    END
    

    EXIT

    Назначение.Выход из цикла FOR или LOOP

    EXIT

    FOR

    Назначение.Выполнение последовательности инструкций в цикле.

    FOR Переменная=X TO Y1 [STEP Y2]
    ...
    ... CONTINUE
    ... EXIT
    ...
    NEXT

    Переменная- имя целочисленной или вещественной переменной, которая будет использоваться в качестве счетчика выполнения цикла.
    X- числовое выражение, значение которого задает начальное значение счетчика цикла.
    Y1- числовое выражение, значение которого задает конечное значение счетчика цикла.
    Y2- числовое выражение, значение которого задает приращение счетчика цикла.

    Описание. Строки программы, следующие за оператором FOR, выполняются до тех пор, пока не будет встречены операторы NEXT, CONTINUE или EXIT. В результате выполнения оператора NEXT или CONTINUE счетчик цикла увеличивается на Y2, и полученное значение сравнивается с Y1. Если значение счетчика оказывается большим, чем заданное конечное значение, то цикл заканчивается, и выполнение программы продолжается с оператора, следующего за оператором NEXT. Если оператор STEP опущен, по умолчанию приращение предпологается равным 1. Следует обратить внимание, что Y1 и Y2, вычисляются один раз при выполнении оператора FOR. Если приращение задано отрицательным числом, то счетчик уменьшается при каждом проходе цикла, а цикл выполняется до тех пор, пока счетчик не станет меньше, чем конечное значение. Если условие цикла сразу не выполняется, то цикл пропускается. Оператор EXIT в теле цикла приводит к принудительному выходу из него, независимо от значения переменной цикла.

    Пример.

    SUM=0
    FOR I=1 TO 100
    SUM=SUM+A(I)
    NEXT

    GOSUB

    Назначение. Переход к подпрограмме и возврат из нее.

    GOSUB Метка
    ...
    Метка:
    ...
    RETURN
    	  
    или
    
    GOSUB Метка(Пар1,Пар2,...)
    ...		 
    Метка:PROC(@Par1,@Par2,...)
    ...
    RETURN	  
    	  
    

    Метка- имя метки.
    Пар n- параметр процедуры.

    Описание. Оператор GOSUB осуществляет передачу управления подпрограмме, начало которой определяется именем метки. Оператор существует в двух редакциях. В первой, когда вызов подпрограммы осуществляется без передачи параметров и с параметрами. В последнем случае после имени метки указывается ключевое слово PROC, за котором в скобках перечисляются имена параметров. Имена параметров должны начинаться с символа @. Выполнение подпрограммы завершается оператором RETURN. По оператору RETURN осуществляется возврат к оператору, следующему за оператором GOSUB. При этом параметры становятся недоступны. Подпрограмма может содержать более одного RETURN, если необходимо обеспечить возврат из нескольких точек подпрограммы. Подпрограмма может вызываться из нескольких точек программы или из другой подпрограммы. Вложенность вызовов подпрограмм ограничена 20.

    Пример.

    GOSUB CALC
    ...
    END
    
    CALC:
     R=R+1
    RETURN
    	
    или
     
    GOSUB PROC1(1)
    ...
    END
    
    PROC1:PROC(@RES)
     WAY=WAY+"-PROC1("+STR(@RES)+")"
     @RES=1+@RES
     IF @RES < 10 THEN GOSUB PROC1(@RES)
    RETURN
    

    GOTO

    Назначение. Переход к заданной строке программы.

    GOTO метка

    Метка- имя метки.

    Описание. Оператор GOTO прерывает нормальную последовательность выполнения операторов и передает управление строке, в начале которой стоит метка указанная в операторе GOTO.

    Пример:

    GOTO EXIT
    ...
    EXIT:
    END

    HELP

    Назначение.Вызов справочника.

    HELP ИмяФайла[, Индекс]

    ИмяФайла- строковое выражение содержащие имя файла справочника.
    Индекс- строковое выражение определяющее индекс справочника или число озночающее:
    0 - отобразить окно индексов справочника,
    <0 - отобразить раздел с заданным кодом в отдельном окне,
    >0 - отобразить раздел с заданным кодом.
    Если "Индекс" не указан, то ранее открытый справочник закрывается.

    IF

    Назначение. Управление ходом выполнения программы в зависимости от условия, определяемого выражением.

    IF выражение GOTO метка
    IF выражение THEN оператор

    Выражение- любое выражение в результате которого получается логическое значение "Истина" или "Ложь".
    Метка- имя метки.
    Оператор - любой оператор.
    Описание. Если в результате вычисления выражени получается "Истина", то управление передается на метку или выполняется оператор следующий за оператором THEN. В противном случает выполняется оператор в следующей за IF строке.

    Примеры.

    IF A > B THEN C=30
    IF NOT (A>B) AND C=30 GOTO NEXT
    ...
    NEXT:

    INPUT

    Назначение. Приостонавливает выполнение программы и отоброжает окно диалога, в котором пользователь может определить (переопределить) значения переменных программы.

    INPUT Имя файла,Имя диалога,Код

    Имя файла- любое строковое выражение задающее имя файла ресурса в котором находится описатель окна диалога. Файл должен иметь расширение res и создается любым Windows редактором ресурсов, например, WorkShop.
    Имя диалога- любое строковое выражение задающее имя окна диалога.
    Код- код события которое будет вызывать окно диалога при:
    PARAM=1 - инициализация окна диалога.
    PARAM=2 - нажата кнопка IDOK.
    LOWORD(PARAM)=3 - элемент с кодом HIWORD(PARAM) потерял фокус ввода.
    LOWORD(PARAM)=4 - запрос цвета текста элемента с кодом HIWORD(PARAM), при этом цвет передается как RESULT=RGB(0,0,0).
    PARAM=5 - нажата кнопка IDCANCEL.
    LOWORD(PARAM)=6 - начало редактирования элемента с кодом HIWORD(PARAM).
    LOWORD(PARAM)=7 - завершение редактирования элемента с кодом HIWORD(PARAM).
    LOWORD(PARAM)=8 - двойной КЛИК в окне с кодом HIWORD(PARAM),
    LOWORD(PARAM)=9 - вызов справочника в окне с кодом HIWORD(PARAM).

    Описание.Для заполнения полей окна диалога следует воспользоваться операторм PUT, а для считывания значений функцией GET. Кроме того при возникновении любого из выше перечисленных событий инициализируется предопределенная переменная HDLG, что позволяет так-же использовать любые функции API. Нажатие кнопок IDOK или IDCANCEL приводит к закрытию окна диалога. Все кнопки с кодом большим 2 при нажатии на них вызывают события с соответствующим кодом.

    См. так-же:
    PUT
    GET
    DIALOG

    KEY

    Назначение. Устанавливает текущие клавиатурные акселераторы.

    KEY Файл,Имя

    Файл- имя файла ресурсов содержащего таблицу акселераторов.
    Имя- имя таблицы акселераторов.

    Описание. Для создания таблицы акселераторов следует воспользоваться любым Windows редактором ресурсов, например, Workshop.

    LET

    Назначение. Присвоение переменной или массиву значения.

    LET ИмяПеременной,Тип=Выражение
    LET Массив(Индекс[,Индекс])=Выражение,Выражение,...
    

    Переменная- любая простая переменная.
    Выражение- любое выражение.
    Индекс- число определяющее индекс массива.
    ИмяПеременной- строковое выражение задающее разрешенное имя переменной.
    Тип- строковое выражение задающее тип переменной.

    Описание.Если операндом оператора является имя массива, то оператор последовательно вычисляет правые выражения и присваивает их значения переменным массива начиная с переменной массива задаваемой "Индекс". Если операндом является имя переменной, то создается переменная указанного типа, которой присваивается значение правого выражения.

    Пример.

    DIM STRING AS(11)
    LET AS(0)="НОЛЬ","РАЗ","ДВА","ТРИ","ЧЕТЫРЕ","ПЯТЬ","ШЕСТЬ","СЕМЬ","ВОСЕМЬ","ДЕВЯТЬ"
    LET "Name","STRING"="Иван"
    

    LOAD

    Назначение. Загружает и выгружает внешний dbasic модуль

    LOAD Имя файла
    UNLOAD Имя файла

    Имя файла- имя файла модуля.

    Описание. DBasic позволяет подгружать на этапе выполнения дополнительные фрагменты кода программы (модули). При этом если несколько программ загружают один и тот-же модуль, то фактически он загружается лишь один раз. Это позволяет с одной стороны экономить память помещая редко используемую часть кода в модуль и загружая и выгружая его по мере необходимости. И с другой стороны создать аналог виртуальных функции помещея подпрограммы с одним и тем же именем в различные модули, и выбирая нужный модуль уже в процессе выполнения программы.

    Пример.

    Module="DBMOD01"
    LOAD PRGDIR+Module+".bas"
    GOSUB DOCVIEW
    UNLOAD Module

    LOOP

    Назначение.Выполнение последовательности инструкций в цикле.

    LOOP
    ...
    ... CONTINUE
    ... EXIT
    ...
    NEXT

    Описание. Строки программы, следующие за оператором LOOP, выполняются до тех пор, пока не будет встречены операторы NEXT, CONTINUE или EXIT. В результате выполнения оператора NEXT или CONTINUE происходит переход в начало цикла, а EXIT выход из него.

    Пример.

    ok=File.Open("d:\text.txt")
    LOOP
     IF File.EOF THEN EXIT
     buf=File.Read()
     IF LEN(buf)=0 THEN CONTINUE
     ...
    NEXT
    File.Close()
    

    MID

    Назначение.Замена подстроки другой подстрокой.

    MID( Строка, Позиция [, Длина] )=Выражение

    Строка- строковая переменная.
    Выражение- строковое выражение.
    Позиция- целочисленное выражение.
    Длина- целочисленное выражение.

    Описание.Оператор позволяет выполнить замену указанной подстроки в строке. Оператор осуществляет присваение строке значения выражения, находящегося слева от знака "=". Операнд "Позиция" задает начало подстроки, а "Длина" - длину. Если "Длина" не задан, то подстрока продолжается до конца строки.

    Пример.

    AS="HELLO BASIC"
    MID( AS, 10 )= "KUKU"
    'Результат BS="HELLO BASKU"
    

    MENU

    Назначение. Устанавливает текущее меню для окна программы.

    MENU Имя файла, Имя ресурса

    Имя файла- строковое выражение опеределяющее имя файла ресурсов содержащего описатель меню.
    Имя ресурса- строковое выражение опеределяющее имя меню в файле ресурса.

    Описание. Для создания меню следует воспользоваться любым Windows редактором ресурсов, например, Workshop.

    Пример.

    RESOURCE=16
    RESNAME=PRGDIR+"SKLAD.RES"
    MENU RESNAME,"SKLAD"
    

    ON

    Назначение. Передача управления в зависимости от значения выражения.

    ON Выражение GOTO Метка,Метка,...
    ON Выражение GOSUB Метка,Метка,...

    Выражение- любое числовое выражение.
    Метка- имя метки.

    Описание. В результате выполнения оператора управление передается строке, в начале которой стоит метка указанная в операторе и порядковый номер которой в списке равен значению числового выражения. Если значение числового выражения равно 0 или превышает число указанных в списке номеров строк, управление передается следующему оператору.

    Пример.

    ON K GOTO OPEN,CLOSE,EXIT
    ...
    EXIT:
    END

    PLAY

    Назначение. Доступ к MCI сервису Windows

    PLAY Команда, Переменная

    Команда- строковое выражение определяющее разрешенную команду MCI- драйвера.
    Переменная- строковая переменная в которой оператор возвращает результат.

    Описание. В результате выполнения оператора строковая команда передается драйверу MCI. Если команда возвращает строковую переменную, то ее значение возвращается в переменной "Переменная". Если при выполнении оператора происходит ошибка, то ее значение устанавливается в предопределенной переменной "RESULT".

    Пример.

    PLAY "open pablic.avi type avivideo alias film", result
    IF RESULT<>0 THEN STOP

    PUT

    Назначение. Устанавливает значение элемента окна диалога.

    PUT ...

    Описание.Для заполнения полей окна диалога следует воспользоваться операторм PUT, а для считывания значений функцией GET. Каждому типу Windows окна соответствует определенный тип описателя:

    Тип "Группа выбора" - группа выбора образуется набором кнопок типа "Radiobutton" объединенных в группу. При нажатии пользователем на одну из кнопок происходит ее выделение, а выделение других кнопок группы сбрасывается. Например:

    Этому типу соответствует описатель:

    PUT Код,Значение
    Код- код (идентификатор) первой кнопки в группе выбора,
    Значение- имя целочисленной переменной определяющей первоночальный номер выбранной кнопки. Первая кнопка имеет номер 0 и т.д.

    Тип "Кнопка выбора" - кнопка типа "CheckBox". При нажатии пользователем на такую кнопку ее выделение изменяется на обратное. Например:

    Этому типу соответствует описатель:
    PUT Код,Значение
    Код- код (идентификатор) кнопки,
    Значение- имя логической переменной определяющей первоночальное состояние кнопки.

    Тип "Окно редактирования" - окно типа "Edit". Это окно позволяет пользователю определить значение числовой или строковой переменной. Например:

    Этому типу соответствует описатель:
    PUT Код,Значение,Длинна
    Код- код (идентификатор) окна,
    Значение- имя переменной определяющей первоночальный текст отображаемый в окне редактирования.
    Длинна- максимально допустимая длинна текста.

    Тип "Окно списка" - окно типа "ComboBox". Это окно позволяет пользователю выбрать значение числовой или строковой переменной из списка. Например:

    Этому типу соответствует описатель:
    PUT Код,Значение,Кол-во,Массив
    PUT Код,Значение,Кол-во,Код события
    Код- код (идентификатор) окна,
    Значение- имя переменной определяющей первоночальный выбор отображаемый в окне,
    Кол-во- количество елементов в окне,
    Массив- имя массива задающего список значений для выбора.
    Код события- код события которое будет вызывать окно списка для получения текста, при этом номер элемента задается переменной PARAM, а результат возвращается путем инициализации переменной RESULT необходимой строкой. Первый элемент имеет код 1.

    Тип "Окно выбора" - окно типа "ListBox". Это окно позволяет пользователю выбрать значение числовой или строковой переменной из списка. Например:

    Полностью аналогично окну списка.

    Тип "Окно картинка" - окно типа "PICTURE". Это окно позволяет отобразить картинку. И получить событие при клике на ней. Этому типу соответствует описатель:
    PUT Код,Картинка
    Код- код (идентификатор) окна,
    Картинка- переменная типа IMAGE.

    Для всех других типов окон. dBasic предполагает, что их поведение аналогично "Окну редактирования". Если в качестве параметра такому окну передается объект, то описатель должен иметь вид:
    PUT Код,Объект,Строка
    Объект- переменная типа OBJECT,
    Строка- любое строковое выражение.
    В это случае окну посылается сообщение
    SendMessage( hwnd, WM_SETTEXT, (WPARAM)pClass, (LPARAM)pVar->pStr );
    См. так-же:
    GET
    INPUT
    DIALOG

    Пример.
    DIM STRING AS(3)
    LET AS(0)="1","2","3"
    ....
    LDLG1:
     EVENT 3000,DLG10
     INPUT NAME,"DIALOG_1",3000
     EVENT 3000
    END
    
    DLG10:
     IF PARAM=1 GOTO DLG11
     IF PARAM=2 GOTO DLG12
    END
    
    DLG11:
     PUT 101,Rb
     PUT 103,Cb
     PUT 104,CText,3,AS
     PUT 105,LText,3,AS
     PUT 106,Text1
    END
    
    DLG12:
     Rb= GET(101)
     Cb= GET(103)
     CText= GET(104)
     LText= GET(105)
     Text1=GET(106)
    END
    
    REDIM

    Назначение. Изменение размерности массива

    REDIM Имя(Размерность[,Размерность]),...

    Имя- имя ранее определенного оператором DIM массива.
    Размерность - числовое выражение определяющее новую размерность массива.

    Описание. Оператор REDIM позволяет изменить размерность массива. При этом значение элементов массива не изменяется. При увеличени размерности массива его новые элементы будут иметь тип совпадающий с типом его нулевого элемента.

    REM

    Назначение. Вставка в программу комментария

    REM Команда[,Команда]
    REM Комментарий
    REM BEGIN
    ...
    REM END

    Комментарий- любая последовательность символов.
    Команда- стока команды интерпретатора.

    Описание. Оператор REM является невыполнимым оператором. Он может выполнять ряд функций. Первая и основная - это строковый комментарий. Комментарий может быть внесен и с помощью апострофа ('). Отличие оператора REM от апострофа в том, что строки с апострофом удаляются на этапе предкомпиляции и т.о. становятся невидимыми для операторов STOP и TRON, а оператор REM остается в тексте программы. Вторая - это блочный комментарий. Так если мы поместим часть операторов в блок REM BEGIN ... REM END, то интерпретатор пропустит операторы внутри блока, однако он их будет выполнять в случае указания явного перехода внутрь блока GOTO или GOSUB. Этот прием используется, например, для помещения тела процедур в начало модуля. И последнее оператор REM в первой строке программы рассматривается как блок комманд интерпретатору. В данной версии определено две команды WINDOW - означает, что программу следует выполнять в той-же нити, что и основной процесс dbasic и HIDE - означает, что окно dbasic должно быть изначально скрыто, по умолчанию оно открывается минимизированным.

    Пример.

    REM WINDOW
    IF $Cnt=0 THEN REM BEGIN
      $Cnt=$Cnt+1
      RUN "step2.bas"
    REM END	 
    

    RUN

    Назначение. Запускает на выполнение dbasic программу.

    RUN Файл

    Файл- строковое выражение опеределяющее имя файла dbasic программы.

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

    SET

    Назначение. Создание объекта.

    SET Объект=ИмяФайла.ИмяФункции(Параметр,...)
    SET Объект=CreateObject(Класс)
    SET Объект=Объект.Метод(Параметр,...)
    

    Объект- переменная типа OBJECT или DISPATCH.
    ИмяФайла- имя DLL модуля содержащего данный объект.
    ИмяФункции- имя функции вызываемой для создания объекта.
    Параметр- необходимые параметры.
    Класс- строка задающее имя класса ActiveX объекта.

    Описание. В результате выполнения оператора создается новый объект. Dbasic различает два вида объектов. Собственные объекты, которые поддерживают внутренний интерфейс dbasic и ActiveX объекты.

    Пример.

    SET Rs= RSODBC.New( Base, TABLE, 10 )
    IF EMPTY(Rs) GOTO CLOSE
    IF NOT Rs.Open( SQLSTR, "KEYSET" ) GOTO CLOSE
    
    или 
    
    SET Rs=CreateObject("ADODB.Recordset")
    Rs.Open("select * from country order by name",Base,1,3,8)
    

    STOP

    Назначение. Приостонавливает выполнение программы.

    STOP

    Описание. В результате выполнения оператора выполнение программы приостанавливается и на экране отбражается окно вида:

    Нажатие кнопки "Продолжить" приводить к продолжению выполнения программы. А кнопки "Завершить" к прекращению выполнения.

    TRON

    Назначение. Включает и выключает режим трассировки программы.

    TRON
    TROFF

    Описание. Режим трассировки включается оператором TRON и выключается оператором TROFF. В режиме включенной трассировки после каждой строки выполняется псевдооператор STOP.

    TUNE

    Назначение. Установка свойств элемента окна диалога.

    TUNE Код,Параметр,Значение

    Код- код (идентификатор) окна,
    Параметр- строка команды,
    Значение-

    Описание.Оператор предназначен для установки дополнительных свойст элементов окна диалога. Допустимы следующие параметры:
    ENABLE - активизирует или деактивизирует элемент окна далога,
    TEXT - устанавливает текстовое значения элемента combobox в случае установленного стиля CBS_SIMPLE,
    SELECT - выделяет заданный элемент списка listbox в случае стиля LBS_MULTIPLESEL,
    SHOW - скрывает или отображает элемент окна далога.

    Пример.

    DLG41:
     FOR i=0 TO 3
       IF BIT(Sel,i) THEN TUNE 101,SELECT,i
     NEXT
    END
    
    DLG42:
     Sel=0
     FOR i=0 TO 3
       IF GET(101,i) THEN Sel=INCL(Sel,i)
     NEXT
    END

    WRITE

    Назначение. Помещение текстовой информации в буфер и передача ее в Clipboard буфер или запись в файл.

    WRITE Переменная, Переменная, ...
    WRITE TO CLIPBOARD
    WRITE TO FILE Имя

    Переменная- любое числовое или строковое выражение.
    Имя- имя файла в который будет помещена информация.

    Описание. В результате выполнения оператора список значений переменных преобразуется в строковое выражение и помещается в локальный буфер программы, при этом переменные разделяются символом табуляции CHR(9). Каждый оператор WRITE записывает в буфер строку завершающуюся символами CR/LF. После заполнения буфер может быть перемещен в Clipboard буфер оператором WRITE TO CLIPBOARD или записан в файл оператором WRITE TO FILE.


    Содержание.   Функции.
    Hosted by uCoz