Untitled Document

Данная документация предназначена для быстрого изучения языка ForceBasic и его компонентов.В документации содержится описание процедур, функций, классов, типов используемых в языке ForceBasic, а также описание компиляторов и языка ForceBasic.

Данные о разработчике:

Метлашевский Егор Николаевич
E-Mail: georgy233@rambler.ru
ForceBasic Home Page: www.forcebasic.com


Содержание

Глава 1: Быстрый обзор ForceBasic

  • ForceBasic это компилятор или интерпретатор?
  • Скорость выполнения байт-кода?
  • Можно ли использовать в приложениях ForceBasic библиотеки DLL?
  • Сколько необходимо памяти для выполнения приложений на ForceBasic’ке?
  • Просто ли взломать приложение написанное на ForceBasic’ке?
  • Может ли ForceBasic компилировать приложения под разные операционные системы?
  • Цикл разработки программ на языке ForceBasic
  • Цикл разработки библиотек на языке ForceBasic
  • О модулях ‘Unit’. Преимущества и недостатки
  • Компилятор языка ForceBasic
    • Опции компилятора
  • Линковщик
    • Опции линковщика

Глава 2: Описание языка

  • Общий вид программы на ForceBasic
    • Структкра главного модуля
    • Структура библиотечного модуля
    • Процедуры InitLibrary и ReleaseLibrary
    • Когда вызвваются процедуры InitLibrary и ReleaseLibrary
  • Элементы языка ForceBasic
    • Используемые символы
    • Константы
    • Идентификатор
    • Ключевые слова
    • Использование комментариев
  • Переменные перечеслимого типа (enum)
    • Общий вид
    • Организация перечисления
  • Переменные
    • Общий вид
    • Объявление переменных
    • Переменная как указатель
    • Типы переменных
    • Область видимости переменной
  • Массивы
    • Объявление массивов
    • Создание многомерных массивов
  • Пользовательские типы данных
    • Общий вид
    • Объявление типов данных
    • Переопределение типов (typedef)
  • Процедуры и функции
    • Общий вид процедуры
    • Общий вид функции
    • Объявление процедур и функций
    • Передача параметров
    • Возвращаемое значение функции. Идентификатор return
    • Взаимодействие с функциями множественных параметров
    • Перегрузка операций
    • Вызов процедур и функций
    • Декларирование процедур и функций из DLL
    • Типы данных используемые при декларации
  • Операторы
    • Арифметические операторы (+,-,*,/,&,++,^,shl,shr,mod,ref,set)
    • Операторы сравнения (=,>,<,>=,<=,<>)
    • Логические операторы (or, and, xor, not)
  • Директивы препроцессора
    • Директива $include
    • Директива $define
    • Директива $if
    • Директива $ifdef
    • Директива $ifndef
    • Директива $else
    • Директива $error
    • Директива $stack
    • Директива $autostack
    • Директива $asinc
  • Директивы
    • import
    • option
    • resource
    • $document
      • Создание документации модуля
      • Пример
  • Макросы
    • Макрос subptr
    • Макрос subptrclass
    • Макрос new
    • Макрос delete
    • Макрос typename
    • Макрос procaddress
  • Управление выполнением программы
    • Оператор if…then
    • Оператор if…then…else
    • Оператор select case
    • Оператор цикла do…loop
    • Оператор цикла for…next
    • Оператор exit
  • Классы
    • Объявление классов
    • Конструкторы и деструкторы
      • Когда вызываются конструкторы и деструкторы
    • Объявление переменных в классах
      • Доступ к полям класса. Идентификатор this
    • Производные классы. Наследование
      • Наследование классов, с конструкторами
    • Создание методов
      • Вызов методов
      • Вызов производных методов
      • Подстановка методов
      • Виртуальные методы
        • Объявление виртуальных методов. Полиморфизм
        • Вызов прошедшего виртуального метода
        • Внутренняя организация виртуальных метод
    • Cвойства
      • Создание свойств
      • Общий вид реализации свойства
      • Свойства только для чтения
      • Свойства published
        • Обявление свойств published
        • Манипулирование свойствами published
      • published списки
        • Обьявление published списков
    • События. Event
      • Создание и использование событий
      • Организация событий
    • Операторы
      • Объявление операторов
      • Программирование операторов
    • Внедрение в класс других классов. Инкапсуляция

Глава 3: Процедуры и функции

  • Строковые функции
    • Str, Val, Oct, Hex, Asc, Chr, Trim, RTrim, LTrim, LCase, UCase, Left, Right, Mid, Space, Len

  • Работа с памятью
    • mAlloc, mFree, MemCpy, MemCmp, MemSet, StrCpy, StrCmp, StrCat, StrLwr, StrUpr, StrColl, StrLen, StrICmp, StrIColl, AddressOf, VirtualOf, CharToStr

  • I/O функции консоли
    • Screen, Putch, Print, Color, Locate, Cls, Inkey, Input

  • Функции файловой системы
    • fopen, fgets, fgetc, fclose, feof, fread, fputs, fputc, fwrite, ftell, fseek, fremove, frename, ftmpnam, ftmpfile, fprint, chdir, rmdir, mkdir, getcwd, Files, Dirs, FilesAndDirs, File, ExtractFileExt, ExtractFileDrive, ExtractFileName, ExtractFilePath, ExtractFileNameOnly

  • Математические функции
    • Rnd, Random, Abs, Atn, Cos, Exp, Log, Sin, Sqr, Sgn, Floor, Ceil, ACos, ASin, Tan, Log10

  • Графические функции
    • LineTo, Rectangle, Ellipse, FloodFill, SetPixel, Arc, SetActivePage, SetVisualPage, GetActivePage, GetVisualPage, GetVideoConfig, Polygon, GetPixel, MoveTo, SetFillMask, GetFillMask, SetLineStyle, GetLineStyle, SetWriteMode, GetWriteMode, SetViewPort, ClearScreen, SetClipRgn, GetClipRgn, SetWindow, DisplayCursor, OutText, SetCharSize, SetTextAlign, SetTextPath, SetTextOrient, SetCharSpacing, GetImage, PutImage, ImageSize

    •
  • Прочие функции
    • Shell, ParamCount, ParamStr, Command$, Environ$, DoEvents

Глава 4: Классы

  • Глоссарий
  • Классы
    • Object, Collection, Argument, Runable, AnsiString, Resource

Что вы думаете?
Присылайте свои предложения на e-mail
Предыдущая глава
Оглавление
Следующая глава


Untitled Document

Данная документация предназначена для быстрого изучения языка ForceBasic и его компонентов.В документации содержится описание процедур, функций, классов, типов используемых в языке ForceBasic, а также описание компиляторов и языка ForceBasic.

Данные о разработчике:

Метлашевский Егор Николаевич
E-Mail: georgy233@rambler.ru
ForceBasic Home Page: www.f-basic.altnet.ru


Глава 1: Быстрый обзор ForceBasic

ForceBasic это компилятор или интерпретатор?

На вопрос, чем является ForceBasic — компилятором или интерпретатором, можно получить ответ: "И тем, и другим". Его нельзя однозначно отнести ни к компиляторам, ни к интерпретаторам.

ForceBasic как интерпретатор:

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

ForceBasic как компилятор:

ForceBasic нельзя назвать чистым компилятором, так как в отличие,
например, от Visual C++, ForceBasic не создает исполняемый файл сразу же при запуске из среды разработки. Для создания такого файла необходимо сделать это явно.

Скорость выполнения байт-кода?

На поставленный вопрос точно нельзя дать ответа, т.к. практически невозможно измерить скорость выполнения программы. В разных операционных системах, на различных типах процессоров скорость выполнения одной и той же программы будет различна. Но всё-таки можно дать оценку скорости выполнения, сравнивая с другими языками. Скорость выполнения программ на ForceBasic’ке нельзя сравнивать со скоростью выполнения программ например на Visual C++, т.к эти два средства в корне отличаются друг от друга, и всегда одна и таже программа написанная на Visual C++ будет работать быстрее чем на ForceBasic’ке или Visual Basic’ке. Также ForceBasic нельзя сравнивать со скриптовыми языками. В своём классе ForceBasic по скорости выполнения программ может конкурировать, например с Visual Basic, Rapid-Q, Fox Pro. Проведя небольшой анализ данных продуктов оказалось, что по скорости выполнения программ лидирует Visual Basic, на втором месте Fox Pro, затем ForceBasic, и Rapid-Q. Как показывает практика, такой скорости выполнения вполне хватает для реализации аппликации в Windows-приложения и даже создания игр с использованием технологии DirectX.

Можно ли использовать в приложениях ForceBasic библиотеки DLL?

Любому программисту известно, что приложение под Windows неоднократно использует вызовы процедуры и функции из динамических DLL библиотек. Без этого нельзя. Ведь практически вся технология Windows построена на этом. В ForceBasic можно использовать тот же принцип. Для этого необходимо объявить декларацию функции из указанной библиотеки, и точно описать параметры функции.

Просто ли взломать приложение написанное на ForceBasic’ке?

Это практически невозможно. Под этим действием понимается изменение программы, например для того чтобы взломать программу, написанную на Borland C++ или Power Basic’ке, необходимо дизассемблировать exe файл, изменить инструкции, и заново скомпоновать в exe файл. т.е теоретически возможно взломать любой exe файл, если в нём содержатся машинные инструкции. В случае ForceBasic’ка этого сделать невоможно, т.к в exe файле созданным линковщиком ForceBasic’ка расположен псевдо-код, структура которого известна только создателю ForceBasic’ка.

Может ли ForceBasic компилировать приложения под разные операционные системы?

Изначально байт-код языка ForceBasic создавался для того чтобы его можно было выполнять в различных операционных системах, например таких как Windows, Linux, DOS. Технология виртуальной машины и простой байт-код, однопоточная и однозадачная среда позволяют сделать это даже в операционных системах DOS.

Цикл разработки программ

Цикл разработки программ на языке ForceBasic напоменает цикл разработки программ на C/C++. Исходник программы компилируется компилятором в библиотечный модуль ‘unit’, затем отдельная программа компонует модули в исполняемый файл.

В языке ForceBasic модуль ‘unit’ является одновременно образом байт-кода и библиотекой. т.е после компиляции исходника получаемый ‘unit’ можно использовать как библиотеку. Следовательно, цикл разработки библиотеки для языка ForceBasic заключается в компиляции исходника.

Цикл разработки библиотек на языке ForceBasic

Возможен ещё один цикл разработки библиотек, когда компилируются множество модулей, затем программа-линковки объединяет все полученые ‘*.unit’ файлы в один.

О модулях ‘Unit’. Преимущества и недостатки

Модули ‘unit’ – это предварительно сгенерированный байт-код, который в дальнейшем объединяется с другими модулями ‘*.unit’. В модулях ‘*.unit’ хранится не только байт-код, но и структура программы ( структура функций, их параметров, структура типов, классов глобальных переменных, и.т.д.), информация о модуле ( версия компилятора, ссылки на другие модули… и.т.п.). Это позволяет использовать, при компиляции и линковки, только модули ‘unit’ и ничто больше, никаких *.lib, *.obj файлов. Данная организация модулей позволяет при написании программы подключать модуль, без использования файлов-заголовков ‘*.h’. Программисту не надо заботится, какой заголовок включить файл, всё что нужно для подключения модуля в языке ForceBasic, применить команду import с указанием модуля.

В модулях ‘Unit’ хранится структура программы, это позволяет в разы повысить скорость компиляции и линковки. т.к в модулях unit хранится предварительно скомпонованная программа, а не исходник, её не надо компилировать, это характерно и для структуры модуля, которая хранится в ‘unit’ в бинарном виде, а не в отдельном файле-заголовке.

Недостаток ‘unit’ проявляется в цикле разработки библиотек, когда происходит объединение множества модулей ‘unit’ в один, когда каждый из множества модулей ссылается друг на друга. Такую программу следует компилировать два раза.

Компилятор языка ForceBasic

Компилятор языка ForceBasic – это исполняемый файл pb.exe, который находится в директории ‘Bin’, дистрибутива компилятора ForceBasic. Если запустить файл pb.exe без каких либо параметров, то он отобразит следующую подсказку:

Force Basic Compiler Version 1.0 By Metlashevskiy Egor Copyright 2004-2006
Usage: PB [Options] filenames.bas [filename.unit]

Options:
/won|off won: show warnings; woff: d'not show warnings
/w:num Set warning count
/e:num Stop after 'num' errors. Default num is 10
/i:PATH Search path for include files
/m:FILE Map file listing
/md Write detailed list in map file
/r:FILE Run-Time library filename. Default library win32.rtl
/p Don't show preprocessor errors
/ru Show errors and warnings on russian language
/KOI8 Convert to Cyrilic KOI-8 chars table
/a Generate assembly file(s)
/bl Include basic source lines in assembly file(s)
/nsys Do not implements system unit.

Компилятор pb.exe будет работать корректно, если установленные соответствующие переменные среды. Информацию об установки можно найти в файле install.txt в корне дистрибутива компилятора.

Опции компилятора:

/won|off

Опция /won установлена по умолчанию, она отображает возможные ошибки (Warnings). Опция /woff не отображает возможные ошибки.

/w:num

Устанавливает количество (num) возможных ошибок, после которых компилятор прекратит свою работу.

/e:num

Устанавливает количество (num) ошибок, после которых компилятор прекратит свою работу. По умолчанию num=1

/i:PATH

Директории для поиска файлов.

/m:FILE

Отображает карту и байт-код модуля ‘unit’. Данная опция может отсутствовать в других версиях компилятора в целях безопасности.

/md

Отображает карту в деталях. Данная опция может отсутствовать в других версиях компилятора в целях безопасности.

/r:FILE

FILE – имя файла RUN-TIME библиотеки, информация которой необхадима для компиляции исходника.

/KOI8

Если указана опция /ru (показывать ошибки на русском языке), то они отображаются в кодеровке KOI8

/a

Будут сгенерированы ‘*.asm’ файлы при компиляции исходника.

/bl

Отображает в ‘*.asm’ файле строки кода на ForceBasic.

/nsys

Опция /nsys не внедряет автоматически модуль system.unit

Линковщик ForceLink

Линковщик – программа plink.exe, которая компонует модули ‘unit’ в исполняемый файл.
Суть линковщика в языке ForceBasic заключается в высвобождении операции линковки у виртуальной машине FVM (Force Virtual Machive). Соответственно отказ от технологии динамической линковки, как это реализовано в Java. Т.к изначально планировалось сделать исполняемый байт-код как можно меньше и проще, и избавить FVM от линковки, сделать FVM как можно меньше и снизить функциональную нагрузку до минимума, ведь ей и так хватает забот по обработки кода.
Это сделано ещё и для кода FVM. Изначально планировалось сделать OpenSource FVM, для того, что бы программист мог сам компилировать FVM в разных операционных средах, и не мог получать доступ к структуре ‘unit’ фалов (в целях безопасности), тем самым обеспечивать переносимость своих кодов на другие платформы. Разработав один раз библиотеку ‘unit’, она может использоваться в других платформах без компиляции исходных кодов библиотеки, и программисты, написавшие эту библиотеку, будут всегда уверены, что её не ассемблируют, изменят в своих целях, для использования на другой платформе.

Конечно, и здесь есть недостатки. Например, невозможно динамически подключать модули unit во время работы программы. Есть и плюсы – Исполняемый файл получается очень маленьким (от 3K), и не требует других модулей ‘unit’ во время выполнения.

Опции линковщика:

Force Link Version 1.0 By Metlashevskiy Egor Copyright 2004-2005
Usage: PLINK [Options] filenames.obj [+filenames.lib] [filename.exe]

Options:
/won|off won: show warnings; woff: d'not show warnings
/w:num Set warning count
/i:PATH Search path for include files
/la Write detailed list in map file
/r:FILE Run-Time library filename. Default library pbstd.rtl
/s:num Stack size. Default stack size is 256K
/sa Set stack auto resize
/t:STRING Title application
/ico:FILE Icon filename
/ml Make only library
/mr Make ROM file
/ru Show errors and warnings on russian language
/KOI8 Convert to Cyrilic KOI-8 chars table

Все опции линковщика идентичны опциям компилятора pb.exe, за исключением:

/t:STRING

STRING – заголовок аппликации/исполняемого файла

/ico:FILE

FILE – файл иконки прилодения.

/ml

На выходе не исполняемый файл, а объединённые модули ‘unit’.

/mr

На выходе чистый байт-код, для интеграции с другими средами.


Общий вид программы на ForceBasic

Описание языка
Общий вид программы на ForceBasic

Программа на языке ForceBasic состоит из главного модуля и библиотечных модулей, которые в совокупности и составляют программу. Как минимум программа должна состоять из одного главного (исполняемого) модуля. Существуют некоторые различия при написании этих типов модулей. Главный модуль программы обязательно имеет публичную не перегруженную процедуру main, если таковой процедуры не имеется в описании, то компилятор воспринимает исходный код как библиотечный модуль. Процедура main является точкой входа в программу, именно с неё начинается выполнение программы. Как в главном модуле так и в библиотечном модуле вы можете описывать процедуры, классы, декларации…и.т.д.

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

Главный модуль

Ниже приведена структура главного модуля.

Декларации (описание процедур и функций)
Директивы препроцессора
Константы
Пользовательские типы данных и классы
Процедуры и функции

sub main
Блок программы
end sub

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

Библиотечный модуль

Ниже приведена структура библиотечного модуля.

Декларации (описание процедур и функций)
Директивы препроцессора
Константы
Пользовательские типы данных и классы
Процедуры и функции

sub InitLibrary
    Загрузка модуля
end sub

sub ReleaseLibrary
    Загрузка модуля
end sub

Процедуры InitLibrary и ReleaseLibrary

Описание процедур InitLibrary и ReleaseLibrary не обязательно. При отсутствии данных процедур компилятор автоматически сгенерирует код в этих процедурах. Процедуры InitLinrary и ReleaseLibrary являются подобием конструктора и деструктора в классах. Процедура InitLibrary служит для загрузки модуля, инициализации данных, создание классов, аналогично процедура ReleaseLibrary предназначена для выгрузки модуля, деинициализации данных, удаления классов, и.т.д. Обе процедуры должны быть публичные и не перегруженные.

Совет: Программируйте процедуры InitLinrary и ReleaseLibrary только при необходимости.

Когда вызываются процедуры InitLibrary и ReleaseLibrary?

Процедуры вызываются в главном модуле программы в процедуре main автоматически. Вам никогда не придётся вызывать данные процедуры в ручную. Для этих процедур генерируется специальное внутреннее имя, это необходимо для уникальности имен, ведь библиотечных модулей может быть в программе сколько угодно, соответственно сколько библиотек столько и процедур InitLibrary и ReleaseLibrary.

‘Использование модулей
import Library1
import Library2

‘Старт программы
sub main
(автоматический вызов процедуры InitLibrary из модуля Library1)
(автоматический вызов процедуры InitLibrary из модуля Library2)
 .
Блок программы
.
(автоматический вызов процедуры ReleaseLibrary из модуля Library2)
(автоматический вызов процедуры ReleaseLibrary из модуля Library1)
end sub

Данный фрагмент показывает когда вызываются процедуры InitLibrary и ReleaseLibrary

Обратите внимание, что вызов процедур ReleaseLibrary выполняется в обратном порядке. Это необходимо для организации стёка и организации загружаемых динамических библиотек dll, в ходе выполнения программы. Например, если вы собираетесь использовать в модуле библиотеки dll динамически, то можно в процедуры InitLibrary и ReleaseLibrary написать следующий код:

dim hLibrary as pointer

sub InitLibrary
 hLibrary = LoadPackage ( "standart.bpl" )
end sub

sub ReleaseLibrary
 UnLoadPackage ( hLibrary )
end sub


Эдементы языка ForceBasic

Описание языка
Элементы языка ForceBasic

Используемые символы

Множество символов используемых в языке ForceBasic можно разделить на пять групп.

1. Символы, используемые для образования ключевых слов и идентификаторов (табл.1) и (табл.2). В эту группу входят прописные и строчные буквы английского и русского алфавита, а также символ подчеркивания. Как и в языках BASIC регистр символов не имеет значения.

Таблица 1

Прописные буквы латинского алфавита | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Строчные буквы латинского алфавита | a b c d e f g h i j k l m n o p q r s t u v w x y z
Символ подчеркивания | _

2. Группа прописных и строчных букв русского алфавита и арабские цифры (табл.2).

Таблица 2

Прописные буквы русского алфавита | А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я
Строчные буквы русского алфавита | а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
Арабские цифры | 0 1 2 3 4 5 6 7 8 9

3. Знаки нумерации и специальные символы (табл. 3). Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций.

Таблица 3

Символ | Наименование | Символ | Наименование
, | запятая | ) | круглая скобка правая
. | точка | ( | круглая скобка левая
: | двоеточие | < | меньше
' | апостроф | > | больше
/ | дробная черта | [ | квадратная скобка
\ | обратная черта | ] | квадратная скобка
~ | тильда | # | номер
* | звёздочка | ^ | степень
+ | плюс | = | равно
- | минус | " | кавычки

4. Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).

5. Кроме выделенных групп символов в языке ForceBasic широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр (табл.4).

Управляющая последовательность | Наименование | Шеснадцатеричная замена
\a | Звонок | &H7
\b | Возврат на шаг | &H8
\t | Горизонтальная табуляция | &H9
\n | Переход на новую строку | &HA
\' | Двойные кавычки " | &H22
\r | Возврат каретки | &HD
\f | Перевод формата | &HC
\0 | Ноль-символ | &H0
\\ | Обратная дробная черта | &H5C

Константы

Константами называются перечисление величин в программе. В языке ForceBasic константа может иметь следующие типы: small, byte, short, word, long, integer, dword, single, double, extendet, pointer, boolean. т.е все стандартные типы кроме string. Если необходимо строковая или символьная константа, то можно объявить константу директивой $define.

Общий вид объявления констант

[public/private] имя_константы as тип_данных = выражение-константа

Выражение-константа – это выражение в котором нет переменных, только числа и другие константы объявленные раньше.

Идентификатор

Идентификатором называется последовательность цифр и букв, а также специальных символов, при условии, что первой стоит буква или специальный символ. Для образования идентификаторов могут быть использованы строчные или прописные буквы латинского или русского алфавита. В качестве специального символа может использоваться символ подчеркивание (_). Два идентификатора для образования которых используются совпадающие строчные и прописные буквы, считаются одинаковыми. Например: abc = ABC, A128B = a128b.

Важной особенностью является то, что компилятор допускает любое количество символов в идентификаторе. Идентификатор создается на этапе объявления переменной, функции, структуры, класса и т.п. после этого его можно использовать в последующих операторах разрабатываемой программы. Следует отметить важные особенности при выборе идентификатора.

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

Во вторых, следует обратить особое внимание на использование символа (_) подчеркивание в качестве первого символа идентификатора, поскольку идентификаторы построенные таким образом, что, с одной стороны, могут совпадать с именами системных функций и (или) переменных.

Ключевые слова

Ключевые слова - это зарезервированные идентификаторы, которые наделены определенным смыслом. Их можно использовать только в соответствии со значением известным компилятору языка ForceBasic.

Перечень ключевых слов:

private | public | type | sub | function
end | import | class | const | integer
long | double | single | word | dword
short | small | extendet | byte | declare
for | select | case | if | then
do | loop | while | return | else
single | segment | enum | exit | asm
library |  |  |  |

Ключевые слова могут быть использованы в качестве идентификаторов. Например, в системном модуле языка ForceBasic имеется перегруженная функция exit, хотя exit является зарезервированным словом.

Совет: Всегда создавайте идентификаторы отличные от резервных слов.

Использование комментариев

Комментарий - это набор символов, которые игнорируются компилятором.

В ForceBasic’ке имеется два типа комментариев – это одинарные кавычки и решётка. Компилятор игнорирует весь текст после символов (‘) и (#) до конца строки.

' Комментарий
# Тоже комментарий
dim i as integer, j as integer ' Коментарий


Переменные перечилимого типа (enum)

Описание языка
Переменные перечеслимого типа (enum)
Переменная, которая может принимать значение из некоторого списка значений, называется переменной перечислимого типа или перечислением.

Объявление перечисления начинается с ключевого слова enum и имеет два следующий формат представления:

Общий вид

[public/private] enum Имя_Перечисления
Const1 = число1
Const2 = число2
Const3 = число3
…
ConstN = числоN
end enum

Организация перечисления

Объявление перечисления задает тип переменной перечисления и определяет список именованных констант, называемый списком-перечисления. Значением каждого имени списка является некоторое целое число.

Переменная типа перечисления может принимать значения одной из именованных констант списка. Именованные константы списка имеют тип integer. Таким образом, память соответствующая переменной перечисления, это память необходимая для размещения значения типа integer.

Переменная типа enum могут использоваться в индексных выражениях и как операнды в арифметических операциях и в операциях отношения
Список-перечисления содержит одну или несколько конструкций вида:

идентификатор [= константное выражение]

Каждый идентификатор именует элемент перечисления. Все идентификаторы в списке enum должны быть уникальными.

Использование элементов перечисления должно подчиняться следующим правилам:

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


Переменные

Описание языка
Переменные

Как и в любом языке программирования, в ForceBasic’ке переменные предназначены для хранения данных. Допустим, вы пишете программу, которая часто обращается к пользователю, предлагая ему ввести данные. Можно попытаться придать такой программе личностный оттенок. Например каждый раз, когда потребуются данные, она будет отображать имя пользователя. В таких случаях вместо того, чтобы писать одну программу для пользователя Иванова, другую - для Петрова и так далее, объявите переменную, в которой будет хранится имя пользователя. При запуске программы он введёт свой имя, которое будет сохранено в переменной, и программа будет к ней обращатся для отображения имени пользователя.

Переменным выделяется место в памяти для хранения значений, к которым придётся обращаться в дальнейшем. Переменные объявленные за пределами процедуры или функции хранятся в сегменте данных, а переменные объявленные в блоке процедуры или функции хранятся в стёке, и при завершении процедуры удаляются из памяти.

Общий вид

[public/private/dim] [byval/byref] Имя_переменной as Тип_переменной

Объявление переменных

Переменные объявляются перед их первым использованием. Для объявления переменной используется оператор dim, за которым помещается имя переменной и её тип, например:

dim Discount as integer
dim UseName as string

В одной строке можно объявить несколько переменных:

dim Meters as integer, Inches as integer, centimeters as integer

Синтаксис языка ForceBasic допускает объявление переменных не указывая ключевое слово as и тип переменной. В этом случае необходимым будет указание после имени переменной символы, или группу символов соответствующих типу данных:

dim UserName$, Discount%

Иногда бывает полезным при создании переменной указать её первоначальное значение. Для этого ForceBasic допускает объявление переменных с присвоением значения:

dim UserName$="Иванов", Discount%=10

Совет: Если вам необходимо точно определить первоначальное значении переменной используйте этот стиль, т.к это помогает экономить размер кода и читаемость программы.

Переменная как указатель

ForceBasic, как и C++ допускает объявление типизированных указателей. Например, объявление dim byref Count as long означает, что будет создан указатель типа long на ячейку памяти, в которой содержатся данные переменной. ForceBasic автоматичеси не выделяет память под переменную. В данном случае память выделится под указатель, размеров в 4 байта. Для того, что бы использовать переменную, необходимо выделить память. Выделение памяти производится с помощью оператора new. Удаление переменной производится оператором delete.

Следующий пример демонстрирует использование указателей:

import console

'Объявление типизированного указателя
dim byref Var as long

'Старт программы
sub main

   'Выделение памяти
   set Var = new Long
   'Использование переменной Var
   Var = 5
   'Удаление из памяти
   delete Var

end sub

Типы переменных:

Типы | Кол-во байт | Диапазон
small | 1 | -128 .. 127
byte | 1 | 0 .. 255
short | 2 | -32768 .. 32767
word | 2 | 0 .. 65535
long/integer | 4 | -2147483648 .. 2147483647
dword | 4 | 0 .. 4294967295
single | 6 | -3.4e38 .. 3.4e38
double | 8 | -1.7e308 .. 1.7e308
extendet | 10 | -3.4e4932 .. 3.4e4932
pointer | 4 | 0 .. 4294967295
boolean | 1 | true/false
string | 8+кол-во символов |

Область видимости переменной

Область видимости является одной из характеристик переменной, определяющей раздел приложения, в котором её можно использовать. Если переменная объявлена внутри процедуры, то доступ к ней возможен только из кода данной процедуры. Для остальной части приложения эта переменная не существует. Если область видимости переменной ограничена процедурой, то такая переменная называется локальной.
Предположим, создана процедура Calc_Sum, вычисляющая сумму всех чётных чисел в диапазоне от 0 до 100. Вариант реализации такого кода следующий.

import console

sub Calc_Sum
dim i as integer
dim Sum as integer

   for i = 0 to 100 step 2
      Sum = Sum + 1
   next
   print "The sum is " + str$(Sum)
end sub

sub main
   Calc_Sum
end sub

Здесь i и Sum – локальные переменные процедуры Calc_Sum. При попытке присвоить значение переменной Sum внутри другой процедуры ForceBasic создаст другую переменную Sum, а на переменной Sum подпрограммы Calc_Sum это никак не отразится.
Иногда требуется переменная с большей областью видимости, например, при использовании её во всех процедурах модуля. Такие переменные имеют область видимости модуля, и к ним имеется доступ из всех процедур данного компонента. Можно объявить все переменные в разделе определений модуля, но нужно быть очень внимательным. Процедуры в модуле получат доступ ко всем переменным, поэтому к их изменению нужно относится осторожно.
Если переменная должна быть доступна всему приложению, то она объявляется как Public и имеет глобальную видимость (из всех частей приложения). При объявлении таких переменных оператор Public помещается на место Dim.


Массивы

Описание языка
Массивы

Массивы являются стандартной структурой данных в любом языке программирования. В отличие от переменной, содержащей один объект (число, дату или строку), массив может содержать набор связных между собой данных. Массив, как и переменная, имеет имя, а к его значению обращаются с помощью индекса.
Доступ к элементам массива осуществляется посредством указания идентификатора массива со значениями индексов, заключённых в круглые скобки.

Объявление массивов

Следующий пример демонстрирует создание массива:

dim ArrayName(128) as byte

ArrayName – идентификатор массива. 128 – количество элементов в массиве.

Создание многомерных массивов

dim Users(5,5,5) as string

Индекс любого массива в ForceBasic’ке начинается с нуля.


Пользовательские типы данных

Описание языка
Пользовательские типы данных

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

Общий вид

[public/private] type Имя_Типа
Field1 as Тип_поля
Field2 as Тип_поля
Field3 as Тип_поля
…
FieldN as Тип_поля
end type

Объявление типов данных

В ForceBasic’ке как и в Visual Basic’ке определение пользовательского типа данных начинается с ключевого слова type, и заканчивается группой слов end type.
В следующем фрагменте кода показано объявление и использование пользовательского типа Vector.

'
' Определение пользовательского типа
'
type Vector
   x as integer
   y as integer
   z as integer
end type

'
' Функция заполнения полей
'
function CreateVector (x as integer, y as integer, z as integer) as Vector
   return.x = x
   return.y = y
   return.z = z
end function

sub main
dim v as Vector
   v = CreateVector (1,2,3)
end sub

После выполнения программы: v.x = 1, v.y = 2 и v.z = 3.

Переопределение типов (typedef)

Общий вид

[public/private] typedef Имя_нового_типа as Тип_данных

Иногда программист сам не знает, какой тип назначать переменным. Допустим, вы пишете программу вычисляющая дробные значения, и вы точно не знаете какой тип лучше использовать single(с одинарной точностью) или double(с двойной точностью). Вы можете переопределить один из типов данных и создать новый тип, который будет интерпретироваться как один из типов. Например:

'
' Новый тип данных 'Дробь' интерпретируется как single
'
typedef Дробь as single

sub main
dim Result as Дробь
   Result = (1.56 / 2)
end sub

Описание с префиксом typedef описывает не новую переменную данного типа, а новое имя этого типа.


Процедуры и функции

Описание языка
Процедуры и функции

Процедура – это блок операторов, выполняющих определённую задачу. Он расположен внутри пары операторов sub…end sub и вызывается по имени. Функции похожи на подпрограммы, но возвращают результат. Операторы процедуры-функции помещаются между операторами function…end function.

Общий вид процедуры

[public/private] sub Имя_процедуры (Параметры_процедуры)

   блок операторов

end sub

Общий вид функции

[public/private] function Имя_функции (Параметры_функции) as Тип_данных

   блок операторов

end function

Объявление процедур и функций

Как вы уже заметили в ForceBasic’ке описание процедур и функций очень похожи как в Visual Basic’ке, только есть небольшие отличии. Например, идентификатор в функции предназначенный для возвращения значения называется всегда return. т.е для того что бы функция вернула значение единицу необходимо писать следующее выражение: return = 1, а не Имя_функции = 1 как в Visual Basic’ке. В процедуре такого идентификатора нет.

Передача параметров

По умолчанию все параметры процедур или функций передаются по ссылке, данная характеристика параметра определяется ключевыми словами byref и byval перед описанием имени аргумента и его типа. Соответственно ключевое слово byval, означает, что параметр будет передаваться по значению. Главное достоинство передачи параметров по ссылке это экономия памяти. т.е при передачи параметров типа byte или word не занимает много памяти, а если тип параметра является структурой сложного типа, или класса, то проще передать в процедуру или функцию ссылку на аргумент, тогда длина параметра составит всего лишь 4 байта. Это значительно сэкономит размер параметра и приложение станет работать эффективнее. Другим достоинством передачи параметра по ссылке является возможность изменения значения переменной из процедуры или функции. Количество передаваемых параметров неограниченно. Ограничение количества параметров существует только для процедур и функций, чьи параметры объявлены как (…).

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

import console

sub myProc (byval Left%, byref Top%, Width%, Height as integer)
   Left% = Left% + 1
   Top% = Top% + 1
   Width% = Width% + 1
   Height% = Height% + 1
end sub

sub main
dim Слева as integer = 0
dim Сверху as integer = 0
dim Ширина as integer = 320
dim Высота as integer = 200

   myProc Слева, Сверху, Ширина, Высота
   print Слева," ", Сверху," ", Ширина," ",Высота
end sub

Результатом выполнения программы будет следующее: 0 1 321 201.
Как видно из результата увеличение переменной ‘Слева’ на единицу не произошло, т.к в процедуре myProc параметр Left передаётся по значению.

Тип переменной и параметра может не совпадать.

…
sub Test (Argument1 as byte)
...
end sub

dim Var as long

Test (Var)
…

В данном примере переменная Var типа long передаётся в процедуру Test параметром типа byte. Компилятор ForceBasic’ка автоматически генерирует код, который преобразовывает переменную Var типа long в тип byte. После завершения выполнения процедуры Test выполняется обратное преобразование типов. Но данные преобразования существуют только числовых типов. Если к примеру в процедуре Test тип параметра Argument был объявлен как string, то компилятор выдал ошибку “error 92: Оператор string = long не найден”.

Возвращаемое значение функции. Идентификатор return

Внутри функций присутствует идентификатор return, который является ссылкой на возвращаемое значение. Идентификатор return имеет тип данных функции. Например реализуем простую функцию сложения двух чисел:

function summa (x1 as integer, x2 as integer) as integer
return = x1 + x2
end function

Взаимодействие с функциями множественных параметров

Существует ещё один стиль передачи параметров в функции и процедуры с объявлением (…). При объявлении таких процедур и функций в теле функции необходимо описывать обработчик каждого параметра учитывая её тип. Для этого существует идентификатор массива Arguments класса Argument в процедурах и функциях. Предположим вам необходимо создать процедуру ‘Печать’, которая, по сути является аналогом процедуры print. Как известно в процедуре print может быть неограниченное количество аргументов различного типа.

import console

sub Печать (...)
dim i as dword
dim byref pString as string
dim byref pByte as integer

for i = 0 to ArgCount - 1

   if Arguments(i).argType = tpSTRING then
      set pString = Arguments(i).ptr
      print pString
   end if

   if Arguments(i).argType = tpBYTE then
      set pByte = Arguments(i).ptr
      print pByte
   end if

next
end sub

sub main
   Печать "ABC","D","EFGH", 10
end sub

Результат выполнения: ABCDEFGH10

Перегрузка операций

ForceBasic как и С++ допускает перегрузку операций в процедурах и функциях. Это даёт возможность программисту использовать один и тоже идентификатор для различного рода действий. Например:

import console

function Сумма% (v1%, v2%)
   return = v1% + v2%
end function

function Сумма% (v1%, v2%, v3%)
   return = v1% + v2% + v3%
end function

sub main
dim ret as integer = Сумма (1,2)

   print ret, "; "
   ret = Сумма (1,2,3)
   print ret, "; "
end sub

Результат выполнения программы: 3; 6

В ForceBasic’ке перегруженными могут быть любые процедуры и функции кроме процедуры main и процедуры-деструктор в классах.

Вызов процедур и функций

При вызове процедуры задаются значения всех аргументов, указанных в её определении, причём в том же порядке. Для вызова процедуры используется оператор call, содержащий имя процедуры и её аргументы в круглых скобках. Например:

call Имя_процедуры (Параметр1,Параметр2,Параметр3,...,ПараметрN)

Значение аргумента должно соответствовать объявленному типу. Если процедура ожидает значение типа integer, то передавать ей значение string нельзя.

В ForceBasic’ке, как и во многих языках программирования процедуры и функции можно вызывать без указания ключевого слова, в данном случае call. Все параметры функций должны быть заключены в круглые скобки, а параметры процедуры не обязательно заключены в круглые скобки.

Следующие виды конструкций будут правильны:

...
print ("My favorite language is ForceBasic!")
print "My favorite language is ForceBasic!"
call print "My favorite language is ForceBasic!"
...

Декларирование процедур и функций из DLL

Перед использованием процедур и функций, располагающихся в библиотеках DLL, в ForceBasic’ке необходимо их продекларировать. Для этого нужно указать имя функции, внутреннее имя функции в DLL библиотеки, библиотеку DLL и точное описание каждого из параметров. Декларация начинается с ключевого слова declare. Декларация осуществляется в области описания модуля, т.е как правило в начале модуля до объявлении функции main.

Синтаксис декларации приведён ниже:

[public/private] declare [sub/function] Имя_Функции lib "Имя_библиотеки" [alias "Внутреннее_имя_функции"] (Описание_параметров) [as Тип_функции]

C | Pascal | VB | Rapid-Q | ForceBasic
ATOM | SHORT | byval as INTEGER | SHORT | SHORT
BOOL | BOOLEAN | byval as LONG | LONG | LONG
BYTE | BYTE | byval as BYTE | BYTE | BYTE
CHAR | CHAR | byval as BYTE | BYTE | BYTE
CHAR[20] | STRING[20] | as STRING | N/A in API Declarations | BYTE(20)
COLORREF | LONGINT | byval as LONG | LONG | LONG
DWORD | DWORD | byval as LONG | DWORD | DWORD
Windows handles ie. HDC | Windows Handles | byval as LONG | LONG | LONG
INT, UINT | INTEGER, DWORD | byval as LONG | INTEGER, DWORD | INTEGER,LONG
LONG | LONGINT | byval as LONG | LONG | LONG
LPARAM | LONGINT | byval as LONG | LONG | LONG
LPDWORD | ^DWORD | as LONG | BYREF as DWORD | BYREF as DWORD
LPINT, LPUINT | ^INTEGER | as LONG | BYREF as LONG | BYREF AS INTEGER
LPRECT | ^TRECT | as ANY | QRECT | BYREF as RECT
LPSTR, LPCSTR | PCHAR | byval as STRING | BYREF as STRING | BYREF as STRING
LPVOID | LONGINT | as ANY | LONG | POINTER
LPWORD | ^WORD | as INTEGER | BYREF as WORD | BYREF AS WORD
LRESULT | LONGINT | byval as LONG | LONG | LONG
NULL | NIL | byval as LONG | LONG | LONG
SHORT | SHORT | byval as INTEGER | SHORT | SHORT
WORD | WORD | byval as INTEGER | WORD | WORD
WPARAM | LONGINT | byval as LONG | LONG | LONG

Как видно из таблицы ForceBasic поддерживает практически все часто используемые типы данных при декларации функций из dll.

Подобные декларации можно делать публичными, тогда декларации станут доступны вне модуля.


Операторы

Описание языка
Операторы

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

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

Операнд - это константа, литерал, идентификатор, вызов функции, индексное выражение, выражение выбора элемента или более сложное выражение, сформированное комбинацией операндов, знаков операций и круглых скобок. Любой операнд, который имеет константное значение, называется константным выражением. Каждый операнд имеет тип.

Если в качестве операнда используется константа, то ему соответствует значение и тип представляющей его константы. Целая константа может быть типа small, byte, short, integer, long, word, dword..и.т.д, в зависимости от ее значения и от формы записи. Константа с плавающей точкой всегда имеет тип double. Константу с плавающей точкой типа single можно задать только следующим образом:

const myConst as single = 1.2

Константа содержащая значение с плавающей точкой, образованная без указания типа, будет типом double.

Арифметические операторы

Операция | Оператор | Приоритет | Описание
Сложение (Addtion) | + | 2 | Операция сложения (включая строки) Пример: 3+4=7; "Hel" + "lo" = "Hello"
Вычитание (Subtraction) | - | 2 | Операция вычитания. Пример: 5-2=3
Сложение / Сцепление строк (Addtion) | & | 2 | Пример: "Hel" & "lo" = "Hello"
Приращение (Increment) | ++ | 3 | Операция приращения. Пример: 5++ = 6
Степень (Exponental) | ^ | 3 | Возведение в степень. Пример: 5^2=25
Отрицание (Negation) | - | 10 | Пример: dim a%, b% a = 5 b = -a 'b=-5
Умножение (Multiply) | * | 4 | Операция умножения. Пример: 5*2=10
Деление (Division) | / | 4 | Операция деления. Пример: 10/2=5
Смещение битов (Left Bit Shoft) | shl | 4 | Пример: 10 shl 2. В числе 10 все виты будут смещены влево на 2-е позиции.
Смещение битов (Right Bit Shoft) | shr | 4 | Пример: 10 shl 2. В числе 10 все виты будут смещены вправо на 2-е позиции.
Деление с остатком (Modulus) | mod | 4 | Пример: 15 mod 10 = 5
Получение адреса (Reference) | ref | 9 | Оператор ref используется для получение адреса переменной или ячейки памяти. Пример: dim ptr as pointer, field as integer ptr = ref field
Установка адреса (set) | set | 9 | Оператор set устанавливает в переменную адресс. Пример: dim byref a as byte, b as byte b=1 set a = ref b 'a ссылается на b a=4

Операторы сравнения

Операция | Оператор | Приоритет | Описание
Сравнение (Equality) | = | 0 | Операция сравнения между двумя операндами. Возвражает true, если операнды равны. Пример: 2 = 2; "Copter" = "Copter"
Не равно (Inequality) | <> | 0 | Операция сравнения между двумя операндами. Возвращает true, если операнды не равны. Пример: 2 <> 3; "COPTER" <> "Copter"
Меньше (Less then) | < | 6 | Возвращает true, если первый операнд строго меньше второго. Пример: 2<3
Больше (Greater than) | > | 0 | Возвращает true, если первый операнд строго больше второго. Пример: 3>2
Меньше либо равно (Less then or Equal) | <= | 6 | Возвращает true, если первый операнд меньше либо равен второму. Пример: 2<=3
Больше либо равно (Greater then or Equal) | >= | 0 | Возвращает true, если первый операнд больше либо равен второму. Пример: 3>=2

Логические операторы

Операция | Оператор | Приоритет | Описание
Логическое не (Logical complement) | not | 1 | Инвентирует все биты в операнде. Пример: not true = false
Коньюнкция (Conjunction) | and | 3 | Логическое и. Пример: 5 and 3 = 1
Дизюнкция (Disjunction) | or | 3 | Логическое или. Пример: 5 or 3 = 7
Exclusive "or" | xor | 3 | Пример: 5 xor 3 = 6


Директивы препроцессора

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


Директива $INCLUDE

Директивы
$INCLUDE (Директива препроцессора)

Схема команды: .$INCLUDE "имя_файла"

Алгоритм работы:

  • Включает файл в исходный код программы на стадии препроцессора

Применение:

Помогает разбивать код программы на модули. Необходимо для написания больших программ.

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

При отсутствии файла в текущем каталоге, то поиск файла производится в стандартных директориях операционной системы, задаваемых командой PATH.

Директива $include может быть вложенной, т.е. во включаемом файле тоже может содержаться директива $include, которая замещается после включения файла, содержащего эту директиву.


Директива $DEFINE

Директивы
$DEFINE (Директива препроцессора)

Схема команды: .$DEFINE переменная_препроцессора [строка_соответствия]

Алгоритм работы:

  • Создаёт переменную препроцессора.
  • Если строка соответствия не задана, то создаёт пустую переменную, которая в выражении будет давать true, а в коде программы будет заменяться на пробел.

Применение:

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

Директива $define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами. Идентификаторы, заменяющие текстовые или числовые константы, называют именованными константами. Идентификаторы, заменяющие фрагменты программ, называют макроопределениями.

Пример

$DEFINE myVar1 10
$DEFINE myVar2 20
$IF myVar1 and myVar2
$DEFINE myVar3 30
$ELSE
$DEFINE myVar3 40
$ENDIF
; Переменная препроцессора myVar3 будет равнятся 30
.CODE
mov eax, myVar3
exit

Директива define может интерпритировать аргумент второго уровня т.е:

$DEFINE myVar1 $DEFINE myVar2 10
myVar1 ; myVar1 интерпритируется как $DEFINE myVar2 10

.CODE
   mov eax, myVar2 ;значение в регистре eax будет равнятся 10

См.так же:

    $IF | $ENDIF
$ELSE | $IFDEF
$ELSEIF | $IFNDEF


Директива $IF

Директивы
$IF (Директива препроцессора)

Схема команды: .$IF выражение

Алгоритм работы:

  • Выполняет ветвление на стадии препроцессора
  • Директива $IF всегда должна завершаться директивой $ENDIF

Применение:

В этой директиве выполняются опреации с переменными объявленными директивой $DEFINE.

Пример:

    $DEFINE myVar1 10
    $DEFINE myVar2 20
    $IF myVar1 and myVar2
    $DEFINE myVar3 30
    $ENDIF
    ; Переменная препроцессора myVar3 будет равнятся 30
    .CODE
    mov eax, myVar3
    exit

См.так же:


Директива $IFDEF

Директивы
$IFDEF (Директива препроцессора)

Схема команды: .$IFDEF выражение

Алгоритм работы:

  • Идентичен директивы $IF

Применение:

В этой директиве выполняются опреации с переменными объявленными директивой $DEFINE.

Пример:

    $DEFINE myVar1 10
    $DEFINE myVar2 20
    $IFDEF myVar1 and myVar2
    $DEFINE myVar3 30
    $ELSE
    $DEFINE myVar3 40
    $ENDIF
    ; Переменная препроцессора myVar3 будет равнятся 30
    .CODE
    mov eax, myVar3
    exit

См.так же:


Директива $IFNDEF

Директивы
$IFNDEF (Директива препроцессора)

Схема команды: .$IFNDEF выражение

Алгоритм работы:

  • Выполняется, если выражение ложное

Применение:

В этой директиве выполняются опреации с переменными объявленными директивой $DEFINE.

Пример:

    $DEFINE Variable 5
    $IFNDEF Var
    $DEFINE Var "12345"
    $ENDIF
    ; Переменная препроцессора Var после выполнения кода будет равнятся "12345"

См.так же:


Директива ELSE

Директивы
$ELSE (Директива препроцессора)

Схема команды: .$ELSE

Алгоритм работы:

  • Выполняет ветвление
  • Выполняется с парой $IF и $ENDIF

Применение:

Без комментариев

Пример:

    Исходный код
    $DEFINE Var1
    .CODE
    $IF Var
    mov eax, 5
    $ELSE
    mov eax, ebx
    $ENDIF
    После выполнения препроцессора
    .CODE
    mov eax, ebx

См.так же:


Директива $ERROR

Директивы
$ERROR (Директива препроцессора)

Схема команды: .$ERROR строка

Алгоритм работы:

  • Симуляция ошибки

Применение:

С помощью этой директивы можно симулировать ошибку компиляции.

Пример:

    $DEFINE Dos
    $IFNDEF Win32
    $ERROR Компилировать нужно из под 32-х разрядной Windows
    $ELSE
    DECLARE MsgBox LIB "User32" ALIAS "MessageBoxA"
    .DATA
    title db "Заголовок окна", 0
    message db "Текст сообщения", 0
    .CODE
    pushp 0
    pushpa offset message
    pushpa offset title
    pushp 0
    call MsgBox, 4
    exit
    $ENDIF


Директива $STACK

Директивы
$STACK (Директива препроцессора)

Схема команды: .$STACK [размер_стёка_в_байтах]

Алгоритм работы:

  • Обявление фиксированного размера стёка
  • Если размер 'размер_стёка_в_байтах' не задан, то применяется размер стёка по умолчанию.

Применение:

С помощью этой директивы можно явно указать размер стёка. Если необходимо создать автоматический размер стёка, то лучще использовать директиву $AUTOSTACK

Пример:

    $STACK 10000
    .CODE
    mov eac, DWORD 100
    @lab:
    push     eax
    loop @lab

См.так же:

    Директива $AUTOSTACK
    Директива $ASINC


Директива .AUTOSTACK

Директивы
$AUTOSTACK (Директива препроцессора)

Схема команды: .$AUTOSTACK [размер_стёка_в_байтах]

Алгоритм работы:

  • Обявление автоматического размера стёка
  • Если размер 'размер_стёка_в_байтах' не задан, то применяется размер стёка по умолчанию.

Применение:

Если в программе происходит переполнение стёка, то выполняется автоматическое увеличение стёка на N байт.
Размер увеличения N байт стёка можно задать при помощи директивы $ASINC

Пример:

    $AUTOSTACK 10
    $ASINC 100
    .CODE
    mov eax, DWORD 10000
    @lab:
    push     eax
    loop @lab
    ; Ошибки переполнения стёка не будет

См.так же:

    Директива $STACK

    Директива $ASINC


Директива .ASINC

Директивы
$ASINC (Директива препроцессора)

Схема команды: .$ASINC [размер_увеличения_стёка_в_байтах]

Алгоритм работы:

  • Задаёт знасение увеличение размера стёка при его переполнении

Применение:

Размер увеличения стёка по умолчанию равен 2056 байт. Если значение увеличение стёка задано 0 или меньше 0, то размер увеличения стёка восстанавливается по умолчанию.
Директива $ASINC имеет смысл после использовании директивы $AUTOSTACK

Пример:

    $AUTOSTACK 10
    $ASINC 100
    .CODE
    mov eax, DWORD 10000
    @lab:
    push     eax
    loop @lab
    ; Ошибки переполнения стёка не будет

См.так же:

    Директива $STACK

    Директива $AUTOSTACK


Массивы

Описание языка
Директивы

import

Общий вид:

import модуль

Директива import подключает модуль *.unit к программе.
Например:

import windows.MessageBox

к программе будет подключен модуль в папе Units/Windows/MessageBox.unit.

import windows.*

к программе будут подключены все модули *.unit в папке Units/Windows

import импортирует описание все деклараций, структур, типов, функций, классов…и.т.д но сам байт-код не импортируется. Линковщик автоматически выявляет ссылку на модуль *.unit и компонует программу вместе с данным модулем.

option

Общий вид:

option идентификатор_опции [on/off]

Директива установки опций.

Список опций:

  • vbdeclare - декларации в стиле Visual Basic.
  • explicit - все переменные строго объявляются.

resource

Общий вид:

resource идентификатор_ресурса as "файл"

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

Пример:

import console

resource Res as "data1.txt"

sub main

print "Resource Size = ", Res.GetSize(), "\n"
input
print Res.GetTextData, "\n"
input

end sub

$document
(Автоматизация документирование программы)

При написании программы программист пишет комментарии к функциям, струкктурам данных, классам, и другим элементам программы, затем часто приходится писать дополнительную документацию к программе. В компиляторе языка forcebasic (pb.exe) имеется встроенное средство, которое способно создавать документацию из исходного кода программы. Задача данного средства состоит в том, чтобы облегчить работу программмиста. Данное средство выделяет комментарии программы, и автоматически формирует html документ, который содержит структуру программы или модуля с комментариями.

Для использования средства, необходимо соблюдать правитьность написания коментариев. Например, если вы хотите дать описание функции, то необходимо добавить комментарии перед объявлением функции, причём между строк коментариевв не должно быть пробелов

Создание документации модуля

Для автоматического создания документации к модулю, необходимо указать в исходнике модуля директиву $document

Общий вид

$document "Путь\имя_файла_документации.htm"

При указании директивы document компилятор формирует описание программы в виде html кода и сохраняет его в файле указанном в директиве.

Пример

'
' Подробное описание модуля,
' назначение модуля, суть модуля,
' главные возможности модуля.
' !не нужно описывать стуктуру
' модуля т.к она создаётся автомати
' чески.
'
' autor: Metlashevskiy Egor
'
Unit example
$document "example.htm"

'
' функция ничего не делает, она
' нужна для создание этого
' комментария
'
sub function1
end sub

Откомпелируйте программу, должен появится файл example.htm с описанием программы


Макросы

Описание языка
Макросы

Макросы в языке ForceBasic это системные функции, которые позволяют производить нестандартные действия, действия которые нельзя запрограммировать обычными функциями в исходном коде, например с помощью макроса resource можно внедрить любой файл в тело программы и получить ссылку на него при выполнения программы…и.т.д.

Макрос subptr

Общий вид:

subptr ( Идентификатор_функции ) as dword

Макрос subptr возвращает адрес функции, в качестве параметра выступает идентификатор функции. Данный макрос часто применяется при программировании событий (Events) визуальных компонентов.

Макрос subptrclass

Общий вид:

subptr ( Идентификатор_класса, Идентификатор_функции ) as dword

Макрос subptr возвращает адрес метода класса, в качестве параметра выступает идентификатор класса и идентификатор функции. Данный макрос часто применяется при организации виртуальных методов самим компилятором.

Макрос new

Общий вид:

new Тип данных/Класс[( Параметры конструктора)]

Макрос new выделяет память динамически под тип данных или класс и возвращает указатель на выделенную область данных. Если в качестве параметра макроса new выступает имя класса с параметрами конструктора, то макрос new после выделения памяти выполняет процедуру конструктора.

Макрос new часто используется в группе с макросом set.

set New_Class = new MyClass()

Но, такой вид конструкции не всегда обязателен, возможно, не понадобится использовать идентификатор-ссылку на данный класс или тип данных, тогда следующий вид конструкции то же имеет место.

new MyClass()

Макрос delete

Общий вид:

delete сылка

Макрос delete высвобождает память выделенной макросом new, если в качестве параметра указан экземпляр класса, то перед высвоюождением памяти макрос delete вызывает деструктор класса.

Макрос typename

Общий вид:

typename( выражение ) as string

Макрос typename вычисляет выражение, и возвращает имя типа полученного значения/класса.

Макрос procaddress

Макрос procaddress, возвращает физический адрес процедуры.

dim wndcls as WNDCLASS
wndcls.style = CS_HREDRAW or CS_VREDRAW or WS_MAXIMIZEBOX
wndcls.lpfnwndproc = procaddress(MyWndProc) ‘ MyWndProc – ForceBasic процедура.


Управление выполнением программы

Описание языка
Управление выполнением программы

Управление выполнением программы

Свойство языков программирования проверять внешние условия и соответственно реагировать придаёт им определенную гибкость, позволяя управлять ситуацией и решать возникающие проблемы с помощью небольшого числа команд. Программы не являются монолитным набором команд, каждый раз производя одни и те же вычисления. Поведение команд корректируется в зависимости от входных данных, внешних условий, типа щелчка мыши, настройки периферийных устройств и даже от аварийных ситуаций, генерируемых самоё программой. Например, программа, вычисляющая средние значения, продолжает работу, даже если ей не предоставлены данные. Ей придётся выполнить деление на ноль, эти условия выявятся, и действие программы будет соответствующим.

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

  • if…then
  • if…then…else
  • select case

Оператор if…then

Оператор if…then вычисляет условие, если оно равно true, то выполняется оператор, следующий за ключевым словом then. Синтаксис оператора if допускает запись как в одну, так и в несколько строк. Для выполнения одного оператора, следующего за конструкцией if…then, используйте запись в одну строку.

if condition then statement

Можно выполнить множество операторов, разделив их двоеточиями.

if condition then statement: statement: statement

Пример оператора if в виде одной строки показан ниже.

if Month(date) = 1 then Year = Year + 1

Можно разбить его на несколько строк.

if Month(date) = 1 then
Year = Year + 1
end if

Оператор if…then…else

Разновидностью оператора if…then…else, выполняющий один блок операторов, если условие равно true, и другой – если false.

Синтаксис оператора if…then…else:

If condition then
Statementblock-1
Else
Statementblock-2
End if

Оператор select case

Оператор select case вычисляет выражение, расположенное вверху всей структуры. Результат вычисления сравнивается с несколькими значениями и если совпадает с одним из них, то выполняется соответствующий блок операторов. Приведём пример синтаксиса оператора select case:

select case expression
case value1
statementblock-1
case value2
statementblock-2
case else
statementblock
end select

Оператор цикла do…loop

Оператор do…loop реализует блок операторов, пока выполняется некоторое условие. При этом вычисляется некоторое выражение. Есть три разновидности операторов do…loop с одинаковой базовой моделью. Цикл выполняется, пока (while) условие равно true, до тех пор (Until), пока условие не станет равным true, или в отсутствие while/until цикл выполняется бесконечно. Если цикл выполняется бесконечно, программист, использующий оператор цикла do…loop должен сам программировать выход из него. Выход осуществляется командой exit do.

Общий вид конструкции do…loop:

do
statementblock
loop [while condition | until condition]

Пример оператора цикла конструкции do…loop:

do
x = x + 1
if x >=10 then exit do
loop

Пример оператора цикла конструкции do…loop while:

do
x = x + 1
loop while x <11

Пример оператора цикла конструкции do…loop until:

do
x = x + 1
loop until x = 10

Оператор for…next

Цикл for…next – один из старейших операторов цикла, применяемых в языках программирования. При его использовании необходимо знать заранее число итераций в теле цикла. В данном цикле используется переменная (называемая счётчиком цикла), значение которой увеличивается или уменьшается при каждом повторении цикла. Оператор цикла for…next имеет следующий синтаксис:

for counter = start to end [step increment]
{операторы}
next

Аргументы counter(счётчик), start(начало), end(конец) и increment(приращение) могут быть числами, или выражениями численного типа. Цикл выполняется столько раз, сколько требуется счётчику, чтобы достичь (или превысить) значения end.

Оператор exit

Оператор exit предназначен для преждевременного выхода из блока операторов в управляющей структуре, из цикла for или цикла do.

Общий вид оператора exit:

exit do|for

exit for – преждевременный выход из цикла for…next
exit do – преждевременный выход из цикла do…loop

После выполнения оператора exit прерывается основной блок операторов цикла, и программа переходит на блок операторов стоящих за циклом, в котором присутствует оператор exit. К примеру если в программе имеется вложенные циклы, то оператор exit во внутреннем цикле выходит только из внутреннего цикла, но не из всех циклов. Например:

for I = 0 to 5
for J= 0 to 5
exit for
Y = 10
next
‘ Цикл J – не выполняется, и Y не равно 10
next


Классы

Описание языка
Классы

Предназначение понятия класса, состоит в том, чтобы предоставить программисту инструмент для создания новых типов, столь же удобных в обращении сколь и встроенные типы. В идеале тип, определяемый пользователем, способом использования не должен отличаться от встроенных типов, только способом создания.
Тип есть конкретное представление некоторой концепции (понятия). Например, имеющийся в ForceBasic тип single с его операциями +, -, * и т.д. обеспечивает ограниченную, но конкретную версию математического понятия действительного числа. Новый тип создается для того, чтобы дать специальное и конкретное определение понятия, которому ничто прямо и очевидно среди встроенных типов не отвечает. Например, в программе, которая работает с телефоном, можно было бы создать тип trunk_module (элемент линии), а в программе обработки текстов - тип list_of_paragraphs (список параграфов). Как правило, программу, в которой создаются типы, хорошо отвечающие понятиям приложения, понять легче, чем программу, в которой это не делается. Хорошо выбранные типы, определяемые пользователем, делают программу более четкой и короткой. Это также позволяет компилятору обнаруживать недопустимые использования объектов, которые в противном случае останутся необнаруженными до тестирования программы.
В определении нового типа основная идея - отделить несущественные подробности реализации (например, формат данных, которые используются для хранения объекта типа) от тех качеств, которые существенны для его правильного использования (например, полный список функций, которые имеют доступ к данным). Такое разделение можно описать так, что работа со структурой данных и внутренними административными подпрограммами осуществляется через специальный интерфейс (каналируется).

Базовым элементом объектно-ориентирован¬ного программирования в языке ForceBasic является класс. Применение классов в языке ForceBasic делает его объектно-ориентированным. Класс в языке ForceBasic отвечает всем требованиям объектно-ориентированной системе.

Основные требования к объектно-ориентированной системе:

• инкапсуляция - внедрение в класс других классов
• полиморфизм - одно и то же сообщение, посланное различным объектам, приводит к выполнению разных операций
• наследование - новые классы могут наследовать данные и функциональность уже существующих классов
• динамическое связывание - новые классы могут могут динамически подключатся к системе

Стоит отметить, что область видимости присутствует не только в теле модуля, Но и в теле класса. По умолчанию любой элемент класса имеет статус public (публичный). Если элемент в последующем не должен использоваться, то его надо принудительно объявить как private.

Объявление классов

Для объявления класса в языке ForceBasic имеется одно ключевое слово class, после которого описывается название класса, класс наследования, процедуры, функции, свойства, конструкторы и деструкторы и.т.д.

Общий вид конструкции класса:

[public/private] class Имя_класса [: implements Класс_наследования]

описание переменных
описание методов
описание свойств
описание конструктора, деструктора

end class

Конструкторы и деструкторы

Конструктор - это метод класса, который вызывается автоматически при его создании, напротив, деструктор – это метод класса, который вызывается автоматически при уничтожении класса.
В отличии от конструктора, деструктор не может иметь параметров. В деструкторах невозможна перегрузка. Реализация кода конструктора и деструктора должна быть вне области описания класса. Следующий пример демонстрирует создание класса с конструктором и деструктором:

class Sample: implements Object

sub Sample ()
sub ~Sample ()

end class

sub Sample.Sample ()

end sub

sub Sample.~Sample ()

end sub

Здесь, метод Sample – конструктор, метод ~Sample – деструктор.
Как в языке C++ в языке ForceBasic для идентификации метода-деструктора, пишется ~(тильда), такое имя компилятор воспринимает как “деструктор”.

Когда вызываются конструкторы и деструкторы?

Конструкторы и деструкторы вызываются автоматически системой. т.е. программисту никогда не придётся вызывать методы конструктора и деструктора, хотя на это ограничений нет.

Конструктор вызывается автоматически при создании класса, вызывается сразу после успешного выделения памяти под экземпляр класса. Пример:

sub main

dim first_class as Sample ' Вызов конструктора Sample

if true then

dim second_class as Sample ' Вызов конструктора Sample

' Вызов деструктора Sample
end if

' Вызов деструктора Sample
end sub

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

В случае, если идентификатор класса объявлен за пределами функции или процедуры, то вызов конструктора и деструктора перебрасываются в процедуру инициализации модуля. Для обычной программы это процедура main, для библиотеки модулей это процедуры InitLibrary и ReleaseLibrary.

Объявление переменных в классах

Простые переменные в классах (или поля класса) объявляются также как и в теле функции. Например:

class Sample: implements Object

dim Field1 as integer
dim Field2 as long = 12345 ' Поле Field2 станет равным 12345 после вызова конструктора
dim Field3 as string

private _prv_Field as integer ' Поле типа integer в облясти видимости класса

end class

В классах нельзя создавать поля-указатели (byref). т.е нельзя скажем определить в классе public byref Field as integer, это сделано специально, для того что бы исключить целый класс ошибок работы с указателями.

Доступ к полям класса. Идентификатор this.

Доступ к полям класса из метода класса осуществляется с помощью идентификатора this. Идентификатор this – это обычная объектная переменная, которая передаётся через параметры метода по ссылке. Пример:

class Sample: implements Object

dim Field1 as integer
dim Field2 as long = 12345 ' Поле Field2 станет равным 12345 после вызова конструктора
dim Field3 as string

private _prv_Field as integer ' Поле типа integer в облясти видимости класса

function Test as integer

this.Field1 = 1
this.Field2 = this.Field2 + 1 ' Здесь поле Field2 = 12346
this.Field3 = "String1"

end function

end class

Создание методов

Метод класса – это процедура или функция, выполняющая определённые действия с классом. Как и обычные функции, методы класса могут быть перегруженными. Код метода может быть реализован как внутри класса (как в языке С#), так и за его пределами (как в языке C++). Методы реализованные вне класса должны быть принудительно объявлены в теле класса словом declare. Пример:

class Sample: implements Object

dim Field1 as integer

function OverloadMethod as integer
this.Field1 = 1
end function

function OverloadMethod (default_value as integer) as integer ' Перегрузка метода
this.Field1 = default_value
end function

declare function OverloadMethod (sum1 as integer, sum2 as integer) as integer

end class

'**
'* Релизация метода за пределами описания класса
'*
function Smaple.OverloadMethod (sum1 as integer, sum2 as integer) as integer
this.Field1 = sum1 + sum2
end function

У вас может возникнуть вопрос: Зачем нужны методы, реализация которых происходит за пределами области описания класса?

т.к компилятор языка ForceBasic компилирует строки исходного кода последовательно, он не может создать полное представление о структуре класса, пока не наткнётся на слова “end class”. Отсюда следует, что вызванный метод должен быть заранее объявлен в классе. В показанном выше примере в методе OverloadMethod нельзя вызвать метод OverloadMethod (default_value as integer), т.к этот метод не был заранее объявлен. Чтобы не сталкиваться с подобными проблемами лучше реализовывать методы вне области определения класса.

Производные классы. Наследование

Наследование – это один из элементов объектно-ориентированного программирования, который позволяет наследовать функциональную часть любого класса, на основе которой порождать новый класс с новыми функциями. Наследование значительно сокращает процесс разработки классов, и делает процесс более удобным. Для этого в языке ForceBasic заризервированно слово implements. В показанных выше примерах наследование использовалось в конструкции class имя_класса: implements имя_класса, но это не обязательно. Пример:

class Sample
implements Object

end class

В языке ForceBasic наследовать можно только один класс, во избежиния проблем с множественным наследованием, перекрёстным наследованием.

В новый класс наследуются все поля, методы, события, операторы класса, причём наследуются как публичные идентификаторы, так и частные. Пример:

'**
'* Шаблон класса для фигуры
'*
class Figure: implements Object
public x as single
public y as single
public color as long

sub Move (new_x as single, new_y as single)
x = new_x
y = new_y
 end sub
end class

'**
'* Класс отрисовки окружности
'*
class Circle: implements Figure
public radius as single
 sub Draw
' Рисование окружности
 end sub
end class

'**
'* Класс отрисовки прямоугольника
'*
class Rectangle: implements Figure
public width as single
public height as single
 sub Draw
 ' Рисование прямоугольника
 end sub
end class

Наследование классов, с конструкторами

Допустим мы имеем следующий класс с конструктором, который имеет параметры:

class Sample: implements Object
sub Sample (param1 as integer, param2 as integer)
end class

sub Sample.Sample (param1 as integer, param2 as integer)
...
end sub

class InheritsDemo: implements Sample (1,2)
...
end class

Класс InheritsDemo наследует класс Simple, c конструктором Sample (param1 as integer, param2 as integer). Данный конструктор будет вызван при создании класса InheritsDemo.

Стоить заметить, что наследовать классу InheritsDemo класс Sample можно только при указании аргументов конструктора класса Sample, если аргументы не указаны, например:
InheritsDemo: implements Sample, то произойдёт ошибка.

Вызов производных методов.

Унаследованные методы вызываются как и обычные методы создаваемого класса через конструкцию this.метод ( параметры метода ). Бывают случаи, когда имя метода наследуемого класса полностью совпадает с методом нового класса, тогда происходит перекрытие метода другим методом. Например:

class Parent: implements Object
private Name as string

sub SetName ( byval Name as string )
this.Name = “parent:” + Name
end sub
end class

class Child: implements Parent
sub SetName ( byval Name as string )
this.Name = “child:” + Name
end sub
end class

class CallParent: implements Child
sub SetChildName ( byval Name as string )
this.SetName Name ‘ Вызывается метод SetName класса Child
end sub
sub SetParentName ( byval Name as string )
this::SetName Name ‘ Вызывается метод SetName класса Parent
end sub
end class

Порожденный класс Child наследует метод SetName класса Parent, затем происходит добавление метода SetName к классу Child и метод SetName класса Parent перекрывается другим методом. Вызов перекрытого метода осуществляется через конструкцию this c двумя двоеточиями ‘::’- this::метод (параметры метода). В методе SetParentName показана реализация данной конструкции.

Подстановка методов

В выше приведённом примере метод метод SetName класса Child перекрывает метод SetName класса Parent. Происходит подстановка метода. При вызове метода Child.SetName вызывается метод SetName класса Child, а не метод SetName класса Parent. Это очень удобно при создании классов. Например, в языке ForceBasic класс-коллекция StringList пораждён из класса-коллекции Vector, с подстановкой методов Add, Item, Clear, и.т.д.

Виртуальные методы

Виртуальные методы реализовывают один из элементов объектно-ориентированного программирования – полиморфизм. Для того, чтобы создать виртуальный метод в языке ForceBasic, необходимо объявить метод ключевым словом virtual.

Объявление виртуальных методов. Полиморфизм.

Виртуальные методы объявляются, как и обычные методы класса, с ключевым словом virtual.

virtual имя_метода ( параметры метода )

С помощью виртуальных методов можно вызывать методы класса пораждённого из данного класса. Для кого термит виртуальный метод не знаком, для понимания рассмотрим фрагмент кода базового класса Object, и его виртуальный метод Finalize.

class Object
…
virtual sub Finalize ()

end sub
…
end class
…
sub Object.~Object ()
this.Finalize()
end sub

Суть метода Finalize заключается в более удобном создании деструктора класса. Виртуальный метод играет роль деструктора.

Создадим класс Allocate, который выделяет область памяти определённого размера и удаляет её в момент уничтожения класса, на основе класса Object с использованием виртуального метода Finalize.

class Allocate: implements Object
dim memory as pointer = NULL
sub Alloc ( Size as long )
memory = malloc ( size )
end sub
sub Finalize
if memory <> NULL then
mfree memory
end if
end sub
end class

Виртуальные методы не могут быть продекларированы, каждый из виртуальных методов должен быть до конца реализован в области описания класса. Если необходимо объявить виртуальный метод в классе, без какой либо функциональной нагрузки, тогда следует объявление виртуального метода и сразу его закрытие резервными словами “end sub” или “end function”. Например:

class Sample: implements Object
…
virtual sub Method ( parameter1 as Object ): end sub ‘ Двоеточие – это разделитель .
…
end class

Вызов прошедшего виртуального метода

В языке ForceBasic возможно вызывать прошедшие виртуальные методы. Например, создадим класс CallBack на основе класса Allocate (класс приведён выше в примере). Данный класс не имеет смысла, этот пример лишь демонстрирует вызов виртуального метода Finalize класса Object напрямую. Вызывайте виртуальные методы таким образом если это необходимо.

class CallBack: implements Allocate

sub CallMethods
this.Finalize () ‘ Здесь вызывается метод Finalize класса Object, а затем метод Finalize класса Allocate
this::Finalize () ‘ Здесь вызывается прошлый виртуальный метод Finalize класса Object (избегайте данной конструкции!)
end sub
end class

Внутренняя организация виртуальных методов

На самом деле в языке ForceBasic виртуальный метод – это событие, которое имеет особую конструкцию в классе, при создании виртуального метода, как при создании события, выделяется поле длинной в четыре байта, которое хранит в себе адрес метода. Например при объявлении виртуального метода Method1 ( par as integer ), автоматически создаётся поле с идентификатором Method1 ( таким же как и идентификатор метода ), затем, в прошлое поле объявленное для виртуального метода, копируется адрес созданного виртуального метода, а в новое поле для виртуального метода копируется адрес предыдущего виртуального метода. При объявлении виртуального метода, подставляется код вызова предыдущего виртуального метода конструкцией this::метод ( параметры метода ). Следующий пример демонстрирует скрытые коды в классе для понимания организации виртуальных методов. Красным цветом выделен код, который автоматически генерируется компилятором.

class CodeView
virtual sub StrCat ( ret$, s1$, s2$ ) ‘ создание поля dim StrCat as dword
ret = s1 + s2
end sub

sub CodeView ()
sub ~CodeView ()
end class

sub CodeView.CodeView ()
this.StrCat = subptrclass (CodeView,StrCat)
end sub
sub CodeView.~CodeView ()
end sub

class Second: implements CodeView
sub StrCat ( ret$, s1$, s2$ )
this::StrCat ( ret$, s1$, s2$ )
end sub

sub Second ()
sub ~Second ()
end class

sub Second.Second ()
this.StrCat = this::StrCat
this::StrCat = subptrclass (Second,StrCat)
end sub

sub Second.~Second ()
end sub

События. Event

Как и в других языках программирования события в языке ForceBasic – это инструмент прикладного программиста для добавления кода в объект. Для прикладного программиста события означают определённые области класса, которые можно запрограммировать. Например, события формы onClick, onDblClick, onDragDrop, onCreate, onKeyDown…и.т.д.

Создание и использование событий

Для того чтобы создать событие в классе, достаточно лишь объявить метод с ключевым словом event. Например:

class Action: implements Object

event OnDestroy () ‘Событие

sub Finalize
this.OnDestroy ()
end sub

end class

В классе Active событие OnDestroy вызывается при удалении экземпляра класса.
Реализуем событие OnDestroy класса Action ( выше приведён код класса Action )

sub Action_OnDestroy ()
‘
‘ код реализации события
‘
end sub

sub main
dim act as Action
act.OnDestroy = subptr (Action_OnDestroy)
‘ при удалении экземпляра класса вызывается функция Action_OnDestroy
End sub

Организация событий

При объявлении события в классе выделяется поле в 4 байта для хранения адреса функции, реализовывающего событие ( как при объявлении виртуального метода ). Показано в фрагменте кода:

Act.OnDestroy = subptr (Action_OnDestroy)

Полю OnDestroy присваевается адрес функции Action_OnDestroy. Если адрес в поле события равен NULL (нулю), тогда событие не вызывается.

Событие в языке ForceBasic не является методом. Это значит, что событие не может получить доступ к полям класса как это можно сделать в методах класса через идентификатор this. Следовательно, ссылка на собственный класс через идентификатор this в событиях отсутствует. Это создано для того, чтобы можно было программировать события для нескольких классов одновременно, например для Кнопки(Button) и для Формы(Form) можно реализовать одно и тоже событие onClick по которому осуществляется закрытие формы.

Если необходимо получить доступ к объектам, то можно передавать ссылку на собственный класс явно через параметры события. Например, во всех событиях классах библиотеки windows.fcl.* самым первым параметром Sender является ссылка на собственный класс. Пример:

import windows.fcl.form
import windows.fcl.button
import windows.messagebox

sub Button_OnClick ( byref Sender as Button )

msgbox "Button Clicked!"
Sender.Caption = "Change"

end sub

sub main

dim MainForm as form
dim Button1 as button (ref MainForm)

Button1.Parent = ref MainForm
Button1.Caption = "Кнопка"
Button1.OnClick = subptr (Button_OnClick)

MainForm.Caption = "Форма с кнопкой"
MainForm.Position = poScreenCenter
MainForm.ShowModal

end sub

В приведённом примере отображается форма с кнопкой, при нажатии которой выводится сообщение и изменяется надпись кнопки. В событии Button_OnClick показан пример взаимодействия с параметром Sender.

Свойства

Создание свойств

Создание свойств в языке ForceBasic похоже на объявление полей в классе. т.е достаточно перед идентификатором поля объявить property. Например:

class Sample

property Prop as integer

end class

Как и все элементы класса (поля класса, методы, события ) свойства могут быть частные (private) и публичные (public).

Для законченной реализации свойства не достаточно просто объявить его в классе, необходимо ещё реализовать методы для свойства – одну функцию свойства – на чтение и одну процедуру свойства – на запись. Напрмер:

class Sample

public property Prop as integer

end class

function Sample.Prop () as integer
‘ Чтение свойства
end function

sub Sample.Prop ( byref m_value as integer )
‘ Запись свойства
end sub

Метод для чтения свойства, в данном случае Sample.Prop() as integer, необходимо реализовывать без каких либо параметров, тип функции эквивалентен типу свойства, в данном случае integer.

Метод записи свойства всегда имеет один параметр, передаваемый по ссылке ( byref ), объявление byref не обязательно, т.к в ForceBasic параметры по умолчанию передаются по ссылке.

Общий вид реализации свойства:

class...Класс
…
[public/private] property Идентификатор_свойства as Тип_свойства
…
end class

sub Класс.Идентификатор_свойства ( byref Идентификатор_значения as Тип_свойства )
…
End sub

function Класс.Идентификатор_свойства () as Тип_свойства
…
end function

Порядок объявление сначала описывается процедура, затем функция свойства, не обязателен, можно описывать сначала функцию свойства, а затем процедуру свойства.

Стоит отметить, что процедура и функция свойства описывается за пределами описания класса как конструкторы и деструкторы.

Свойства только для чтения

Иногда в классе необходимо создать свойство только для чтения, например свойство Version, которое возвращает версию операционной системы. Для этого я языке ForceBasic имеется определённая конструкция при объявлении и реализации свойств readonly. Для того, что бы объявить readonly свойство в классе необходимо перед идентификатором свойства написать ключевое слово readonly. Например:

class Sample: implements Object
property readonly Version as string
end class

function Sample.Version () as string
…
end function

Реализация свойств только для чтения сводится к реализации функции, которая возвращает определённое значение.

Свойства published

Свойства объявленные ключевым словом published доступны не только на стадии разработки программы, но также доступны на стадии выполнения программы. При компиляции класса, если в классе имеются published свойства, то формируется информация о публичных элементах класса (имя, тип данных, имя типа данных, адрес процедуры считывания/записи...и.т.д), которая доступна во время выполнения программы.

Данная технология позволяет гибко манипулировать классами на этапе выполнения программы. Например, в визуальном построителе форм, в окне свойств формируется таблица, информация которой считывается из свойств published. Информацию можно не только считывать, но и изменять.

Обявление свойств published

общий вид:

class ...
...
published Имя_свойства as тип_свойства
...
end class

Манипулирование свойствами published

При создании published свойства, информация записывается в объект Classes, более детально объект Classes можно рассмотреть в файле Sources/Lang/Classes/Classes.bas.

Объект classes садержит в себе не только информацию о свойствах published, но и информацию о классах, событиях, всю необходимую информацию для полнофукционального манипулирования классами во время выполнения программы.

published списки

Как и свойства, списки (enum) можно объяалять как published, в этом случае будет доступна информмация о списках во время выполнения программы.
Некоторые классы содержат в себе элементы списков, идея published состоит в том чтобы получить достаточную информацию о классе для организации визуальных построителей, в ходе реализации которых необходимо получит структуру объекта.

Обьявление published списков

Общий вид

published enum идентификатор_списка
...
end enum

Получение информации о списках производится с помощью объекта Enums, более детально объект Enums можно рассмотреть в файле Sources/Lang/Classes/Classes.bas

Операторы

Объявление операторов

В языке ForceBasic можно программировать операторы в классах. Один оператор в классе
реализовывается одним методом класса. Для описания оператора в классе необходимо применить ключевое слово operator. Заканчивать блок метода необходимо ключевыми словами end function. Например:

import lang.Object
import windows.messagebox

class Sample: implements Object
dim field as long = 0

public operator + ( byref value as integer ) as Sample
return.field = this.field + value
end function

public operator := ( byref value as Sample ) as long
this.field = value.field
end function

public operator ++ () as Sample
this.field = this.field + 1
return = this
end function
end class

sub main
dim x as Sample
x = ( x + 1 ) + 1
x++
msgbox str( x.field )
end sub

Результат выполнения программы: 4

Описанный класс Sample выполняет роль целого типа, на подобии long, который можно складывать с типом integer, и приравнивать друг к другу. Вданном классе реализованы операторы +(Сложение), :=(Приcвоение), ++ (Инкремент).

Программирование операторов

Стоит отметить что при объявлении оператора – присваивания необходим идентификатор “:=”, а не “=” т.к в языке ForceBasic нет отдельного оператора для присваивания. Это единственный частный случай конфликта оператора при объявлении.

При программировании операторов в классах следует знать что существует два типа оператора: 1) для которых необходим параметр (например +), 2) отсутствует параметр.
Операторы второго типа: ++, --, NOT. Все остальные операторы (*,/,-,^,<,>,<=,>=,=,and,or,xor,not,shl,shr…) имеют первый тип оператора, для которого нужен параметр при описании оператора.

Операторы ref и set не подлежат программированию

Также в языке ForceBasic зарезервированы специальные идентификаторы операторов, которые можно реализовывать при программировании операторов в классе.

&& | || | | | ! | >>> | += | -= | *= | /=
%= | &= | ^= | |= | <<= | >>= | >>>= | == | !=
=== | !== |  |  |  |  |  |  |


Untitled Document

Процедуры и функции
Строковые функции
Str | Val | Oct | Hex
Asc | Chr | TRim | RTrim
LTrim | LCase | UCase | Left
Right | Mid | Space | Len


Str$

DOS/4GW | WINDOWS CONSOLE | WINDOWS GUI | LINUX | OTHER OS

Совместимость Несовместимость Неопределено
Строковые функции
Str$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Str (byval Number as double) as string

Описание:

Функция Str преобразует число в строку.


Val#

Совместимость Несовместимость Неопределено
Строковые функции
Val#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Val (byval String as string) as double

Описание:

Функция Val преобразует строку в число.


Oct$

Совместимость Несовместимость Неопределено
Строковые функции
Oct$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Oct (byval Number as long) as string

Описание:

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


Hex$

Совместимость Несовместимость Неопределено
Строковые функции
Hex$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Hex (byval Number as long) as string

Описание:

Функция преобразования из числа в строку, содержащую шестнадцатеричное представление аргумента.


Asc?

Совместимость Несовместимость Неопределено
Строковые функции
Asc?
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Asc (byval String as string) as byte

Описание:

Функция Asc возвращает ASCII-код первого символа в строке String.


Chr$

Совместимость Несовместимость Неопределено
Строковые функции
Chr$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Chr (byval Number as byte) as string

Описание:

Функция Chr возвращает символ соответствующий ASCII-коду числа Number.


TRim$

Совместимость Несовместимость Неопределено
Строковые функции
TRim$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function TRim (byval String as string) as string

Описание:

Функция TRim возвращает строку, с удалёнными пробелами справа и слева из строки String.


LTrim$

Совместимость Несовместимость Неопределено
Строковые функции
LTrim$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function LTrim (byval String as string) as string

Описание:

Функция RTrim возвращает строку, с удалёнными пробелами слева из строки String.


RTrim$

Совместимость Несовместимость Неопределено
Строковые функции
RTrim$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function RTrim (byval String as string) as string

Описание:

Функция RTrim возвращает строку, с удалёнными пробелами справа из строки String.


LCase$

Совместимость Несовместимость Неопределено
Строковые функции
LCase$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function LCase (byval String as string) as string

Описание:

Функция преобразовывает все символы в строке к нижнему(строчному) регистру.


UCase$

Совместимость Несовместимость Неопределено
Строковые функции
UCase$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function UCase (byval String as string) as string

Описание:

Функция преобразовывает все символы в строке к верхнему регистру.


Left$

Совместимость Несовместимость Неопределено
Строковые функции
Left$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Left (byval String as string, byval Length as long) as string

Описание:

Строковая функция, выделяющая часть строки.

String - Строка.
Length - Количество символов, выделяемых с начала строки.


Right$

Совместимость Несовместимость Неопределено
Строковые функции
Right$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Right (byval String as string, byval Length as long) as string

Описание:

Строковая функция, выделяющая часть строки.

String - Строка.
Length -Количество символов, выделяемых с конца строки.


Mid$

Совместимость Несовместимость Неопределено
Строковые функции
Mid$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Mid (byval String as string, byval Start as long [, byval Length as long] ) as string

Описание:

Строковая функция, выделяющая часть строки, начиная с позиции Start, длинной в Length символов.

String - Строка.
Start - Позиция символа в строке String, с которого начинается выделение.
Length - Количество выделяемых символов. (Не обязательный параметр)


Space$

Совместимость Несовместимость Неопределено
Строковые функции
Space$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Space (byval Number as long) as string

Описание:

Функция Space возвращает строку, состоящую из Number пробелов.


Len???

Совместимость Несовместимость Неопределено
Строковые функции
Len???
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Len (byval String as string) as dword

Описание:

Функция Len возвращает количество символов в строке String.


Untitled Document

Процедуры и функции
Математические функции
Rnd | Random | Abs | Atn
Cos | Exp | Log | Sin
Sqr | Sgn | Floor | Ceil
ACos | ASin | Tan | Log10


Rnd#

Совместимость Несовместимость Неопределено
Математические функции
Rnd#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Rnd () as double

Описание:

Функция возвращает случайное значение в промежутке от 0 до 1.


Random&

Совместимость Несовместимость Неопределено
Математические функции
Random&
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Random (byval Number as long) as long

Описание:

Функция возвращает целое случайное значение в промежутке от 0 до Number.


Abs&

Совместимость Несовместимость Неопределено
Математические функции
Abs&
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Abs (byval Number as long) as long

Описание:

Функция возвращает модуль(абсолютная величина) числа Number.


Atn#

Совместимость Несовместимость Неопределено
Математические функции
Atn#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Atn (byval Number as double) as double

Описание:

Функция возвращает арктангенс числа Number.


Cos#

Совместимость Несовместимость Неопределено
Математические функции
Cos#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Cos (byval Number as double) as double

Описание:

Функция возвращает косинус числа Number.


Exp#

Совместимость Несовместимость Неопределено
Математические функции
Exp#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Exp (byval Number as double) as double

Описание:

Функция возводит число e(основание натурального логарифма) в степень, заданную аргументом Number.


Log#

Совместимость Несовместимость Неопределено
Математические функции
Log#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Log (byval Number as double) as double

Описание:

Функция возвращает натуральный логарифм числа Number


Sin#

Совместимость Несовместимость Неопределено
Математические функции
Sin#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Sin (byval Number as double) as double

Описание:

Функция возвращает синус числа Number.


Sqr#

Совместимость Несовместимость Неопределено
Математические функции
Sqr#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Sqr (byval Number as double) as double

Описание:

Функция возвращает квадратный корень числа Number.


Untitled Document

Совместимость Несовместимость Неопределено
Математические функции
Sgn
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Sgn (byval Number as double) as small

Описание:

Функция возвращает знак числа Number. Возвращает 1, если аргумент положителен, 0 - если равен нулю, -1 - если отрицателен.


Floor#

Совместимость Несовместимость Неопределено
Математические функции
Floor#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Floor (byval Number as double) as double

Описание:

Функция возвращает округлённое число Number. Округление происходит путём отбрасывания чисел после точки.
Например: функция floor(5.9) вернёт число 5.


Ceil#

Совместимость Несовместимость Неопределено
Математические функции
Ceil#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Ceil (byval Number as double) as double

Описание:

Функция возвращает округлённое число Number.
Например:
Функция ceil(5.9) вернёт число 6.
Функция ceil(5.1) вернёт число 6.


ACos#

Совместимость Несовместимость Неопределено
Математические функции
ACos#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ACos (byval Number as double) as double

Описание:

Функция возвращает арккосинус числа Number.


ASin#

Совместимость Несовместимость Неопределено
Математические функции
ASin#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ASin (byval Number as double) as double

Описание:

Функция возвращает арксинус числа Number.


Tan#

Совместимость Несовместимость Неопределено
Математические функции
Tan#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Tan (byval Number as double) as double

Описание:

Функция возвращает тангенс числа Number.


Log10#

Совместимость Несовместимость Неопределено
Математические функции
Log10#
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Log10(byval Number as double) as double

Описание:

Функция возвращает логарифм числа Number по основанию 10.


Untitled Document

Процедуры и функции
I/O функции консоли
Screen | Putch | Print | Color
Locate | Cls | Inkey | Input


Screen

Совместимость Несовместимость Неопределено
I/O функции консоли
Screen
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Screen(byval Mode as long)

Описание:

Установка текстового или графического режима.

 Mode - номер режима.


Putch

Совместимость Несовместимость Неопределено
I/O функции консоли
Putch
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Putch(byval Char as byte)

Описание:

Процедура отображает на экране символ.

Char - ASCII-код символа.


Print

Совместимость Несовместимость Неопределено
I/O функции консоли
Print
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Print(...)

Описание:

Процедура отображает на экране значения параметров.
В качестве параметров может быть любой аргумент типа: Small,Byte,Word,DWord,Short,Integer,Long,Single,Double,Extendet,String.


Color

Совместимость Несовместимость Неопределено
I/O функции консоли
Color
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Color (byval Fore as integer [, byval Back as integer] )

Описание:

Процедура установки цвета.

Fore - цвет символов.
Back - цвет фона. (Не обязательный параметр)


Locate

Совместимость Несовместимость Неопределено
I/O функции консоли
Locate
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Locate (byval x as integer, byval y as integer)

Описание:

Установка позиции курсора.

x - номер колонки.
y - номер строки.


Cls

Совместимость Несовместимость Неопределено
I/O функции консоли
Cls
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

sub Cls

Описание:

Процедура предназначена для очистки экрана или его частей как в псевдотекстовом, так и в графическом режимах.


Inkey$

Совместимость Несовместимость Неопределено
I/O функции консоли
Inkey$
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

function Inkey () as string

Описание:

Функция возвращает ASCII-символ нажатой клавиши. Если клавиша не нажата, то тогда возвращается пустая строка.


Input

Совместимость Несовместимость Неопределено
I/O функции консоли
Input
Совместимость

Данная функция описана в модуле console.unit

Общий вид:

function Input ( [ byval Prompt as string ] ) as string

Описание:

Функция Input прерывает выполнение программы для ввода текста.

Prompt – текст подсказки. Выводится до начала ввода текста. (Не обязательный параметр)


Untitled Document

Процедуры и функции
Функции файловой системы
fopen | fgets | fgetc | fclose
feof | fread | fputs | fputc
fwrite | ftell | fseek | fremove
frename | ftmpnam | ftmpfile | fprint
chdir | rmdir | mkdir | getcwd
Files | Dirs | FilesAndDirs | File
ExtractFileExt | ExtractFileDrive | ExtractFileName | ExtractFilePath
ExtractFileNameOnly |  |  |


fopen

Совместимость Несовместимость Неопределено
Функции файловой системы
fopen
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fopen (byval FileName as string, byval Mode as string) as FILE

Описание:

Функция fopen открывает файл в файловой системе и возвращает идентификатор файла.

Первый аргумент FileName - имя файла или абсолютный путь к нему. Если абсолютный путь не указывается, то файл должен находится в текущем каталоге.

Второй аргумент Mode говорит о том, для каких действий открывается файл и может принимать следующие значения:

  • r (Открыть файл только для чтения; после открытия указатель файла устанавливается в начало файла);
  • r+ (Открыть файл для чтения и записи; после открытия указатель файла устанавливается в начало файла);
  • w (Создать новый пустой файл только для записи; если файл с таким именем уже есть вся информация в нем уничтожается);
  • w+ (Создать новый пустой файл для чтения записи; если файл с таким именем уже есть вся информация в нем уничтожается);
  • a (Открыть файл для дозаписи; данные будут записываться в конец файла);
  • a+ (Открыть файл для дозаписи и чтения данных; данные будут записываться в конец файла);
  • b (Флаг, указывающий на работу (чтение и запись) с двоичным файлом.


fgets

Совместимость Несовместимость Неопределено
Функции файловой системы
fgets
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fgets (byval Stream as FILE, byval Count as integer) as string

Описание:

Эта функция читает и возвращает строку длиной Count-1 байт. Чтение прекращается, когда достигнута новая строка или конец файла. При достижении конца файла функция возвращает пустую строку.

FILE – идентификатор файла, созданного функцией fopen.


fgetc

Совместимость Несовместимость Неопределено
Функции файловой системы
fgetc
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fgetc (byval Stream as FILE) as integer

Описание:

Функция fgetc производит чтение одного символа из файла и возвращает ASCII-код этого символа.

FILE – идентификатор файла, созданного функцией fopen.


fclose

Совместимость Несовместимость Неопределено
Функции файловой системы
fclose
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fclose (byval Stream as FILE) as integer

Описание:

После того, как вы закончите работу с файлом его необходимо закрыть. Закрытие файлов осуществляется с помощью функции fclose.

Аргумент Stream представляет собой дескриптор файла, который необходимо закрыть.

В случае успешного закрытия файла функция fclose возвращает нуль.


feof

Совместимость Несовместимость Неопределено
Функции файловой системы
feof
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function feof (byval Stream as FILE) as integer

Описание:

Если указатель находится в конце файла, функция возвращает true, в ином случае возвращается false.


fread

Совместимость Несовместимость Неопределено
Функции файловой системы
fread
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fread (byval Stream as FILE, byval Count as integer) as string

Описание:

Функция fread читает Count-1 байт из фала Stream и возвращает их в виде строки. В отличие от функции fgets, функция fread не прекращает чтение из файла, если достигнут конец строки.


fputs

Совместимость Несовместимость Неопределено
Функции файловой системы
fputs
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fputs (byval Stream as FILE, byval Chars as string) as integer

Описание:

Функция fputs записывает в файл строку.

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

В случае ошибки функция fputs возвращает отрицательное значение.


fputc

Совместимость Несовместимость Неопределено
Функции файловой системы
fputc
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fputc (byval Stream as FILE, byval Char as integer) as integer

Описание:

Функция fputc производит запись одного символа в файл.

Char – ASCII-код символа.

FILE – идентификатор файла, созданного функцией fopen.

В случае успешного выполнения записи функция fputc возвращает ASCII-код символа Char


fwrite

Совместимость Несовместимость Неопределено
Функции файловой системы
fwrite
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fwrite (byval Stream as FILE, byval Chars as string) as integer

Описание:

Функция fwrite идентична функции fputs.


ftell

Совместимость Несовместимость Неопределено
Функции файловой системы
ftell
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ftell (byval Steram as FILE) as integer

Описание:

Функция ftell возвращает текущее положение указателя в файле Stream.


fseek

Совместимость Несовместимость Неопределено
Функции файловой системы
fseek
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fseek (byval Stream as FILE, byval Offset as integer, byval Whence as integer) as integer

Описание:

Функция fseek устанавливает указатель файла на байт со смещением Offset (от начала файла, от его конца или от текущей позиции, в зависимости от значения параметра Whence).

Аргумент Stream представляет собой дескриптор файла.
Аргумент Whence задает с какого места отсчитывается смещение Offset и может принимать одно из следующих значений:

  • SEEK_SET (отсчитывает позицию начала файла);
  • SEEK_CUR (отсчитывает позицию относительно текущего положения указателя);
  • SEEK_END (отсчитывает позицию относительно конца файла).

В случае успешного выполнения функция fseek возвращает нуль.


fremove

Совместимость Несовместимость Неопределено
Функции файловой системы
fremove
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function fremove (byval FileName as string) as integer

Описание:

Функция fremove удаляет файл.

FileName – имя файла.

В случае успешного выполнения функция fremove возвращает нуль.


frename

Совместимость Несовместимость Неопределено
Функции файловой системы
frename
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function frename (byval OldFileName as string, byval NewFileName as string) as integer

Описание:

Функция frename переименовывает файл с именем OldFileName в файл с именем NewFileName.

В случае удачного выполнения функция frename возвращает нуль.


ftmpnam

Совместимость Несовместимость Неопределено
Функции файловой системы
ftmpnam
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ftmpnam () as string

Описание:

Функция ftmpnam возвращает имя временного файла.


ftmpfile

Совместимость Несовместимость Неопределено
Функции файловой системы
ftmpfile
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ftmpfile () as FILE

Описание:

Функция ftmpfile создаёт временный файл, открывает его в режиме “w+b”, и возвращает дескриптор файла.

После выполнения всей программы данный файл автоматически удаляется.


fprint

Совместимость Несовместимость Неопределено
Функции файловой системы
fprint
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub fprint (...)

Описание:

Функция fprint аналогична функции print, только в функции fprint первый параметр – это дескриптор файла.


Untitled Document

Процедуры и функции
Графические функции
LineTo | Rectangle | Ellipse | FloodFill
SetPixel | Arc | SetActivePage | SetVisualPage
GetActivePage | GetVisualPage | GetVideoConfig | Polygon
GetPixel | MoveTo | SetFillMask | GetFillMask
SetLineStyle | GetLineStyle | SetWriteMode | GetWriteMode
SetViewPort | ClearScreen | SetClipRgn | GetClipRgn
SetWindow | DisplayCursor | OutText | SetCharSize
SetTextAlign | SetTextPath | SetTextOrient | SetCharSpacing
GetImage | PutImage | ImageSize |


Arc

Совместимость Несовместимость Неопределено
Графические функции
Arc
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub Arc ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short , byval x3 as short , byval y3 as short , byval p7 as short , byval p8 as short )

Описание:
Процедура рисует сектор окружности.


ClearScreen

Совместимость Несовместимость Неопределено
Графические функции
ClearScreen
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub ClearScreen ( byval ClearStyle as short )

Описание:

Процедура очищает весь экран либо текущую обрасть отображения.

Параметры:
ClearStyle : стиль очистки.

public enum ClearScreenStyles
gScreen = 0
gViewPort = 1
gWindow = 2
end enum


DisplayCursor

Совместимость Несовместимость Неопределено
Графические функции
DisplayCursor
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub DisplayCursor ( byval CursorStyle as short )

Описание:
Процедура отображает курсор.

Параметры:
CursorStyle : стиль отображения курсора. Стили курсора определены в списке CursorStyles

public enum CursorStyles
gCursorOff = 0
gCursorOn = 1
end enum


Ellipse

Совместимость Несовместимость Неопределено
Графические функции
Ellipse
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub Ellipse ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short , byval FillStyle as short )

Описание:
Процедура рисует эллипс.

Параметры:
x1,y1 : координаты левого верхего угла эллипса.
x2,y2 : координаты правого нижнего угла эллипса.
FillStyle : стиль заливки. Стили заливки описаны в FillStyles.


FloodFill

Совместимость Несовместимость Неопределено
Графические функции
FloodFill
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub FloodFill ( byval x as short , byval y as short , byval c as short )

Описание:
Процедура заливает ограниченную область.

Параметры:
x1,y1 : координаты заливки.
c : цвет заливки.


GetActivePage

Совместимость Несовместимость Неопределено
Графические функции
GetActivePage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function GetActivePage as short

Описание:
Описание:
Функция возвращает номер текущей активной видеостраницы.


GetClipRgn

Совместимость Несовместимость Неопределено
Графические функции
GetClipRgn
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub GetClipRgn ( byref x1 as short , byref y1 as short , byref x2 as short , byref y2 as short )

Описание:
Процедура возвращает текущую область отсечения.

Параметры:
x1,y1 : верхний левый угол отсечения.
x2,y2 : правый нижний угол отсечения.


GetFillMask

Совместимость Несовместимость Неопределено
Графические функции
SetLineStyle
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetLineStyle ( byval LineStyle as short )

Описание:
Процедура устанавливает текущую маску стиля линии.

Параметры:
LineStyle : биты маски.


GetImage

Совместимость Несовместимость Неопределено
Графические функции
GetImage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub GetImage ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short , byval Buffer as Pointer )

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

Параметры:
x1,y1,x2,y2 : область изображения.
Buffer : Указатель на выделенную память под изображение.


GetLineStyle

Совместимость Несовместимость Неопределено
Графические функции
GetLineStyle
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function GetLineStyle as short

Описание:
Функция возвращает текущую маску стиля линии.


GetPixel

Совместимость Несовместимость Неопределено
Графические функции
GetPixel
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function GetPixel ( byval x as short , byval y as short ) as short

Описание:
Функция возвращает идентификатор цвета в точке с заданными координатами.

Параметры:
x,y : координаты точки.
Возвращаемое значение:
Идентификатор цвета.


GetVideoConfig

Совместимость Несовместимость Неопределено
Графические функции
GetVideoConfig
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub GetVideoConfig ( byref Config as VideoConfig )

Описание:

Процедура возвращает информацию о текущем видеорежиме и конфигурацио оборудования.

Параметры:
Config : структура типа VideoConfig

public type VideoConfig
NumXPixels as short
NumYPixels as short
NumTextCols as short
NumTextRows as short
NumColors as short
BitsPerPixel as short
NumVideoPages as short
Mode as short
Adapter as short
Monitor as short
Memory as short
end type


GetVisualPage

Совместимость Несовместимость Неопределено
Графические функции
GetVisualPage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function GetVisualPage as short

Описание:
Описание:
Функция возвращает номер текущей визуальной видеостраницы.


GetWriteMode

Совместимость Несовместимость Неопределено
Графические функции
GetWriteMode
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function GetWriteMode as short

Описание:
Описание:
Функция возвращает текущий режим рисования.


ImageSize

Совместимость Несовместимость Неопределено
Графические функции
ImageSize
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public function ImageSize ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short ) as long

Описание:
Функция возвращает размер в байтах под изображение.
Параметры:
x1,y1,x2,y2 : область изображения.


LineTo

Совместимость Несовместимость Неопределено
Графические функции
LineTo
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub LineTo (byval x as short, byval y as short)

Описание:

Процедура рисует линию из текущего положения в заданное.

Параметры:
x,y : конечная точка линии.


MoveTo

Совместимость Несовместимость Неопределено
Графические функции
MoveTo
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub MoveTo ( byval x as short , byval y as short )

Описание:
Процедура перемещает курсор в зананные координаты.

Параметры:
x,y : новое положение курсора.


OutText

Совместимость Несовместимость Неопределено
Графические функции
OutText
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub OutText ( byval x as short , byval y as short , byval Text as string )

Описание:
Процедура отображает графический текст.

Параметры:
x,y : точка отображения текста.
Text : строка текста.


Polygon

Совместимость Несовместимость Неопределено
Графические функции
Polygon
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub Polygon ( byref Points ( 0 ) as XYCoord , byval NumPts as short , byval FillStyle as short )

Описание:
Процедура рисует заикнутую ломаную линию.

Параметры:
Points : массив точек.
NumPts : количество точек в массиве.
FillStyle : стиль заливки.


PutImage

Совместимость Несовместимость Неопределено
Графические функции
PutImage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub PutImage ( byval x as short , byval y as short , byval Buffer as Pointer , byval Mode as short )

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

Параметры:
x,y : точка вывода изображения.
Buffer : Указатель на изображение.
Mode : стиль рисования.


Rectangle

Совместимость Несовместимость Неопределено
Графические функции
Rectangle
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub Rectangle ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short , byval FillStyle as short )

Описание:

Процедура рисует прямоугольник.

Параметры:
x1,y1 : координаты левого верхего угла прямоугольника.
x2,y2 : координаты правого нижнего угла прямоугольника.
FillStyle : стиль заливки. Стили заливки описаны в FillStyles.


SetActivePage

Совместимость Несовместимость Неопределено
Графические функции
SetActivePage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetActivePage ( byval Page as short )

Описание:
Процедура устанавливает номер активной видеостраницы.

Параметры:
Page : номер видео страницы.


SetCharSize

Совместимость Несовместимость Неопределено
Графические функции
SetCharSize
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetCharSize ( byval w as short , byval h as short )

Описание:
Процедура устанавлявает размер графических символов.

Параметры:
w : ширина символов в пикселях.
h : высота символов в пикселях.


SetCharSpacing

Совместимость Несовместимость Неопределено
Графические функции
SetCharSpacing
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetCharSpacing ( byval Space as short )

Описание:
Процедура устанавлявает текущее расстояние между символами.

Параметры:
Space : расстояние между символами.


SetClipRgn

Совместимость Несовместимость Неопределено
Графические функции
SetClipRgn
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetClipRgn ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short )

Описание:
Процедура устанавливает текущую область отсечения.

Параметры:
x1,y1 : верхний левый угол отсечения.
x2,y2 : правый нижний угол отсечения.


SetFillMask

Совместимость Несовместимость Неопределено
Графические функции
SetFillMask
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetFillMask ( byref Mask ( 8 ) as byte )

Описание:
Процедура устанавливает текущую маску заливки.

Размер маски 8x8 бит. Первый байт массива соответствует первой полосе маски...и.т.д
Параметры:
Mask : биты маски.


SetPixel

Совместимость Несовместимость Неопределено
Графические функции
SetPixel
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetPixel ( byval x as short , byval y as short )

Описание:
Процедура рисует точку с текущем цветом.

Параметры:
x1,y1 : координаты точки.


SetTextAlign

Совместимость Несовместимость Неопределено
Графические функции
SetTextAlign
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetTextAlign ( byval horiz as short , byval vert as short )

Описание:

Процедура устанавлявает выравнивание при отображении графического текста.

Параметры:
Horiz : стиль выравнивания по горизонтали. Список HorizAlignStyles .
Vert : стиль выравнивания по вертикали. Список VertAlignStyles .

public enum HorizAlignStyles
gNormal = 0
gLeft = 1
gCenter = 2
gRight = 3
end enum

public enum VertAlignStyles
gTop = 1
gCap = 2
gHalf = 3
gBase = 4
gBottom = 5
end enum


SetTextOrient

Совместимость Несовместимость Неопределено
Графические функции
SetTextOrient
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetTextOrient ( byval Vecx as short , byval Vecy as short )

Описание:
Процедура устанавлявает поворот при отображении графических символов.

Параметры:
Vecx,Vecy : вектор поворота.


SetTextPath

Совместимость Несовместимость Неопределено
Графические функции
SetTextPath
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetTextPath ( byval Path as short )

Описание:
Процедура устанавлявает направление отображения графических символов.

Параметры:
Path : направление отображения. Список TextPathStyles .

public enum TextPathStyles
gPathRight = 0
gPathLeft = 1
gPathUp = 2
gPathDown = 3
end enum


SetViewPort

Совместимость Несовместимость Неопределено
Графические функции
SetViewPort
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetViewPort ( byval x1 as short , byval y1 as short , byval x2 as short , byval y2 as short )

Описание:
Процедура устанавливает для графического вывода текущую область просмотра или окно.

Параметры:
x1,y1 : точка задает верхний левый угол области просмотра.
x2,y2 : точка задает нижний правый угол области просмотра.


SetVisualPage

Совместимость Несовместимость Неопределено
Графические функции
SetVisualPage
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetVisualPage ( byval Page as short )

Описание:
Процедура устанавливает номер отображаемой видеостраницы.

Параметры:
Page : номер видео страницы.


SetWindow

Совместимость Несовместимость Неопределено
Графические функции
SetWindow
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetWindow ( byval x1 as double , byval y1 as double , byval x2 as double , byref y2 as double , byval Invert as short )

Описание:
Процедура устанавливает текущую систему координат в окне.
Окно определяется как область с противоположными углами установленными точками (x1,y1) и (x2,y2).

Параметры:
x1,y1 : нижний левый угол.
x2,y2 : правый верхний угол.
Invert : направление по оси y.


SetWriteMode

Совместимость Несовместимость Неопределено
Графические функции
SetWriteMode
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub SetWriteMode ( byval Mode as short )

Описание:

Процедура устанавливает текущий режим рисования.

Параметры:
Mode : режим рисования.

public enum WriteModeStyles
gOr = 0
gAnd = 1
gPreset = 2
gPset = 3
gXor = 4
end enum


Untitled Document

Классы
ForceBasic's Classes
A | AnsiString Argument Application
B | Brush Button
C | Collection Canvas CheckBox ColorDialog ComboBox Control ClassInfo Classes ConstInfo CustomButton CustomComboBox CustomEdit CustomForm CustomLabel CustomListBox CustomScrollBar
D |
E | Edit EventInfo EnumInfo Enums
F | Font Form
G |
H |
I | Image Inspector
J |
K |
L | Label ListBox
M | Memo MainMenu MenuItem
N |
O | Object OpenSaveDialog
P | PropertyInfo Pen
R | Resource Runable RadioButton RichEdit
S | SmallTable Static StatusBar StringBuffer
T | TabControl Timer ToolTip TreeView
U |
V | VScrollBar
W | Widget
X |


Object

Классы
Все классы :: Сгрупперованные классы ::
Object
Класс Object является базовым классом для всех компонентов и объектов ForceBasic.

import lang.Object

Иерархия: нет

Свойства:
  • ClassName as string
  • ClassSize as dword
События:
  • нет
Методы:
  • function Ref as pointer
  • virtual sub Finalize
  • operator = ( byref m_object as Object ) as byte
  • sub Object
  • sub ~Object

property ClassName as string

Свойство ClassName возвращает имя класса объекта.

property ClassSize as dword

Свойство ClassSize возвращает размер объекта. Размер определяется выделяемой области памяти в байтах, под экземпляр класса.

function Ref as pointer

Метод Ref возвращает ссылку на экземпляр класса.

virtual sub Finalize ()

Суть виртуального метода Finalize заключается в более удобном создании деструктора класса. Виртуальный метод Finalize, в классе object, играет роль деструктора.

operator = ( byref m_object as Object ) as byte

Возвращает true, если ссылка this указывает на один и тот же экземпляр класса Object.

sub Object()

Конструктор Object инициализирует данные до первого использования объекта.

function ~Object ()

Деструктор ~Object удаляет объект.


Collection

Классы
Все классы :: Сгрупперованные классы ::
Collection
Хранение указателей, добавление, удаление, получение элемента-указателя...подробнее

import lang.Collection

Иерархия: Object -> Collection

Свойства:
  • нет
События:
  • нет
Методы:
  • public sub Add ( byval Ptr as pointer )
  • public function Item ( byval Index as integer ) as pointer
  • public sub Clear
  • public function Count () as integer
  • public sub Collection ()
  • public sub ~Collection ()

Описание

Хранение указателей, добавление, удаление, получение элемента-указателя.

Класс Collection можно наследовать, и заменой методов Add, Item, Clear… и.т.д создавать классы-коллекции для других типов данных или объектов.

Класс Collection является динамическим массивом, т.е в класс Collection можно добавлять неограниченное количества элементов, при добавлении элемента выделяется дополнительная память под хранение элемента, а при удалении высвобождается.

public sub Add ( byval Ptr as pointer )

Добавляет указатель в коллекцию.

public function Item ( byval Index as integer ) as pointer

Получение указателя.
Index – позиция указателя в коллекци.

public sub Clear

Удаление указателей из коллекции, высвобождение памяти под хранение указателей.

public function Count () as integer

Возвращает количество элементов коллекции.


Argument

Классы
Все классы :: Сгрупперованные классы ::
Argument
Предназначен для извлечения из стёка n-параметра функции...подробнее

import System

Иерархия: нет

Свойства:
  • dim ptr as dword
  • dim argType as byte
События:
  • нет
Методы:
  • function isNumber () as boolean
  • function isString () as boolean
  • function isUnknown () as boolean
  • function GetNumber () as double
  • function GetString () as string

Описание

Предназначен для извлечения из стёка n-параметра функции,
Классом Argument седует пользоваться, когда параметры функции или процедуры объявлены как (...)

В теле функции, объявленной с множественными параметрами сужествует массив объектов Arguments, обращаясь к его элементам, объектам Argument, можно осужествлять доступ ко всем параметрам функции.

dim ptr as dword

Указатель на значение параметра.

dim argType as byte

Тип параметра. Поле argType может принимать одно
          из следующих значений:

public enum ArgumentTypes
TPSMALL = 0
TPBYTE = 1
TPSHORT = 2
TPWORD = 3
TPDWORD = 4
TPLONG = 5
TPINTEGER = 5
TPSINGLE = 6
TPDOUBLE = 7
TPEXTENDET = 8
TPSTRING = 9
TPUNKNOWN = 255
end enum

function isNumber () as boolean

Функция возвращает True, если тип агумента является числовым.

function isString () as boolean

Функция возвращает True, если тип агумента является строковым.

function isUnknown () as boolean

Функция возвращает True, если тип агумента не является стандартным.

function GetNumber () as double

Функция возвращает значение аргумента, если тип агумента является числовым.

function GetString () as string

Функция возвращает значение аргумента, если тип агумента является строковым.


Runable

Классы
Все классы :: Сгрупперованные классы ::
Runable
Класс взаимодействия с виртуальной машиной...подробнее

import System

Иерархия: нет

Свойства:
  • нет
События:
  • property OnError as pointer
Методы:
  • function ErrCode() as dword
  • function ErrDesc as string
  • function Version () as integer
  • function ByteCodeSize () as integer
  • function Title () as string
  • function DLL_Count () as integer
  • function DLL_Proc_Count () as integer
  • function StackSize () as integer
  • function StackSpace () as integer

Описание

Класс взаимодействия с виртуальной машиной.

С помощью класса можно осуществлять перехват ошибок, которые генерируются виртуальной машиной или операционной системой.

Все действия и информация, связанная с виртуальной машиной, манипулируются с помощью данного класса.

Данный класс автоматически создаётся при загрузки системного модуля.

property OnError as pointer

Событие реакция на ошибку виртуальной машины.

Пример:

import console
import windows.messagebox

sub ErrOut
msgbox Runable.ErrDesc, "Runable.OnError"
end sub

sub main

Runable.OnError = subptr ( ErrOut )

dim i as integer
for i = 0 to 10000
dim byref arg as Argument
arg.ptr = 0
next
input
end sub

function ErrCode() as dword

Возвращает код ошибки.

function ErrDesc as string

Возвращает описание ошибки в виде строки.

function Version () as integer

Возвращает версию виртуальной машины

function ByteCodeSize () as integer

Возвращает размер в байтах выполняемого байт-кода.

function Title () as string

Возвращает заголовок приложения в виде строки.
Заголовок приложения задаётся на стадии линковки ( параметр plink.exe /t:STRING ).

function DLL_Count () as integer

Возвращает количество загруженных модулей операционной системы.

function DLL_Proc_Count () as integer

Возвращает количество загруженных процедур, из модулей операционной системы.

function StackSize () as integer

Возвращает размер стёка в байтах.

function StackSpace () as integer

Возвращает размер свободного пространства выделенного под стёк в байтах.


AnsiString

Классы
Все классы :: Сгрупперованные классы ::
AnsiString
Расширенный класс строки...подробнее

import lang.AnsiString

Иерархия: Object -> AnsiString

Свойства:
  • нет
События:
  • нет
Методы:
  • function IsEmpty () as boolean
  • function LowerCase () as AnsiString
  • function UpperCase () as AnsiString
  • function c_str () as string
  • function ToInt () as integer
  • function ToDouble () as double
  • function Data () as pointer
  • function Length () as dword
  • function Size () as dword
  • function SubString ( byval Index as integer, byval Count as integer ) as AnsiString
  • function Trim () as AnsiString
  • function TrimLeft () as AnsiString
  • function TrimRight () as AnsiString
  • function Insert ( a_str as AnsiString, byval Index as integer ) as AnsiString
  • function Delete ( byval Index as integer, byval Count as integer ) as AnsiString
  • function Split ( byref sb as AnsiString, byref Separators as StringBuffer ) as StringBuffer
  • operator := ( byref str as string ) as byte
  • operator := ( byref a_str as AnsiString ) as byte
  • operator := ( byref lpstr as LPSTR ) as byte
  • operator + ( byref str as string ) as AnsiString
  • operator + ( byref a_str as AnsiString ) as AnsiString
  • operator = ( byref a_str as AnsiString ) as boolean
  • operator = ( byref str as string ) as boolean
  • operator > ( byref a_str as AnsiString ) as boolean
  • operator < ( byref a_str as AnsiString ) as boolean
  • operator <= ( byref a_str as AnsiString ) as boolean
  • operator >= ( byref a_str as AnsiString ) as boolean
  • operator > ( byref str as string ) as boolean
  • operator < ( byref str as string ) as boolean
  • operator >= ( byref str as string ) as boolean
  • operator <= ( byref str as string ) as boolean

Описание

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

Технология строки: Память под строку выделяется при первом присвоении строки. При присвоении новой строки - если размер выделенной памяти под старую строку больше или равен размеру памяти под новую ( присвоенную ) строку, то происходит простое копирование строк, а не удаление старой памяти, выделение новой и копирование, что существенно ускоряет процесс присвоение строк.
Класс AnsiString является кросс-платформенным классом.

Совет: старайтесь использовать класс AnsiString как строку, только там, где это необходимо. Если необходимы простые операции со строками, то лучше использовать встроенный класс string.

function IsEmpty () as boolean

Возвращает true, если строка пустая

function LowerCase () as AnsiString

Возвращает строку в которой все символы в нижнем регистре.

function UpperCase () as AnsiString

Возвращает строку в которой все символы в верхнем регистре.

function c_str () as string

Конвертирование в string, возвращает стандартную строку типа string.

function ToInt () as integer

Конвертирование в integer, возвращает численное значение.

function ToDouble () as double

Конвертирование в double, возвращает значение типа double.

function Data () as pointer

Возвращает указатель строки. Указатель указывает на последовательность символов заканчивающихся символом "\0"

function Length () as dword

Возвращает длинну строки.

function Size () as dword

Возвращает размер памяти, выделенную под строку.

function SubString ( byval Index as integer, byval Count as integer ) as AnsiString

Возвращает подстроку строки.

function Trim () as AnsiString

Возвращает строку в которой удалены пробелы справа и слева.

function TrimLeft () as AnsiString

Возвращает строку в которой удалены пробелы слева.

function TrimRight () as AnsiString

Возвращает строку в которой удалены пробелы справа.

function Insert ( a_str as AnsiString, byval Index as integer ) as AnsiString

Вставляет подстроку в строку.

function Delete ( byval Index as integer, byval Count as integer ) as AnsiString

Удаляет подстроку из строки.

function Split ( byref sb as AnsiString, byref Separators as StringBuffer ) as StringBuffer

Разделяет строку символами Separators и возвращает массив строк StringBuffer.

operator := ( byref str as string ) as byte

Оператор присвоения.

operator := ( byref a_str as AnsiString ) as byte

Оператор присвоения.

operator := ( byref lpstr as LPSTR ) as byte

Оператор присвоения для LPSTR.

operator + ( byref str as string ) as AnsiString

Оператор сложения строк.

operator + ( byref a_str as AnsiString ) as AnsiString

Оператор сложения строк.

operator = ( byref a_str as AnsiString ) as boolean

Оператор сравнения.

operator = ( byref str as string ) as boolean

Оператор сравнения.

operator > ( byref a_str as AnsiString ) as boolean

Возвращает true, если строка больше.

operator < ( byref a_str as AnsiString ) as boolean

Возвращает true, если строка меньше.

operator <= ( byref a_str as AnsiString ) as boolean

Возвращает true, если строка меньше либо равно.

operator >= ( byref a_str as AnsiString ) as boolean

Возвращает true, если строка больше либо равно.

operator > ( byref str as string ) as boolean

Возвращает true, если строка больше.

operator < ( byref str as string ) as boolean

Возвращает true, если строка меньше.

operator >= ( byref str as string ) as boolean

Возвращает true, если строка больше либо равно.

operator <= ( byref str as string ) as boolean

Возвращает true, если строка меньше либо равно.


Resource

Классы
Все классы :: Сгрупперованные классы ::
Resource
Класс Resource является объектом внедряемого ресурса.

import System

Иерархия: нет

Свойства:
  • нет
События:
  • нет
Методы:
  • function GetSize () as dword
  • function GetPtr () as pointer
  • function GetTextData () as string

function GetSize () as dword

Возвращает размер ресурса.

function GetPtr () as pointer

Возвращает указатель на данные ресурса.

function GetTextData () as string

Возвращает ресурс в виде текста.


Модуль использует: | system | windows.gui.Control |

windows.gui.Application
Описание модуля

Application Class Copyright(c) by Metlashevskiy Egor
Объект Application содержит в себе ссылки на все компоненты, в программе. Объект Application создаётся автоматически

Функции

InitLibrary, ReleaseLibrary

Классы

Application

Методы

  • Initialize
  • Application
  • @init_exception
  • @done_exception
  • ~Application

sub InitLibrary

sub ReleaseLibrary

published class Application

Метод класса Application

declare sub Initialize ()

Нет описания

Метод класса Application

sub Application ()

Нет описания

Метод класса Application

public declare sub @init_exception()

Нет описания

Метод класса Application

public declare sub @done_exception()

Нет описания

Метод класса Application

declare sub ~Application()

Нет описания

InitLibrary, ReleaseLibrary Application
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control |

windows.gui.Brush
Описание модуля

Brush Class Copyright(c) by Metlashevskiy Egor
Класс 'Кисть'

Функции

InitLibrary, ReleaseLibrary

Классы

Brush

Свойства

  • hBrush
  • Style
  • Hatch
  • Color

События

  • OnChange

Методы

  • Refresh
  • CreateSolidBrush
  • Brush
  • @init_exception
  • @done_exception
  • ~Brush

sub InitLibrary

sub ReleaseLibrary

published class Brush

Свойство класса Brush

published property hBrush as long

Возвращает ссылку на Brush (WIN API)

Свойство класса Brush

published property Style as long

Стить кисти

Свойство класса Brush

published property Hatch as long

Штриховка кисти

Свойство класса Brush

published property Color as color

Цвет кисти

Событие класса Brush

event OnChange ()

Вызывается в момент изменения параметра кисти

Метод класса Brush

declare sub Refresh ()

Обновление кисти, в случае если параметры не быти изменены явно

Метод класса Brush

declare sub CreateSolidBrush ( byval Brush as long )

Создание кисти со сплошной заливкой

Метод класса Brush

sub Brush ( byref Parent as Control )

Конструктор

Метод класса Brush

public declare sub @init_exception()

Нет описания

Метод класса Brush

public declare sub @done_exception()

Нет описания

Метод класса Brush

declare sub ~Brush()

Нет описания

InitLibrary, ReleaseLibrary Brush
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomButton |

windows.gui.Button
Описание модуля

Button Class Copyright(c) by Metlashevskiy Egor
Кнопка

Функции

InitLibrary, ReleaseLibrary

Классы

Button

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Button
  • @init_exception
  • @done_exception
  • ~Button

sub InitLibrary

sub ReleaseLibrary

published class Button

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Событие класса Button

Нет описания

Метод класса Button

sub Button ( byref Widget as Widget )

Нет описания

Метод класса Button

public declare sub @init_exception()

Нет описания

Метод класса Button

public declare sub @done_exception()

Нет описания

Метод класса Button

declare sub ~Button()

Нет описания

InitLibrary, ReleaseLibrary Button
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control | windows.gui.Font | windows.gui.Brush | windows.gui.Pen | lang.AnsiString |

windows.gui.Canvas
Описание модуля

Canvas Class Copyright(c) by Metlashevskiy Egor
Канвас - класс для рисования линий, првмоугольников, текста, растровых изображенией, и.т.д. Канвас имеет собственные объекты Font, Brush, Pen

Функции

InitLibrary, ReleaseLibrary

Классы

Canvas

Свойства

  • hDC
  • BackStyle
  • TextColor

Методы

  • Rectangle
  • TextOut
  • Line
  • Refresh
  • Canvas
  • @init_exception
  • @done_exception
  • ~Canvas

sub InitLibrary

sub ReleaseLibrary

published class Canvas

Свойство класса Canvas

published property hDC as long

Ссылка на контекст DC

Свойство класса Canvas

published property BackStyle as BackgroundStyles

Стиль заднего плана

Свойство класса Canvas

published property TextColor as color

Цвет текста

Метод класса Canvas

declare sub Rectangle ( byval X1 as integer, byval Y1 as integer, byval X2 as integer, byval Y2 as integer )

Рисует прямоугольник

Метод класса Canvas

declare sub TextOut ( byval X as integer, byval Y as integer, byval Text as string )

Вывод текста

Метод класса Canvas

declare sub Line ( byval X1 as integer, byval Y1 as integer, byval X2 as integer, byval Y2 as integer)

Рисует линию

Метод класса Canvas

declare sub Refresh ()

Обновление канваса, в случае если один из параметров был изменён не явно

Метод класса Canvas

sub Canvas ( byref Parent as Control )

Нет описания

Метод класса Canvas

public declare sub @init_exception()

Нет описания

Метод класса Canvas

public declare sub @done_exception()

Нет описания

Метод класса Canvas

declare sub ~Canvas()

Нет описания

InitLibrary, ReleaseLibrary Canvas
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomButton |

windows.gui.CheckBox
Описание модуля

Button Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CheckBox

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • CheckBox
  • Initialize
  • @init_exception
  • @done_exception
  • ~CheckBox

sub InitLibrary

sub ReleaseLibrary

published class CheckBox

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Событие класса CheckBox

Нет описания

Метод класса CheckBox

sub CheckBox ( byref Widget as Widget )

Нет описания

Метод класса CheckBox

sub Initialize ()

Нет описания

Метод класса CheckBox

public declare sub @init_exception()

Нет описания

Метод класса CheckBox

public declare sub @done_exception()

Нет описания

Метод класса CheckBox

declare sub ~CheckBox()

Нет описания

InitLibrary, ReleaseLibrary CheckBox
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | lang.Object | lang.Collection | windows.messagebox |

lang.Classes
Описание модуля

Classes.bas - Dynamic Classes Copyright(c) 2004-2006 by Metlashevskiy Egor. All right reserved

Списки

PropertyTypes,

Функции

InitLibrary, ReleaseLibary, ReleaseLibrary

Классы

PropertyInfo,

Методы

  • GetValue
    • ,
  • SetValue
    • ,
  • PropertyInfo
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ~PropertyInfo
    • ,
EventInfo,

Методы

  • @init_exception
    • ,
  • @done_exception
    • ,
  • EventInfo
    • ,
  • ~EventInfo
    • ,
ClassInfo,

Методы

  • GetPropertyFromNameClass
    • ,
  • GetPropertyFromName
    • ,
  • isImplement
    • ,
  • GetEventsInfo
    • ,
  • GetEventsInfo
    • ,
  • ClassInfo
    • ,
  • ~ClassInfo
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
Classes,

Методы

  • GetClassFromName
    • ,
  • Classes
    • ,
  • ~Classes
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
ConstInfo,

Методы

  • @init_exception
    • ,
  • @done_exception
    • ,
  • ConstInfo
    • ,
  • ~ConstInfo
    • ,
EnumInfo,

Методы

  • GetConstNameFromValue
    • ,
  • EnumInfo
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ~EnumInfo
    • ,
Enums

Методы

  • GetEnumByName
  • GetConstByName
  • Enums
  • ~Enums
  • @init_exception
  • @done_exception

public enum PropertyTypes

Имя | Значение
ptTypeData | 0
ptObject | 1
ptLinkObject | 2

sub InitLibrary

sub ReleaseLibary

sub ReleaseLibrary

class PropertyInfo

Метод класса PropertyInfo

declare function GetValue ( byref Obj as Object ) as string

Возвращает значение свойства динамически.

Метод класса PropertyInfo

declare function SetValue ( byref Obj as Object, byval Value as string ) as string

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

Метод класса PropertyInfo

sub PropertyInfo ()

Нет описания

Метод класса PropertyInfo

public declare sub @init_exception()

Нет описания

Метод класса PropertyInfo

public declare sub @done_exception()

Нет описания

Метод класса PropertyInfo

declare sub ~PropertyInfo()

Нет описания

class EventInfo

Метод класса EventInfo

public declare sub @init_exception()

Нет описания

Метод класса EventInfo

public declare sub @done_exception()

Нет описания

Метод класса EventInfo

declare sub EventInfo()

Нет описания

Метод класса EventInfo

declare sub ~EventInfo()

Нет описания

class ClassInfo

Класс ClassInfo представляет собой хранилище published свойств, событий класса

Метод класса ClassInfo

declare function GetPropertyFromNameClass ( byval PropertyName as string, byval ClassName as string ) as pointer

Возвращает информацию о свойстве (ссылку на PropertyInfo) по имени свойства

Метод класса ClassInfo

declare function GetPropertyFromName ( byval PropertyName as string ) as pointer

Нет описания

Метод класса ClassInfo

declare function isImplement ( byval ClassName as string ) as boolean

Возвращает true, если от класса ClassName

Метод класса ClassInfo

declare sub GetEventsInfo ( byref EventCol as Collection )

Нет описания

Метод класса ClassInfo

declare sub GetEventsInfo ( byval ClassName as string, byref EventCol as Collection )

Нет описания

Метод класса ClassInfo

sub ClassInfo ()

Нет описания

Метод класса ClassInfo

sub ~ClassInfo ()

Нет описания

Метод класса ClassInfo

public declare sub @init_exception()

Нет описания

Метод класса ClassInfo

public declare sub @done_exception()

Нет описания

class Classes

Класс Classes представляет собой хранилище динамической информации о классах (Published), их свойствах (Published)

Метод класса Classes

function GetClassFromName ( byval ClassName as string ) as pointer

Нет описания

Метод класса Classes

sub Classes ()

Нет описания

Метод класса Classes

sub ~Classes ()

Нет описания

Метод класса Classes

public declare sub @init_exception()

Нет описания

Метод класса Classes

public declare sub @done_exception()

Нет описания

class ConstInfo

Метод класса ConstInfo

public declare sub @init_exception()

Нет описания

Метод класса ConstInfo

public declare sub @done_exception()

Нет описания

Метод класса ConstInfo

declare sub ConstInfo()

Нет описания

Метод класса ConstInfo

declare sub ~ConstInfo()

Нет описания

class EnumInfo

Метод класса EnumInfo

declare function GetConstNameFromValue ( byval Value as string ) as string

Нет описания

Метод класса EnumInfo

sub EnumInfo ()

Нет описания

Метод класса EnumInfo

public declare sub @init_exception()

Нет описания

Метод класса EnumInfo

public declare sub @done_exception()

Нет описания

Метод класса EnumInfo

declare sub ~EnumInfo()

Нет описания

class Enums

Метод класса Enums

declare function GetEnumByName ( byref Type as string ) as pointer

Если тип данных enum существует, то возвращает ссылку на EnumInfo

Метод класса Enums

declare function GetConstByName ( byref ConstName as string, byref EInfo as pointer ) as pointer

Если константа существует, то возвращается ссылка на ConstInfo и ссылка EInfo на EnumInfo

Метод класса Enums

sub Enums ()

Нет описания

Метод класса Enums

sub ~Enums ()

Нет описания

Метод класса Enums

public declare sub @init_exception()

Нет описания

Метод класса Enums

public declare sub @done_exception()

Нет описания

PropertyTypes, InitLibrary, ReleaseLibary, ReleaseLibrary PropertyInfo, EventInfo, ClassInfo, Classes, ConstInfo, EnumInfo, Enums
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control | windows.gui.Widget |

windows.gui.ColorDialog
Описание модуля

ColorDialog Class Copyright(c) by Metlashevskiy Egor
Диалог выбора цвета

Функции

InitLibrary, ReleaseLibrary

Классы

ColorDialog

Свойства

  • Color

Методы

  • Show
  • ColorDialog
  • @init_exception
  • @done_exception
  • ~ColorDialog

sub InitLibrary

sub ReleaseLibrary

published class ColorDialog

Свойство класса ColorDialog

published property Color as color

Выбранный цвет

Метод класса ColorDialog

declare function Show () as boolean

Отображение диалога

Метод класса ColorDialog

sub ColorDialog ( byref Control as Control )

Конструктор

Метод класса ColorDialog

public declare sub @init_exception()

Нет описания

Метод класса ColorDialog

public declare sub @done_exception()

Нет описания

Метод класса ColorDialog

declare sub ~ColorDialog()

Нет описания

InitLibrary, ReleaseLibrary ColorDialog
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomComboBox |

windows.gui.ComboBox
Описание модуля

ComboBox - выпадающий список Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

ComboBox

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • Initialize
  • ComboBox
  • @init_exception
  • @done_exception
  • ~ComboBox

sub InitLibrary

sub ReleaseLibrary

published class ComboBox

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Событие класса ComboBox

Нет описания

Метод класса ComboBox

declare sub Initialize ()

Нет описания

Метод класса ComboBox

sub ComboBox ( byref Widget as Widget )

Нет описания

Метод класса ComboBox

public declare sub @init_exception()

Нет описания

Метод класса ComboBox

public declare sub @done_exception()

Нет описания

Метод класса ComboBox

declare sub ~ComboBox()

Нет описания

InitLibrary, ReleaseLibrary ComboBox
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | lang.Object | windows.MessageBox | lang.Classes | lang.AnsiString | windows.gui.Widget |

windows.gui.Control
Описание модуля

Control Class Copyright(c) by Metlashevskiy Egor
Класс манипулированим компоненты, все контролы в библиотеки GUI класс Control

Константы

WM_CHANGEUISTATE, WM_UPDATEUISTATE, UIS_SET, UIS_CLEAR, UIS_INITIALIZE, UISF_HIDEFOCUS, UISF_HIDEACCEL, UISF_ACTIVE, WM_NOTIFY, CS_VREDRAW, CS_HREDRAW, CS_KEYCVTWINDOW, CS_DBLCLKS, CS_OWNDC, CS_CLASSDC, CS_PARENTDC, CS_NOKEYCVT, CS_NOCLOSE, CS_SAVEBITS, CS_BYTEALIGNCLIENT, CS_BYTEALIGNWINDOW, CS_PUBLICCLASS, WS_OVERLAPPED, WS_POPUP, WS_CHILD, WS_MINIMIZE, WS_VISIBLE, WS_DISABLED, WS_CLIPSIBLINGS, WS_CLIPCHILDREN, WS_MAXIMIZE, WS_CAPTION, WS_BORDER, WS_DLGFRAME, WS_VSCROLL, WS_HSCROLL, WS_SYSMENU, WS_THICKFRAME, WS_GROUP, WS_TABSTOP, WS_MINIMIZEBOX, WS_MAXIMIZEBOX, WS_TILED, WS_ICONIC, WS_SIZEBOX, WS_OVERLAPPEDWINDOW, WS_TILEDWINDOW, WS_POPUPWINDOW, WS_CHILDWINDOW, WS_EX_DLGMODALFRAME, WS_EX_NOPARENTNOTIFY, WS_EX_TOPMOST, WS_EX_ACCEPTFILES, WS_EX_TRANSPARENT, WS_EX_TOOLWINDOW, WS_EX_SMCAPTION, WS_EX_WINDOWEDGE, WS_EX_CLIENTEDGE, WS_EX_CONTEXTHELP, WS_EX_RIGHT, WS_EX_LEFT, WS_EX_RTLREADING, WS_EX_LTRREADING, WS_EX_LEFTSCROLLBAR, WS_EX_RIGHTSCROLLBAR, WS_EX_CONTROLPARENT, WS_EX_STATICEDGE, WS_EX_APPWINDOW, WS_EX_OVERLAPPEDWINDOW, WS_EX_PALETTEWINDOW, WS_EX_LAYERED, WS_EX_NOINHERITLAYOUT, WS_EX_LAYOUTRTL, WS_EX_COMPOSITED, WS_EX_NOACTIVATE, SW_HIDE, SW_SHOWNORMAL, SW_NORMAL, SW_SHOWMINIMIZED, SW_SHOWMAXIMIZED, SW_MAXIMIZE, SW_SHOWNOACTIVATE, SW_SHOW, SW_MINIMIZE, SW_SHOWMINNOACTIVE, SW_SHOWNA, SW_RESTORE, SW_SHOWDEFAULT, SW_MAX, CW_USEDEFAULT, HWND_DESKTOP, COLOR_SCROLLBAR, COLOR_BACKGROUND, COLOR_ACTIVECAPTION, COLOR_INACTIVECAPTION, COLOR_MENU, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_MENUTEXT, COLOR_WINDOWTEXT, COLOR_CAPTIONTEXT, COLOR_ACTIVEBORDER, COLOR_INACTIVEBORDER, COLOR_APPWORKSPACE, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT, COLOR_BTNFACE, COLOR_BTNSHADOW, COLOR_GRAYTEXT, COLOR_BTNTEXT, COLOR_INACTIVECAPTIONTEXT, COLOR_BTNHIGHLIGHT, WM_NULL, WM_CREATE, WM_DESTROY, WM_MOVE, WM_SIZE, IDC_ARROW, IDC_IBEAM, IDC_WAIT, IDC_CROSS, IDC_UPARROW, IDC_SIZE, IDC_ICON, IDC_SIZENWSE, IDC_SIZENESW, IDC_SIZEWE, IDC_SIZENS, IDC_SIZEALL, IDC_NO, IDC_APPSTARTING, GWL_WNDPROC, GWL_HINSTANCE, GWL_HWNDPARENT, GWL_STYLE, GWL_EXSTYLE, GWL_USERDATA, GWL_ID, GCL_MENUNAME, GCL_HBRBACKGROUND, GCL_HCURSOR, GCL_HICON, GCL_HMODULE, GCL_CBWNDEXTRA, GCL_CBCLSEXTRA, GCL_WNDPROC, GCL_STYLE, GCW_ATOM, WM_ACTIVATE, WA_INACTIVE, WA_ACTIVE, WA_CLICKACTIVE, WM_SETFOCUS, WM_KILLFOCUS, WM_ENABLE, WM_SETREDRAW, WM_SETTEXT, WM_GETTEXT, WM_GETTEXTLENGTH, WM_PAINT, WM_CLOSE, WM_QUERYENDSESSION, WM_QUIT, WM_QUERYOPEN, WM_ERASEBKGND, WM_SYSCOLORCHANGE, WM_ENDSESSION, WM_SHOWWINDOW, WM_WININICHANGE, WM_DEVMODECHANGE, WM_ACTIVATEAPP, WM_FONTCHANGE, WM_TIMECHANGE, WM_CANCELMODE, WM_SETCURSOR, WM_MOUSEACTIVATE, WM_CHILDACTIVATE, WM_QUEUESYNC, WM_GETMINMAXINFO, WM_PAINTICON, WM_ICONERASEBKGND, WM_NEXTDLGCTL, WM_SPOOLERSTATUS, WM_DRAWITEM, WM_MEASUREITEM, WM_DELETEITEM, WM_VKEYTOITEM, WM_CHARTOITEM, WM_SETFONT, WM_GETFONT, WM_SETHOTKEY, WM_GETHOTKEY, WM_QUERYDRAGICON, WM_COMPAREITEM, WM_COMPACTING, WM_OTHERWINDOWCREATED, WM_OTHERWINDOWDESTROYED, WM_COMMNOTIFY, CN_RECEIVE, CN_TRANSMIT, CN_EVENT, WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED, WM_POWER, PWR_OK, PWR_FAIL, PWR_SUSPENDREQUEST, PWR_SUSPENDRESUME, PWR_CRITICALRESUME, WM_COPYDATA, WM_CANCELJOURNAL, WM_NCCREATE, WM_NCDESTROY, WM_NCCALCSIZE, WM_NCHITTEST, WM_NCPAINT, WM_NCACTIVATE, WM_GETDLGCODE, WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, WM_NCLBUTTONDBLCLK, WM_NCRBUTTONDOWN, WM_NCRBUTTONUP, WM_NCRBUTTONDBLCLK, WM_NCMBUTTONDOWN, WM_NCMBUTTONUP, WM_NCMBUTTONDBLCLK, WM_KEYFIRST, WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_DEADCHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_SYSCHAR, WM_SYSDEADCHAR, WM_KEYLAST, WM_INITDIALOG, WM_COMMAND, WM_SYSCOMMAND, WM_TIMER, WM_HSCROLL, WM_VSCROLL, WM_INITMENU, WM_INITMENUPOPUP, WM_MENUSELECT, WM_MENUCHAR, WM_ENTERIDLE, WM_CTLCOLORMSGBOX, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORBTN, WM_CTLCOLORDLG, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC, WM_MOUSEFIRST, WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_RBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MBUTTONDBLCLK, WM_MOUSELAST, WM_PARENTNOTIFY, WM_ENTERMENULOOP, WM_EXITMENULOOP, WM_MDICREATE, WM_MDIDESTROY, WM_MDIACTIVATE, WM_MDIRESTORE, WM_MDINEXT, WM_MDIMAXIMIZE, WM_MDITILE, WM_MDICASCADE, WM_MDIICONARRANGE, WM_MDIGETACTIVE, WM_MDISETMENU, WM_DROPFILES, WM_MDIREFRESHMENU, WM_CUT, WM_COPY, WM_PASTE, WM_CLEAR, WM_UNDO, WM_RENDERFORMAT, WM_RENDERALLFORMATS, WM_DESTROYCLIPBOARD, WM_DRAWCLIPBOARD, WM_PAINTCLIPBOARD, WM_VSCROLLCLIPBOARD, WM_SIZECLIPBOARD, WM_ASKCBFORMATNAME, WM_CHANGECBCHAIN, WM_HSCROLLCLIPBOARD, WM_QUERYNEWPALETTE, WM_PALETTEISCHANGING, WM_PALETTECHANGED, WM_HOTKEY, WM_PENWINFIRST, WM_PENWINLAST, MK_LBUTTON, MK_RBUTTON, MK_SHIFT, MK_CONTROL, MK_MBUTTON, WM_USER, BS_PUSHBUTTON, BS_DEFPUSHBUTTON, BS_CHECKBOX, BS_AUTOCHECKBOX, BS_RADIOBUTTON, BS_3STATE, BS_AUTO3STATE, BS_GROUPBOX, BS_USERBUTTON, BS_AUTORADIOBUTTON, BS_OWNERDRAW, BS_LEFTTEXT, HWND_TOPMOST, HWND_NOTOPMOST, SWP_NOSIZE, SWP_NOMOVE, SWP_NOACTIVATE, SWP_SHOWWINDOW, ES_LEFT, ES_CENTER, ES_RIGHT, ES_MULTILINE, ES_UPPERCASE, ES_LOWERCASE, ES_PASSWORD, ES_AUTOVSCROLL, ES_AUTOHSCROLL, ES_NOHIDESEL, ES_OEMCONVERT, ES_READONLY, ES_WANTRETURN, EN_SETFOCUS, EN_KILLFOCUS, EN_CHANGE, EN_UPDATE, EN_ERRSPACE, EN_MAXTEXT, EN_HSCROLL, EN_VSCROLL, EM_GETSEL, EM_SETSEL, EM_GETRECT, EM_SETRECT, EM_SETRECTNP, EM_SCROLL, EM_LINESCROLL, EM_SCROLLCARET, EM_GETMODIFY, EM_SETMODIFY, EM_GETLINECOUNT, EM_LINEINDEX, EM_SETHANDLE, EM_GETHANDLE, EM_GETTHUMB, EM_LINELENGTH, EM_REPLACESEL, EM_GETLINE, EM_LIMITTEXT, EM_CANUNDO, EM_UNDO, EM_FMTLINES, EM_LINEFROMCHAR, EM_SETTABSTOPS, EM_SETPASSWORDCHAR, EM_EMPTYUNDOBUFFER, EM_GETFIRSTVISIBLELINE, EM_SETREADONLY, EM_SETWORDBREAKPROC, EM_GETWORDBREAKPROC, EM_GETPASSWORDCHAR, EM_GETLIMITTEXT, WB_LEFT, WB_RIGHT, WB_ISDELIMITER, BN_CLICKED, BN_PAINT, BN_HILITE, BN_UNHILITE, BN_DISABLE, BN_DOUBLECLICKED, BM_GETCHECK, BM_SETCHECK, BM_GETSTATE, BM_SETSTATE, BM_SETSTYLE, SS_LEFT, SS_CENTER, SS_RIGHT, SS_ICON, SS_BLACKRECT, SS_GRAYRECT, SS_WHITERECT, SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_USERITEM, SS_SIMPLE, SS_LEFTNOWORDWRAP, SS_NOPREFIX, SS_BITMAP, SS_CENTERIMAGE, SS_ENHMETAFILE, SS_NOTIFY, SS_REALSIZEIMAGE, SS_RIGHTJUST, SS_SUNKEN, SS_ELLIPSISMASK, STM_SETICON, STM_GETICON, STM_MSGMAX, WC_DIALOG, DWL_MSGRESULT, DWL_DLGPROC, DWL_USER, DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES, DDL_EXCLUSIVE, DS_ABSALIGN, DS_SYSMODAL, DS_LOCALEDIT, DS_SETFONT, DS_MODALFRAME, DS_NOIDLEMSG, DS_SETFOREGROUND, DM_GETDEFID, DM_SETDEFID, DC_HASDEFID, DLGC_WANTARROWS, DLGC_WANTTAB, DLGC_WANTALLKEYS, DLGC_WANTMESSAGE, DLGC_HASSETSEL, DLGC_DEFPUSHBUTTON, DLGC_UNDEFPUSHBUTTON, DLGC_RADIOBUTTON, DLGC_WANTCHARS, DLGC_STATIC, DLGC_BUTTON, LB_CTLCODE, LB_OKAY, LB_ERR, LB_ERRSPACE, LBN_ERRSPACE, LBN_SELCHANGE, LBN_DBLCLK, LBN_SELCANCEL, LBN_SETFOCUS, LBN_KILLFOCUS, LB_ADDSTRING, LB_INSERTSTRING, LB_DELETESTRING, LB_SELITEMRANGEEX, LB_RESETCONTENT, LB_SETSEL, LB_SETCURSEL, LB_GETSEL, LB_GETCURSEL, LB_GETTEXT, LB_GETTEXTLEN, LB_GETCOUNT, LB_SELECTSTRING, LB_DIR, LB_GETTOPINDEX, LB_FINDSTRING, LB_GETSELCOUNT, LB_GETSELITEMS, LB_SETTABSTOPS, LB_GETHORIZONTALEXTENT, LB_SETHORIZONTALEXTENT, LB_SETCOLUMNWIDTH, LB_ADDFILE, LB_SETTOPINDEX, LB_GETITEMRECT, LB_GETITEMDATA, LB_SETITEMDATA, LB_SELITEMRANGE, LB_SETANCHORINDEX, LB_GETANCHORINDEX, LB_SETCARETINDEX, LB_GETCARETINDEX, LB_SETITEMHEIGHT, LB_GETITEMHEIGHT, LB_FINDSTRINGEXACT, LB_SETLOCALE, LB_GETLOCALE, LB_SETCOUNT, LB_MSGMAX, LBS_NOTIFY, LBS_SORT, LBS_NOREDRAW, LBS_MULTIPLESEL, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE, LBS_HASSTRINGS, LBS_USETABSTOPS, LBS_NOINTEGRALHEIGHT, LBS_MULTICOLUMN, LBS_WANTKEYBOARDINPUT, LBS_EXTENDEDSEL, LBS_DISABLENOSCROLL, LBS_NODATA, LBS_STANDARD, CB_OKAY, CB_ERR, CB_ERRSPACE, CBN_ERRSPACE, CBN_SELCHANGE, CBN_DBLCLK, CBN_SETFOCUS, CBN_KILLFOCUS, CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_DROPDOWN, CBN_CLOSEUP, CBN_SELENDOK, CBN_SELENDCANCEL, CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST, CBS_OWNERDRAWFIXED, CBS_OWNERDRAWVARIABLE, CBS_AUTOHSCROLL, CBS_OEMCONVERT, CBS_SORT, CBS_HASSTRINGS, CBS_NOINTEGRALHEIGHT, CBS_DISABLENOSCROLL, CB_GETEDITSEL, CB_LIMITTEXT, CB_SETEDITSEL, CB_ADDSTRING, CB_DELETESTRING, CB_DIR, CB_GETCOUNT, CB_GETCURSEL, CB_GETLBTEXT, CB_GETLBTEXTLEN, CB_INSERTSTRING, CB_RESETCONTENT, CB_FINDSTRING, CB_SELECTSTRING, CB_SETCURSEL, CB_SHOWDROPDOWN, CB_GETITEMDATA, CB_SETITEMDATA, CB_GETDROPPEDCONTROLRECT, CB_SETITEMHEIGHT, CB_GETITEMHEIGHT, CB_SETEXTENDEDUI, CB_GETEXTENDEDUI, CB_GETDROPPEDSTATE, CB_FINDSTRINGEXACT, CB_SETLOCALE, CB_GETLOCALE, CB_MSGMAX, SBS_HORZ, SBS_VERT, SBS_TOPALIGN, SBS_LEFTALIGN, SBS_BOTTOMALIGN, SBS_RIGHTALIGN, SBS_SIZEBOXTOPLEFTALIGN, SBS_SIZEBOXBOTTOMRIGHTALIGN, SBS_SIZEBOX, SBM_SETPOS, SBM_GETPOS, SBM_SETRANGE, SBM_SETRANGEREDRAW, SBM_GETRANGE, SBM_ENABLE_ARROWS, RDW_INVALIDATE, LF_FACESIZE, LF_FULLFACESIZE, TA_NOUPDATECP, TA_UPDATECP, TA_LEFT, TA_RIGHT, TA_CENTER, TA_TOP, TA_BOTTOM, TA_BASELINE, TA_MASK, BS_SOLID, BS_NULL, BS_HOLLOW, BS_HATCHED, BS_PATTERN, BS_INDEXED, BS_DIBPATTERN, BS_DIBPATTERNPT, BS_PATTERN8X8, BS_DIBPATTERN8X8, HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS, HS_DIAGCROSS, HS_FDIAGONAL1, HS_BDIAGONAL1, HS_SOLID, HS_DENSE1, HS_DENSE2, HS_DENSE3, HS_DENSE4, HS_DENSE5, HS_DENSE6, HS_DENSE7, HS_DENSE8, HS_NOSHADE, HS_HALFTONE, HS_SOLIDCLR, HS_DITHEREDCLR, HS_SOLIDTEXTCLR, HS_DITHEREDTEXTCLR, HS_SOLIDBKCLR, HS_DITHEREDBKCLR, HS_API_MAX, MIIM_STATE, MIIM_ID, MIIM_SUBMENU, MIIM_CHECKMARKS, MIIM_TYPE, MIIM_DATA, MIIM_STRING, MIIM_BITMAP, MIIM_FTYPE, MF_INSERT, MF_CHANGE, MF_APPEND, MF_DELETE, MF_REMOVE, MF_BYCOMMAND, MF_BYPOSITION, MF_SEPARATOR, MF_ENABLED, MF_GRAYED, MF_DISABLED, MF_UNCHECKED, MF_CHECKED, MF_USECHECKBITMAPS, MF_STRING, MF_BITMAP, MF_OWNERDRAW, MF_POPUP, MF_MENUBARBREAK, MF_MENUBREAK, MF_UNHILITE, MF_HILITE, MF_SYSMENU, MF_HELP, MF_MOUSESELECT, MFS_CHECKED, MFS_ENABLED, MFT_STRING, MFT_RADIOCHECK, MFT_SEPARATOR, MF_END, SC_SIZE, SC_MOVE, SC_MINIMIZE, SC_MAXIMIZE, SC_NEXTWINDOW, SC_PREVWINDOW, SC_CLOSE, SC_VSCROLL, SC_HSCROLL, SC_MOUSEMENU, SC_KEYMENU, SC_ARRANGE, SC_RESTORE, SC_TASKLIST, SC_SCREENSAVE, SC_HOTKEY, SC_ICON, SC_ZOOM, PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, PS_ALTERNATE, PS_STYLE_MASK, PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, PS_ENDCAP_FLAT, PS_ENDCAP_MASK, PS_JOIN_ROUND, PS_JOIN_BEVEL, PS_JOIN_MITER, PS_JOIN_MASK, PS_COSMETIC, PS_GEOMETRIC, PS_TYPE_MASK, SB_HORZ, SB_VERT, SB_CTL, SB_BOTH, SB_LINEUP, SB_LINELEFT, SB_LINEDOWN, SB_LINERIGHT, SB_PAGEUP, SB_PAGELEFT, SB_PAGEDOWN, SB_PAGERIGHT, SB_THUMBPOSITION, SB_THUMBTRACK, SB_TOP, SB_LEFT, SB_BOTTOM, SB_RIGHT, SB_ENDSCROLL, SW_SCROLLCHILDREN, SW_INVALIDATE, SW_ERASE, ESB_ENABLE_BOTH, ESB_DISABLE_BOTH, ESB_DISABLE_LEFT, ESB_DISABLE_RIGHT, ESB_DISABLE_UP, ESB_DISABLE_DOWN, ESB_DISABLE_LTUP, ESB_DISABLE_RTDN, SIF_RANGE, SIF_PAGE, SIF_POS, SIF_DISABLENOSCROLL, SIF_TRACKPOS, SIF_ALL, LR_LOADFROMFILE, IMAGE_BITMAP, IMAGE_ICON, IMAGE_CURSOR, IMAGE_ENHMETAFILE, CF_BITMAP, STM_SETIMAGE, TVS_HASBUTTONS, TVS_HASLINES, TVS_LINESATROOT, TVS_EDITLABELS, TVS_DISABLEDRAGDROP, TVS_SHOWSELALWAYS,

Списки

BackgroundStyles,

Функции

RegisterClass, UnregisterClass, CreateWindowEx, DefWindowProc, PostQuitMessage, GetMessage, TranslateMessage, DispatchMessage, ShowWindow, LoadCursor, DefMDIChildProc, GetWindowLong, SetWindowLong, CallWindowProc, GetModuleHandle, GetWindowText, SetWindowText, UpdateWindow, CloseWindow, GetStockObject, GetSysColor, CreateSolidBrush, GetProp, SetProp, GetWindowRect, SetWindowPos, MoveWindow, GetClientRect, GetParent, SetParent, SendMessage, ClientToScreen, ScreenToClient, RedrawWindow, InitCommonControls, MoveToEx, LineTo, GetDC, Rectangle, DeleteDC, DeleteObject, SelectObject, SelectPalette, SetBkColor, SetBkMode, CreateFontIndirect, CreateFont, CreateHatchBrush, CreateMetaFile, TextOut, SetTextColor, SetTextAlign, SetTextJustification, UpdateColors, SetTimer, KillTimer, CreateBrushIndirect, GetSystemMetrics, LoadMenu, LoadMenuIndirect, GetMenu, SetMenu, HiliteMenuItem, GetMenuString, GetMenuState, DrawMenuBar, GetSystemMenu, CreateMenu, CreatePopupMenu, DestroyMenu, CheckMenuItem, EnableMenuItem, GetSubMenu, GetMenuItemID, GetMenuItemCount, InsertMenu, AppendMenu, ModifyMenu, RemoveMenu, DeleteMenu, SetMenuItemBitmaps, GetMenuCheckMarkDimensions, TrackPopupMenu, SetMenuDefaultItem, SetMenuItemInfo, GetMenuContextHelpId, GetMenuDefaultItem, GetMenuItemInfo, GetMenuItemRect, InsertMenuItem, GetClassLong, SetClassLong, BeginPaint, EndPaint, ShowCursor, SetCursorPos, SetCursor, GetCursorPos, ClipCursor, GetCursor, GetClipCursor, InvalidateRect, ValidateRect, InvalidateRgn, ValidateRgn, DestroyWindow, CreatePen, CreatePenIndirect, GetOpenFileName, GetSaveFileName, CHOOSECOLOR, ScrollWindow, ScrollDC, ScrollWindowEx, SetScrollPos, GetScrollPos, SetScrollRange, GetScrollRange, ShowScrollBar, EnableScrollBar, GetBkColor, GetBkMode, GetTextColor, WindowFromPoint, WinExec, SetScrollInfo, GetScrollInfo, LoadImage, HiWord, HiWords, LoWord, MakeParam, RegisterClass, CreateControl, ClassLoader_OnBeforeLoad, ClassLoader_OnAfterLoad, ClassLoader_OnEventLoad, ClassLoader_OnStoreProperty, CreateControlFromFile, InitLibrary, ReleaseLibrary

Классы

ControlEventBuilder,

Методы

  • GetEventDeclares
    • ,
  • StoreCurrentProperty
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ControlEventBuilder
    • ,
  • ~ControlEventBuilder
    • ,
Control,

Свойства

  • ParentControl
    • ,
  • IsDesigning
    • ,
  • Name
    • ,
  • ControlId
    • ,
  • ChildClass
    • ,

Методы

  • GetParentClass
    • ,
  • AddControl
    • ,
  • GetControl
    • ,
  • GetControlCount
    • ,
  • Value
    • ,
  • GetControlById
    • ,
  • IsImplement
    • ,
  • GetControlByhWnd
    • ,
  • GetControlByName
    • ,
  • :=
    • ,
  • Value
    • ,
  • GetPropertiesDataClass
    • ,
  • GetPropertiesData
    • ,
  • StoreControlData
    • ,
  • TemplateClassCode
    • ,
  • GetProp
    • ,
  • SetProp
    • ,
  • RegisterClass
    • ,
  • RemoveControl
    • ,
  • Free
    • ,
  • Control
    • ,
  • ~Control
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
ClassLoader

События

  • OnBeforeLoad
  • OnAfterLoad
  • OnEventLoad
  • OnStoreProperty

Методы

  • CreateControlFromFile
  • FlipFromFile
  • ClassLoader
  • @init_exception
  • @done_exception
  • ~ClassLoader

Имя | Тип данных | Значение
WM_CHANGEUISTATE | word | 295
WM_UPDATEUISTATE | word | 296
UIS_SET | byte | 1
UIS_CLEAR | byte | 2
UIS_INITIALIZE | byte | 3
UISF_HIDEFOCUS | byte | 1
UISF_HIDEACCEL | byte | 2
UISF_ACTIVE | byte | 4
WM_NOTIFY | byte | 78
CS_VREDRAW | byte | 1
CS_HREDRAW | byte | 2
CS_KEYCVTWINDOW | byte | 4
CS_DBLCLKS | byte | 8
CS_OWNDC | byte | 32
CS_CLASSDC | byte | 64
CS_PARENTDC | byte | 128
CS_NOKEYCVT | word | 256
CS_NOCLOSE | word | 512
CS_SAVEBITS | word | 2048
CS_BYTEALIGNCLIENT | word | 4096
CS_BYTEALIGNWINDOW | word | 8192
CS_PUBLICCLASS | word | 16384
WS_OVERLAPPED | byte | 0
WS_POPUP | dword | 2147483648
WS_CHILD | dword | 1073741824
WS_MINIMIZE | dword | 536870912
WS_VISIBLE | dword | 268435456
WS_DISABLED | dword | 134217728
WS_CLIPSIBLINGS | dword | 67108864
WS_CLIPCHILDREN | dword | 33554432
WS_MAXIMIZE | dword | 16777216
WS_CAPTION | dword | 12582912
WS_BORDER | dword | 8388608
WS_DLGFRAME | dword | 4194304
WS_VSCROLL | dword | 2097152
WS_HSCROLL | dword | 1048576
WS_SYSMENU | dword | 524288
WS_THICKFRAME | dword | 262144
WS_GROUP | dword | 131072
WS_TABSTOP | dword | 65536
WS_MINIMIZEBOX | dword | 131072
WS_MAXIMIZEBOX | dword | 65536
WS_TILED | byte | 0
WS_ICONIC | dword | 536870912
WS_SIZEBOX | dword | 262144
WS_OVERLAPPEDWINDOW | dword | 13565952
WS_TILEDWINDOW | dword | 13565952
WS_POPUPWINDOW | dword | 2156396544
WS_CHILDWINDOW | dword | 1073741824
WS_EX_DLGMODALFRAME | byte | 1
WS_EX_NOPARENTNOTIFY | byte | 4
WS_EX_TOPMOST | byte | 8
WS_EX_ACCEPTFILES | byte | 16
WS_EX_TRANSPARENT | byte | 32
WS_EX_TOOLWINDOW | byte | 128
WS_EX_SMCAPTION | byte | 128
WS_EX_WINDOWEDGE | word | 256
WS_EX_CLIENTEDGE | word | 512
WS_EX_CONTEXTHELP | word | 1024
WS_EX_RIGHT | word | 4096
WS_EX_LEFT | byte | 0
WS_EX_RTLREADING | word | 8192
WS_EX_LTRREADING | byte | 0
WS_EX_LEFTSCROLLBAR | word | 16384
WS_EX_RIGHTSCROLLBAR | byte | 0
WS_EX_CONTROLPARENT | dword | 65536
WS_EX_STATICEDGE | dword | 131072
WS_EX_APPWINDOW | dword | 262144
WS_EX_OVERLAPPEDWINDOW | word | 768
WS_EX_PALETTEWINDOW | word | 392
WS_EX_LAYERED | dword | 524288
WS_EX_NOINHERITLAYOUT | dword | 1048576
WS_EX_LAYOUTRTL | dword | 4194304
WS_EX_COMPOSITED | dword | 33554432
WS_EX_NOACTIVATE | dword | 134217728
SW_HIDE | byte | 0
SW_SHOWNORMAL | byte | 1
SW_NORMAL | byte | 1
SW_SHOWMINIMIZED | byte | 2
SW_SHOWMAXIMIZED | byte | 3
SW_MAXIMIZE | byte | 3
SW_SHOWNOACTIVATE | byte | 4
SW_SHOW | byte | 5
SW_MINIMIZE | byte | 6
SW_SHOWMINNOACTIVE | byte | 7
SW_SHOWNA | byte | 8
SW_RESTORE | byte | 9
SW_SHOWDEFAULT | byte | 10
SW_MAX | byte | 10
CW_USEDEFAULT | dword | 2147483648
HWND_DESKTOP | byte | 0
COLOR_SCROLLBAR | byte | 0
COLOR_BACKGROUND | byte | 1
COLOR_ACTIVECAPTION | byte | 2
COLOR_INACTIVECAPTION | byte | 3
COLOR_MENU | byte | 4
COLOR_WINDOW | byte | 5
COLOR_WINDOWFRAME | byte | 6
COLOR_MENUTEXT | byte | 7
COLOR_WINDOWTEXT | byte | 8
COLOR_CAPTIONTEXT | byte | 9
COLOR_ACTIVEBORDER | byte | 10
COLOR_INACTIVEBORDER | byte | 11
COLOR_APPWORKSPACE | byte | 12
COLOR_HIGHLIGHT | byte | 13
COLOR_HIGHLIGHTTEXT | byte | 14
COLOR_BTNFACE | byte | 15
COLOR_BTNSHADOW | byte | 16
COLOR_GRAYTEXT | byte | 17
COLOR_BTNTEXT | byte | 18
COLOR_INACTIVECAPTIONTEXT | byte | 19
COLOR_BTNHIGHLIGHT | byte | 20
WM_NULL | byte | 0
WM_CREATE | byte | 1
WM_DESTROY | byte | 2
WM_MOVE | byte | 3
WM_SIZE | byte | 5
IDC_ARROW | word | 32512
IDC_IBEAM | word | 32513
IDC_WAIT | word | 32514
IDC_CROSS | word | 32515
IDC_UPARROW | word | 32516
IDC_SIZE | word | 32640
IDC_ICON | word | 32641
IDC_SIZENWSE | word | 32642
IDC_SIZENESW | word | 32643
IDC_SIZEWE | word | 32644
IDC_SIZENS | word | 32645
IDC_SIZEALL | word | 32646
IDC_NO | word | 32648
IDC_APPSTARTING | word | 32650
GWL_WNDPROC | small | -4
GWL_HINSTANCE | small | -6
GWL_HWNDPARENT | small | -8
GWL_STYLE | small | -16
GWL_EXSTYLE | small | -20
GWL_USERDATA | small | -21
GWL_ID | small | -12
GCL_MENUNAME | small | -8
GCL_HBRBACKGROUND | small | -10
GCL_HCURSOR | small | -12
GCL_HICON | small | -14
GCL_HMODULE | small | -16
GCL_CBWNDEXTRA | small | -18
GCL_CBCLSEXTRA | small | -20
GCL_WNDPROC | small | -24
GCL_STYLE | small | -26
GCW_ATOM | small | -32
WM_ACTIVATE | byte | 6
WA_INACTIVE | byte | 0
WA_ACTIVE | byte | 1
WA_CLICKACTIVE | byte | 2
WM_SETFOCUS | byte | 7
WM_KILLFOCUS | byte | 8
WM_ENABLE | byte | 10
WM_SETREDRAW | byte | 11
WM_SETTEXT | byte | 12
WM_GETTEXT | byte | 13
WM_GETTEXTLENGTH | byte | 14
WM_PAINT | byte | 15
WM_CLOSE | byte | 16
WM_QUERYENDSESSION | byte | 17
WM_QUIT | byte | 18
WM_QUERYOPEN | byte | 19
WM_ERASEBKGND | byte | 20
WM_SYSCOLORCHANGE | byte | 21
WM_ENDSESSION | byte | 22
WM_SHOWWINDOW | byte | 24
WM_WININICHANGE | byte | 26
WM_DEVMODECHANGE | byte | 27
WM_ACTIVATEAPP | byte | 28
WM_FONTCHANGE | byte | 29
WM_TIMECHANGE | byte | 30
WM_CANCELMODE | byte | 31
WM_SETCURSOR | byte | 32
WM_MOUSEACTIVATE | byte | 33
WM_CHILDACTIVATE | byte | 34
WM_QUEUESYNC | byte | 35
WM_GETMINMAXINFO | byte | 36
WM_PAINTICON | byte | 38
WM_ICONERASEBKGND | byte | 39
WM_NEXTDLGCTL | byte | 40
WM_SPOOLERSTATUS | byte | 42
WM_DRAWITEM | byte | 43
WM_MEASUREITEM | byte | 44
WM_DELETEITEM | byte | 45
WM_VKEYTOITEM | byte | 46
WM_CHARTOITEM | byte | 47
WM_SETFONT | byte | 48
WM_GETFONT | byte | 49
WM_SETHOTKEY | byte | 50
WM_GETHOTKEY | byte | 51
WM_QUERYDRAGICON | byte | 55
WM_COMPAREITEM | byte | 57
WM_COMPACTING | byte | 65
WM_OTHERWINDOWCREATED | byte | 66
WM_OTHERWINDOWDESTROYED | byte | 67
WM_COMMNOTIFY | byte | 68
CN_RECEIVE | byte | 1
CN_TRANSMIT | byte | 2
CN_EVENT | byte | 4
WM_WINDOWPOSCHANGING | byte | 70
WM_WINDOWPOSCHANGED | byte | 71
WM_POWER | byte | 72
PWR_OK | byte | 1
PWR_FAIL | small | -1
PWR_SUSPENDREQUEST | byte | 1
PWR_SUSPENDRESUME | byte | 2
PWR_CRITICALRESUME | byte | 3
WM_COPYDATA | byte | 74
WM_CANCELJOURNAL | byte | 75
WM_NCCREATE | byte | 129
WM_NCDESTROY | byte | 130
WM_NCCALCSIZE | byte | 131
WM_NCHITTEST | byte | 132
WM_NCPAINT | byte | 133
WM_NCACTIVATE | byte | 134
WM_GETDLGCODE | byte | 135
WM_NCMOUSEMOVE | byte | 160
WM_NCLBUTTONDOWN | byte | 161
WM_NCLBUTTONUP | byte | 162
WM_NCLBUTTONDBLCLK | byte | 163
WM_NCRBUTTONDOWN | byte | 164
WM_NCRBUTTONUP | byte | 165
WM_NCRBUTTONDBLCLK | byte | 166
WM_NCMBUTTONDOWN | byte | 167
WM_NCMBUTTONUP | byte | 168
WM_NCMBUTTONDBLCLK | byte | 169
WM_KEYFIRST | word | 256
WM_KEYDOWN | word | 256
WM_KEYUP | word | 257
WM_CHAR | word | 258
WM_DEADCHAR | word | 259
WM_SYSKEYDOWN | word | 260
WM_SYSKEYUP | word | 261
WM_SYSCHAR | word | 262
WM_SYSDEADCHAR | word | 263
WM_KEYLAST | word | 264
WM_INITDIALOG | word | 272
WM_COMMAND | word | 273
WM_SYSCOMMAND | word | 274
WM_TIMER | word | 275
WM_HSCROLL | word | 276
WM_VSCROLL | word | 277
WM_INITMENU | word | 278
WM_INITMENUPOPUP | word | 279
WM_MENUSELECT | word | 287
WM_MENUCHAR | word | 288
WM_ENTERIDLE | word | 289
WM_CTLCOLORMSGBOX | word | 306
WM_CTLCOLOREDIT | word | 307
WM_CTLCOLORLISTBOX | word | 308
WM_CTLCOLORBTN | word | 309
WM_CTLCOLORDLG | word | 310
WM_CTLCOLORSCROLLBAR | word | 311
WM_CTLCOLORSTATIC | word | 312
WM_MOUSEFIRST | word | 512
WM_MOUSEMOVE | word | 512
WM_LBUTTONDOWN | word | 513
WM_LBUTTONUP | word | 514
WM_LBUTTONDBLCLK | word | 515
WM_RBUTTONDOWN | word | 516
WM_RBUTTONUP | word | 517
WM_RBUTTONDBLCLK | word | 518
WM_MBUTTONDOWN | word | 519
WM_MBUTTONUP | word | 520
WM_MBUTTONDBLCLK | word | 521
WM_MOUSELAST | word | 521
WM_PARENTNOTIFY | word | 528
WM_ENTERMENULOOP | word | 529
WM_EXITMENULOOP | word | 530
WM_MDICREATE | word | 544
WM_MDIDESTROY | word | 545
WM_MDIACTIVATE | word | 546
WM_MDIRESTORE | word | 547
WM_MDINEXT | word | 548
WM_MDIMAXIMIZE | word | 549
WM_MDITILE | word | 550
WM_MDICASCADE | word | 551
WM_MDIICONARRANGE | word | 552
WM_MDIGETACTIVE | word | 553
WM_MDISETMENU | word | 560
WM_DROPFILES | word | 563
WM_MDIREFRESHMENU | word | 564
WM_CUT | word | 768
WM_COPY | word | 769
WM_PASTE | word | 770
WM_CLEAR | word | 771
WM_UNDO | word | 772
WM_RENDERFORMAT | word | 773
WM_RENDERALLFORMATS | word | 774
WM_DESTROYCLIPBOARD | word | 775
WM_DRAWCLIPBOARD | word | 776
WM_PAINTCLIPBOARD | word | 777
WM_VSCROLLCLIPBOARD | word | 778
WM_SIZECLIPBOARD | word | 779
WM_ASKCBFORMATNAME | word | 780
WM_CHANGECBCHAIN | word | 781
WM_HSCROLLCLIPBOARD | word | 782
WM_QUERYNEWPALETTE | word | 783
WM_PALETTEISCHANGING | word | 784
WM_PALETTECHANGED | word | 785
WM_HOTKEY | word | 786
WM_PENWINFIRST | word | 896
WM_PENWINLAST | word | 911
MK_LBUTTON | byte | 1
MK_RBUTTON | byte | 2
MK_SHIFT | byte | 4
MK_CONTROL | byte | 8
MK_MBUTTON | byte | 16
WM_USER | word | 1024
BS_PUSHBUTTON | byte | 0
BS_DEFPUSHBUTTON | byte | 1
BS_CHECKBOX | byte | 2
BS_AUTOCHECKBOX | byte | 3
BS_RADIOBUTTON | byte | 4
BS_3STATE | byte | 5
BS_AUTO3STATE | byte | 6
BS_GROUPBOX | byte | 7
BS_USERBUTTON | byte | 8
BS_AUTORADIOBUTTON | byte | 9
BS_OWNERDRAW | byte | 11
BS_LEFTTEXT | byte | 32
HWND_TOPMOST | small | -1
HWND_NOTOPMOST | small | -2
SWP_NOSIZE | byte | 1
SWP_NOMOVE | byte | 2
SWP_NOACTIVATE | byte | 16
SWP_SHOWWINDOW | byte | 64
ES_LEFT | byte | 0
ES_CENTER | byte | 1
ES_RIGHT | byte | 2
ES_MULTILINE | byte | 4
ES_UPPERCASE | byte | 8
ES_LOWERCASE | byte | 16
ES_PASSWORD | byte | 32
ES_AUTOVSCROLL | byte | 64
ES_AUTOHSCROLL | byte | 128
ES_NOHIDESEL | word | 256
ES_OEMCONVERT | word | 1024
ES_READONLY | word | 2048
ES_WANTRETURN | word | 4096
EN_SETFOCUS | word | 256
EN_KILLFOCUS | word | 512
EN_CHANGE | word | 768
EN_UPDATE | word | 1024
EN_ERRSPACE | word | 1280
EN_MAXTEXT | word | 1281
EN_HSCROLL | word | 1537
EN_VSCROLL | word | 1538
EM_GETSEL | byte | 176
EM_SETSEL | byte | 177
EM_GETRECT | byte | 178
EM_SETRECT | byte | 179
EM_SETRECTNP | byte | 180
EM_SCROLL | byte | 181
EM_LINESCROLL | byte | 182
EM_SCROLLCARET | byte | 183
EM_GETMODIFY | byte | 184
EM_SETMODIFY | byte | 185
EM_GETLINECOUNT | byte | 186
EM_LINEINDEX | byte | 187
EM_SETHANDLE | byte | 188
EM_GETHANDLE | byte | 189
EM_GETTHUMB | byte | 190
EM_LINELENGTH | byte | 193
EM_REPLACESEL | byte | 194
EM_GETLINE | byte | 196
EM_LIMITTEXT | byte | 197
EM_CANUNDO | byte | 198
EM_UNDO | byte | 199
EM_FMTLINES | byte | 200
EM_LINEFROMCHAR | byte | 201
EM_SETTABSTOPS | byte | 203
EM_SETPASSWORDCHAR | byte | 204
EM_EMPTYUNDOBUFFER | byte | 205
EM_GETFIRSTVISIBLELINE | byte | 206
EM_SETREADONLY | byte | 207
EM_SETWORDBREAKPROC | byte | 208
EM_GETWORDBREAKPROC | byte | 209
EM_GETPASSWORDCHAR | byte | 210
EM_GETLIMITTEXT | dword | 1061
WB_LEFT | byte | 0
WB_RIGHT | byte | 1
WB_ISDELIMITER | byte | 2
BN_CLICKED | byte | 0
BN_PAINT | byte | 1
BN_HILITE | byte | 2
BN_UNHILITE | byte | 3
BN_DISABLE | byte | 4
BN_DOUBLECLICKED | byte | 5
BM_GETCHECK | byte | 240
BM_SETCHECK | byte | 241
BM_GETSTATE | byte | 242
BM_SETSTATE | byte | 243
BM_SETSTYLE | byte | 244
SS_LEFT | byte | 0
SS_CENTER | byte | 1
SS_RIGHT | byte | 2
SS_ICON | byte | 3
SS_BLACKRECT | byte | 4
SS_GRAYRECT | byte | 5
SS_WHITERECT | byte | 6
SS_BLACKFRAME | byte | 7
SS_GRAYFRAME | byte | 8
SS_WHITEFRAME | byte | 9
SS_USERITEM | byte | 10
SS_SIMPLE | byte | 11
SS_LEFTNOWORDWRAP | byte | 12
SS_NOPREFIX | byte | 128
SS_BITMAP | byte | 14
SS_CENTERIMAGE | word | 512
SS_ENHMETAFILE | byte | 15
SS_NOTIFY | word | 256
SS_REALSIZEIMAGE | word | 2048
SS_RIGHTJUST | word | 1024
SS_SUNKEN | word | 4096
SS_ELLIPSISMASK | word | 49152
STM_SETICON | word | 368
STM_GETICON | word | 369
STM_MSGMAX | word | 370
WC_DIALOG | word | 8002
DWL_MSGRESULT | byte | 0
DWL_DLGPROC | byte | 4
DWL_USER | byte | 8
DDL_READWRITE | byte | 0
DDL_READONLY | byte | 1
DDL_HIDDEN | byte | 2
DDL_SYSTEM | byte | 4
DDL_DIRECTORY | byte | 16
DDL_ARCHIVE | byte | 32
DDL_POSTMSGS | word | 8192
DDL_DRIVES | word | 16384
DDL_EXCLUSIVE | word | 32768
DS_ABSALIGN | byte | 1
DS_SYSMODAL | byte | 2
DS_LOCALEDIT | byte | 32
DS_SETFONT | byte | 64
DS_MODALFRAME | byte | 128
DS_NOIDLEMSG | word | 256
DS_SETFOREGROUND | word | 512
DM_GETDEFID | dword | 1024
DM_SETDEFID | dword | 1025
DC_HASDEFID | word | 1332
DLGC_WANTARROWS | byte | 1
DLGC_WANTTAB | byte | 2
DLGC_WANTALLKEYS | byte | 4
DLGC_WANTMESSAGE | byte | 4
DLGC_HASSETSEL | byte | 8
DLGC_DEFPUSHBUTTON | byte | 16
DLGC_UNDEFPUSHBUTTON | byte | 32
DLGC_RADIOBUTTON | byte | 64
DLGC_WANTCHARS | byte | 128
DLGC_STATIC | word | 256
DLGC_BUTTON | word | 8192
LB_CTLCODE | byte | 0
LB_OKAY | byte | 0
LB_ERR | small | -1
LB_ERRSPACE | small | -2
LBN_ERRSPACE | small | -2
LBN_SELCHANGE | byte | 1
LBN_DBLCLK | byte | 2
LBN_SELCANCEL | byte | 3
LBN_SETFOCUS | byte | 4
LBN_KILLFOCUS | byte | 5
LB_ADDSTRING | word | 384
LB_INSERTSTRING | word | 385
LB_DELETESTRING | word | 386
LB_SELITEMRANGEEX | word | 387
LB_RESETCONTENT | word | 388
LB_SETSEL | word | 389
LB_SETCURSEL | word | 390
LB_GETSEL | word | 391
LB_GETCURSEL | word | 392
LB_GETTEXT | word | 393
LB_GETTEXTLEN | word | 394
LB_GETCOUNT | word | 395
LB_SELECTSTRING | word | 396
LB_DIR | word | 397
LB_GETTOPINDEX | word | 398
LB_FINDSTRING | word | 399
LB_GETSELCOUNT | word | 400
LB_GETSELITEMS | word | 401
LB_SETTABSTOPS | word | 402
LB_GETHORIZONTALEXTENT | word | 403
LB_SETHORIZONTALEXTENT | word | 404
LB_SETCOLUMNWIDTH | word | 405
LB_ADDFILE | word | 406
LB_SETTOPINDEX | word | 407
LB_GETITEMRECT | word | 408
LB_GETITEMDATA | word | 409
LB_SETITEMDATA | word | 410
LB_SELITEMRANGE | word | 411
LB_SETANCHORINDEX | word | 412
LB_GETANCHORINDEX | word | 413
LB_SETCARETINDEX | word | 414
LB_GETCARETINDEX | word | 415
LB_SETITEMHEIGHT | word | 416
LB_GETITEMHEIGHT | word | 417
LB_FINDSTRINGEXACT | word | 418
LB_SETLOCALE | word | 421
LB_GETLOCALE | word | 422
LB_SETCOUNT | word | 423
LB_MSGMAX | word | 424
LBS_NOTIFY | byte | 1
LBS_SORT | byte | 2
LBS_NOREDRAW | byte | 4
LBS_MULTIPLESEL | byte | 8
LBS_OWNERDRAWFIXED | byte | 16
LBS_OWNERDRAWVARIABLE | byte | 32
LBS_HASSTRINGS | byte | 64
LBS_USETABSTOPS | byte | 128
LBS_NOINTEGRALHEIGHT | word | 256
LBS_MULTICOLUMN | word | 512
LBS_WANTKEYBOARDINPUT | word | 1024
LBS_EXTENDEDSEL | word | 2048
LBS_DISABLENOSCROLL | word | 4096
LBS_NODATA | word | 8192
LBS_STANDARD | dword | 10485763
CB_OKAY | byte | 0
CB_ERR | small | -1
CB_ERRSPACE | small | -2
CBN_ERRSPACE | small | -1
CBN_SELCHANGE | byte | 1
CBN_DBLCLK | byte | 2
CBN_SETFOCUS | byte | 3
CBN_KILLFOCUS | byte | 4
CBN_EDITCHANGE | byte | 5
CBN_EDITUPDATE | byte | 6
CBN_DROPDOWN | byte | 7
CBN_CLOSEUP | byte | 8
CBN_SELENDOK | byte | 9
CBN_SELENDCANCEL | byte | 10
CBS_SIMPLE | byte | 1
CBS_DROPDOWN | byte | 2
CBS_DROPDOWNLIST | byte | 3
CBS_OWNERDRAWFIXED | byte | 16
CBS_OWNERDRAWVARIABLE | byte | 32
CBS_AUTOHSCROLL | byte | 64
CBS_OEMCONVERT | byte | 128
CBS_SORT | word | 256
CBS_HASSTRINGS | word | 512
CBS_NOINTEGRALHEIGHT | word | 1024
CBS_DISABLENOSCROLL | word | 2048
CB_GETEDITSEL | word | 320
CB_LIMITTEXT | word | 321
CB_SETEDITSEL | word | 322
CB_ADDSTRING | word | 323
CB_DELETESTRING | word | 324
CB_DIR | word | 325
CB_GETCOUNT | word | 326
CB_GETCURSEL | word | 327
CB_GETLBTEXT | word | 328
CB_GETLBTEXTLEN | word | 329
CB_INSERTSTRING | word | 330
CB_RESETCONTENT | word | 331
CB_FINDSTRING | word | 332
CB_SELECTSTRING | word | 333
CB_SETCURSEL | word | 334
CB_SHOWDROPDOWN | word | 335
CB_GETITEMDATA | word | 336
CB_SETITEMDATA | word | 337
CB_GETDROPPEDCONTROLRECT | word | 338
CB_SETITEMHEIGHT | word | 339
CB_GETITEMHEIGHT | word | 340
CB_SETEXTENDEDUI | word | 341
CB_GETEXTENDEDUI | word | 342
CB_GETDROPPEDSTATE | word | 343
CB_FINDSTRINGEXACT | word | 344
CB_SETLOCALE | word | 345
CB_GETLOCALE | word | 346
CB_MSGMAX | word | 347
SBS_HORZ | byte | 0
SBS_VERT | byte | 1
SBS_TOPALIGN | byte | 2
SBS_LEFTALIGN | byte | 2
SBS_BOTTOMALIGN | byte | 4
SBS_RIGHTALIGN | byte | 4
SBS_SIZEBOXTOPLEFTALIGN | byte | 2
SBS_SIZEBOXBOTTOMRIGHTALIGN | byte | 4
SBS_SIZEBOX | byte | 8
SBM_SETPOS | byte | 224
SBM_GETPOS | byte | 225
SBM_SETRANGE | byte | 226
SBM_SETRANGEREDRAW | byte | 230
SBM_GETRANGE | byte | 227
SBM_ENABLE_ARROWS | byte | 228
RDW_INVALIDATE | byte | 1
LF_FACESIZE | byte | 32
LF_FULLFACESIZE | byte | 64
TA_NOUPDATECP | byte | 0
TA_UPDATECP | byte | 1
TA_LEFT | byte | 0
TA_RIGHT | byte | 2
TA_CENTER | byte | 6
TA_TOP | byte | 0
TA_BOTTOM | byte | 8
TA_BASELINE | byte | 24
TA_MASK | dword | 31
BS_SOLID | byte | 0
BS_NULL | byte | 1
BS_HOLLOW | byte | 1
BS_HATCHED | byte | 2
BS_PATTERN | byte | 3
BS_INDEXED | byte | 4
BS_DIBPATTERN | byte | 5
BS_DIBPATTERNPT | byte | 6
BS_PATTERN8X8 | byte | 7
BS_DIBPATTERN8X8 | byte | 8
HS_HORIZONTAL | byte | 0
HS_VERTICAL | byte | 1
HS_FDIAGONAL | byte | 2
HS_BDIAGONAL | byte | 3
HS_CROSS | byte | 4
HS_DIAGCROSS | byte | 5
HS_FDIAGONAL1 | byte | 6
HS_BDIAGONAL1 | byte | 7
HS_SOLID | byte | 8
HS_DENSE1 | byte | 9
HS_DENSE2 | byte | 10
HS_DENSE3 | byte | 11
HS_DENSE4 | byte | 12
HS_DENSE5 | byte | 13
HS_DENSE6 | byte | 14
HS_DENSE7 | byte | 15
HS_DENSE8 | byte | 16
HS_NOSHADE | byte | 17
HS_HALFTONE | byte | 18
HS_SOLIDCLR | byte | 19
HS_DITHEREDCLR | byte | 20
HS_SOLIDTEXTCLR | byte | 21
HS_DITHEREDTEXTCLR | byte | 22
HS_SOLIDBKCLR | byte | 23
HS_DITHEREDBKCLR | byte | 24
HS_API_MAX | byte | 25
MIIM_STATE | byte | 1
MIIM_ID | byte | 2
MIIM_SUBMENU | byte | 4
MIIM_CHECKMARKS | byte | 8
MIIM_TYPE | byte | 16
MIIM_DATA | byte | 32
MIIM_STRING | byte | 64
MIIM_BITMAP | byte | 128
MIIM_FTYPE | word | 256
MF_INSERT | byte | 0
MF_CHANGE | byte | 128
MF_APPEND | word | 256
MF_DELETE | word | 512
MF_REMOVE | word | 4096
MF_BYCOMMAND | byte | 0
MF_BYPOSITION | word | 1024
MF_SEPARATOR | word | 2048
MF_ENABLED | byte | 0
MF_GRAYED | byte | 1
MF_DISABLED | byte | 2
MF_UNCHECKED | byte | 0
MF_CHECKED | byte | 8
MF_USECHECKBITMAPS | word | 512
MF_STRING | byte | 0
MF_BITMAP | byte | 4
MF_OWNERDRAW | word | 256
MF_POPUP | byte | 16
MF_MENUBARBREAK | byte | 32
MF_MENUBREAK | byte | 64
MF_UNHILITE | byte | 0
MF_HILITE | byte | 128
MF_SYSMENU | word | 8192
MF_HELP | word | 16384
MF_MOUSESELECT | word | 32768
MFS_CHECKED | byte | 8
MFS_ENABLED | byte | 0
MFT_STRING | byte | 0
MFT_RADIOCHECK | word | 512
MFT_SEPARATOR | word | 2048
MF_END | byte | 128
SC_SIZE | word | 61440
SC_MOVE | word | 61456
SC_MINIMIZE | word | 61472
SC_MAXIMIZE | word | 61488
SC_NEXTWINDOW | word | 61504
SC_PREVWINDOW | word | 61520
SC_CLOSE | word | 61536
SC_VSCROLL | word | 61552
SC_HSCROLL | word | 61568
SC_MOUSEMENU | word | 61584
SC_KEYMENU | word | 61696
SC_ARRANGE | word | 61712
SC_RESTORE | word | 61728
SC_TASKLIST | word | 61744
SC_SCREENSAVE | word | 61760
SC_HOTKEY | word | 61776
SC_ICON | word | 61472
SC_ZOOM | word | 61488
PS_SOLID | byte | 0
PS_DASH | byte | 1
PS_DOT | byte | 2
PS_DASHDOT | byte | 3
PS_DASHDOTDOT | byte | 4
PS_NULL | byte | 5
PS_INSIDEFRAME | byte | 6
PS_USERSTYLE | byte | 7
PS_ALTERNATE | byte | 8
PS_STYLE_MASK | byte | 15
PS_ENDCAP_ROUND | byte | 0
PS_ENDCAP_SQUARE | word | 256
PS_ENDCAP_FLAT | word | 512
PS_ENDCAP_MASK | word | 3840
PS_JOIN_ROUND | byte | 0
PS_JOIN_BEVEL | word | 4096
PS_JOIN_MITER | word | 8192
PS_JOIN_MASK | word | 61440
PS_COSMETIC | byte | 0
PS_GEOMETRIC | dword | 65536
PS_TYPE_MASK | dword | 983040
SB_HORZ | byte | 0
SB_VERT | byte | 1
SB_CTL | byte | 2
SB_BOTH | byte | 3
SB_LINEUP | byte | 0
SB_LINELEFT | byte | 0
SB_LINEDOWN | byte | 1
SB_LINERIGHT | byte | 1
SB_PAGEUP | byte | 2
SB_PAGELEFT | byte | 2
SB_PAGEDOWN | byte | 3
SB_PAGERIGHT | byte | 3
SB_THUMBPOSITION | byte | 4
SB_THUMBTRACK | byte | 5
SB_TOP | byte | 6
SB_LEFT | byte | 6
SB_BOTTOM | byte | 7
SB_RIGHT | byte | 7
SB_ENDSCROLL | byte | 8
SW_SCROLLCHILDREN | byte | 1
SW_INVALIDATE | byte | 2
SW_ERASE | byte | 4
ESB_ENABLE_BOTH | byte | 0
ESB_DISABLE_BOTH | byte | 3
ESB_DISABLE_LEFT | byte | 1
ESB_DISABLE_RIGHT | byte | 2
ESB_DISABLE_UP | byte | 1
ESB_DISABLE_DOWN | byte | 2
ESB_DISABLE_LTUP | byte | 1
ESB_DISABLE_RTDN | byte | 2
SIF_RANGE | byte | 1
SIF_PAGE | byte | 2
SIF_POS | byte | 4
SIF_DISABLENOSCROLL | byte | 8
SIF_TRACKPOS | byte | 16
SIF_ALL | byte | 23
LR_LOADFROMFILE | byte | 16
IMAGE_BITMAP | byte | 0
IMAGE_ICON | byte | 1
IMAGE_CURSOR | byte | 2
IMAGE_ENHMETAFILE | byte | 3
CF_BITMAP | byte | 2
STM_SETIMAGE | word | 370
TVS_HASBUTTONS | byte | 1
TVS_HASLINES | byte | 2
TVS_LINESATROOT | byte | 4
TVS_EDITLABELS | byte | 8
TVS_DISABLEDRAGDROP | byte | 16
TVS_SHOWSELALWAYS | byte | 32

published enum BackgroundStyles

Имя | Значение
Transparent | 1
Opaque | 2

Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (byref Class As WNDCLASS) As Long

Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long

Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, Byref lpClassName As String, Byref lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long,byval lpParam As long) As Long

Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Sub PostQuitMessage Lib "user32" (ByVal nExitCode As Long)

Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long

Declare Function TranslateMessage Lib "user32" (lpMsg As Msg) As Long

Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As Msg) As Long

Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Any) As Long

Declare Function DefMDIChildProc Lib "user32" Alias "DefMDIChildProcA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Define information of the window (pointed to by hWnd)

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As dword) As Long

Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As Long, ByVal cch As Long) As Long

Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As Long) As Long

Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long

Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long

Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long) As Long

Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex As Long) As Long

Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long

Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long

Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, byref lpRect As RECT) As Long

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Long, lpRect As RECT) As Long

Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long

Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, byval lParam As Long) As Long

Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

Declare Function RedrawWindow Lib "user32" (ByVal hwnd As Long, byref lprcUpdate As Rect, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long

Declare Sub InitCommonControls Lib "comctl32" ()

Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, byref lpPoint As POINTAPI) As Long

Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long

Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long

Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long

Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long

Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long

Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long

Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long

Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long

Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W2 As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long

Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long) As Long

Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpString As String) As Long

Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long

Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long

Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long

Declare Function UpdateColors Lib "gdi32" Alias "UpdateColors" (ByVal hdc As Long) As Long

Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Timer.inc

Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Declare Function CreateBrushIndirect Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long

Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

GetSystemMetrics() codes

Declare Function LoadMenu Lib "user32" Alias "LoadMenuA" (ByVal hInstance As Long, ByVal lpString As String) As Long

Declare Function LoadMenuIndirect Lib "user32" Alias "LoadMenuIndirectA" (ByVal lpMenuTemplate As Long) As Long

Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long

Declare Function SetMenu Lib "user32" Alias "SetMenu" (ByVal hwnd As Long, ByVal hMenu As Long) As Long

Declare Function HiliteMenuItem Lib "user32" Alias "HiliteMenuItem" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal wIDHiliteItem As Long, ByVal wHilite As Long) As Long

Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long

Declare Function GetMenuState Lib "user32" Alias "GetMenuState" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long

Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long

Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long

Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long

Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long

Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long

Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long

Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long

Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long

Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As string) As Long

Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As string) As Long

Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Declare Function SetMenuItemBitmaps Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long

Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long

Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Rect) As Long

Declare Function SetMenuDefaultItem Lib "user32" Alias "SetMenuDefaultItem" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long

Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Long, byref lpcMenuItemInfo As MENUITEMINFO) As Long

Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long

Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long

Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, byref lpmii As MENUITEMINFO) As Long

Declare Function GetMenuItemRect Lib "user32" Alias "GetMenuItemRect" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long

Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Long, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long

Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function BeginPaint Lib "user32" Alias "BeginPaint" (ByVal hwnd As Long, byref lpPaint As PAINTSTRUCT) As Long

Declare Function EndPaint Lib "user32" Alias "EndPaint" (ByVal hwnd As Long, byref lpPaint As PAINTSTRUCT) As Long

Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long

Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long

Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As Long) As Long

Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long

Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long

Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) As Long

Declare Function InvalidateRect Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long

Declare Function ValidateRect Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, lpRect As RECT) As Long

Declare Function InvalidateRgn Lib "user32" Alias "InvalidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bErase As Long) As Long

Declare Function ValidateRgn Lib "user32" Alias "ValidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long) As Long

Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long

Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect" (lpLogPen As LOGPEN) As Long

Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (byref pOpenfilename As OPENFILENAME) As Long

Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (byref pOpenfilename As OPENFILENAME) As Long

Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long

Declare Function ScrollWindow Lib "user32" Alias "ScrollWindow" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long

Declare Function ScrollDC Lib "user32" Alias "ScrollDC" (ByVal hdc As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT) As Long

Declare Function ScrollWindowEx Lib "user32" Alias "ScrollWindowEx" (ByVal hwnd As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT, ByVal fuScroll As Long) As Long

Declare Function SetScrollPos Lib "user32" Alias "SetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nPos As Long, ByVal bRedraw As Long) As Long

Declare Function GetScrollPos Lib "user32" Alias "GetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long) As Long

Declare Function SetScrollRange Lib "user32" Alias "SetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal bRedraw As Long) As Long

Declare Function GetScrollRange Lib "user32" Alias "GetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long

Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long

Declare Function EnableScrollBar Lib "user32" Alias "EnableScrollBar" (ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long

Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long

Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As Long) As Long

Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long

Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByRef lpCmdLine As String, ByVal nCmdShow As Long) As Long

Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, byref lpcScrollInfo As SCROLLINFO, ByVal bool As Boolean) As Long

Declare Function GetScrollInfo Lib "user32" Alias "GetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, byref lpScrollInfo As SCROLLINFO) As Long

Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, Byref lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long

function HiWord ( byval value as dword ) as word

function HiWords ( byval value as dword ) as word

function LoWord ( byval value as dword ) as word

function MakeParam (byval x as dword, byval y as dword) as dword

public sub RegisterClass ( byval ClassName as string, byval CreateMethod as pointer )

LєэъЎш ЁхушёЄЁшЁєхЄ ъырёё ClassName, CreateMethod - єърчрЄхы№ эр ъюэёЄЁєъЄюЁ ё ЁюфшЄхыхь

public function CreateControl ( byval ClassName as string, byref Parent as Control ) as pointer

LєэъЎш ёючфр¬Є ¤ъчхьяы Ё юс·хъЄр ъырёёр ClassName ё ЁюфшЄхыхь Parent, хёыш ъырёё TlassName чрЁхухёЄЁшЁютрэ ЇєэъЎшхщ RegisterClass

sub ClassLoader_OnBeforeLoad ( byref Loader as ClassLoader, byref Ctrl as Control )

sub ClassLoader_OnAfterLoad ( byref Loader as ClassLoader, byref Ctrl as Control )

sub ClassLoader_OnEventLoad ( byref Loader as ClassLoader, byref Ctrl as Control, byval f as file )

sub ClassLoader_OnStoreProperty ( byref Loader as ClassLoader, byref Ctrl as Control, byval PropName as string )

public function CreateControlFromFile ( byval FileName as string ) as pointer

sub InitLibrary

sub ReleaseLibrary

class ControlEventBuilder

Класс ControlEventBuilder используется FormBuilder для загрузки свойств, данный класс не используется при разработки программы.

Метод класса ControlEventBuilder

virtual sub GetEventDeclares ( byref ret as string, byref ctrl as Object, byval cmd as integer )

Нет описания

Метод класса ControlEventBuilder

virtual sub StoreCurrentProperty ( byref ret as boolean, byref ctrl as Object, byref pi as PropertyInfo )

Нет описания

Метод класса ControlEventBuilder

public declare sub @init_exception()

Нет описания

Метод класса ControlEventBuilder

public declare sub @done_exception()

Нет описания

Метод класса ControlEventBuilder

declare sub ControlEventBuilder()

Нет описания

Метод класса ControlEventBuilder

declare sub ~ControlEventBuilder()

Нет описания

published class Control

Класс Control также является хранилищем контролов. т.е все контролы которые создаются с родителем данного контрола имеют ссылку на данный контрол. И контрол имеет ссылки на все дочерние контролы. Ссылки дочерних контролов можно получить с помощью GetControlCount, GetControl

Свойство класса Control

published property ParentControl as Control

¦юфшЄхы№ёъшщ ъюэЄЁюы

Свойство класса Control

published property IsDesigning as Boolean

True, хёыш ъюьяюэхэЄ ЁхфръЄшЁєхЄё т ЁхфръЄюЁх ЇюЁь

Свойство класса Control

published property Name as string

Lь ъюэЄЁюыр

Свойство класса Control

published property ControlId as Integer

LфхэЄшЇшърЄюЁ ъюэЄЁюыр

Свойство класса Control

published property ChildClass as Boolean

true, хёыш ъырёё чvы хЄё фюўхЁэшь ( т ёыєўрх хёыш ъырёё ёючфр¬Єё ртЄюьрЄшўхёъш ) =ряЁшьхЁ є ЇюЁьv ъырёё Form.Canvas.ChildClass = true

Метод класса Control

function GetParentClass () as pointer

TючтЁр•рхЄ ЁюфшЄхы№ёъшщ ъырёё, хёыш эхЄ Єю тючтЁр•рхЄ null

Метод класса Control

sub AddControl ( byref m_Control as Control )

-юсрты хЄ ъюэЄЁюы ъ ъюыыхъЎш¦ фюўхЁэшї ъюэЄЁюыют.

Метод класса Control

function GetControl ( byval Index as integer ) as pointer

LєэъЎш тючтЁр•рхЄ єърчрЄхы№ эр Control яю шэфхъёє

Метод класса Control

function GetControlCount () as integer

TючтЁр•рхЄ ъюы-тю фюўхЁэшї ъюэЄЁюыют ( ъюьяюэхэЄ )

Метод класса Control

virtual function Value () as string

Нет описания

Метод класса Control

function GetControlById ( byval Id as integer ) as pointer

TючтЁр•рхЄ ёёvыъє эр Control яю єэшър№ыэюьє шфхэЄшЇшърЄюЁє

Метод класса Control

function IsImplement ( byval CName as string ) as boolean

TючтЁр•рхЄ true, хёыш ъырёё сvы яюЁрцф¬э юЄ ъырёёр CName

Метод класса Control

function GetControlByhWnd ( byval Wnd as integer ) as pointer

TючтЁр•рхЄ ёёvыъє эр Control яю hWnd

Метод класса Control

function GetControlByName ( byval cName as string ) as pointer

TючтЁр•рхЄ ёёvыъє эр Control яю єэшър№ыэюьє шьхэш

Метод класса Control

public virtual operator := ( byref col as Collection ) as byte

Нет описания

Метод класса Control

virtual function Value () as string

TючтЁр•рхЄ Єхъє•хх чэрўхэшх ъюэЄЁюыр. +ёыш ъюэЄЁюы Eidt, Єю тючтЁр•рхЄ Edit.Caption, ш.Є.ф тючтЁр•рхЄ ЁхфръЄшЁєхьюх чэрўхэшх ъюэЄЁюыр т тшфх ёЄюъш

Метод класса Control

function GetPropertiesDataClass ( byref CName as string, byref Builder as ControlEventBuilder) as string

TючтЁр•рхЄ яюЄюъ чэрўхэшщ ётющёЄт Єхъє•хую юс·хъЄр, ётющёЄтр ъырёёр CName

Метод класса Control

function GetPropertiesData ( byref Builder as ControlEventBuilder ) as string

TючтЁр•рхЄ яюЄюъ чэрўхэшщ ётющёЄт Єхъє•хую юс·хъЄр

Метод класса Control

function StoreControlData ( byref Builder as ControlEventBuilder ) as string

Нет описания

Метод класса Control

function TemplateClassCode ( byref Builder as ControlEventBuilder ) as string

Нет описания

Метод класса Control

function GetProp ( byval PropertyName as string ) as string

TючтЁр•рхЄ чэрўхэшх ётющёЄтр, эряЁшьхЁ:
dim Form1 as Form
msgbox Form1.GetProp ("Caption")

Метод класса Control

function SetProp ( byval PropertyName as string, byval Value as string ) as string

LёЄрэртыштрхЄ чэрўхэшх ётющёЄтр, эряЁшьхЁ:
dim Form1 as Form
msgbox Form1.GetProp ("Caption")

Метод класса Control

sub RegisterClass ( byval CreateMethod as pointer )

¦хушёЄЁрЎш ъырёёр, ЁхушёЄЁрЎш ьхЄюфр ъюэёЄЁєъЄюЁр ( ё ЁюфшЄхыхь )

Метод класса Control

declare sub RemoveControl ( byref Control as Control )

Нет описания

Метод класса Control

virtual sub Free ()

Нет описания

Метод класса Control

sub Control ()

Нет описания

Метод класса Control

sub ~Control ()

Нет описания

Метод класса Control

public declare sub @init_exception()

Нет описания

Метод класса Control

public declare sub @done_exception()

Нет описания

class ClassLoader

Tяюью•№¦ фрээюую ъырёёр ьюцэю тvяюыэ Є№ фхщёЄтш эрф юс·хъЄрьш тю тЁхь чруЁєчъш.

Событие класса ClassLoader

event OnBeforeLoad ( byref Ctrl as Control )

TvчvтрхЄё фю чруЁєчъш ётющёЄт фы фрээюую ъюьяюэхэЄр

Событие класса ClassLoader

event OnAfterLoad ( byref Ctrl as Control )

TvчvтрхЄё яюёых чруЁєчъш ётющёЄт фы фрээюую ъюьяюэхэЄр

Событие класса ClassLoader

event OnEventLoad ( byref Ctrl as Control, byval f as file )

TvчvтрхЄё т ьюьхэЄ чруЁєчъш ётющёЄт

Событие класса ClassLoader

event OnStoreProperty ( byref Ctrl as Control, byval PropName as string )

Нет описания

Метод класса ClassLoader

public function CreateControlFromFile ( byval FileName as string ) as pointer

LєэъЎш CreateControlFromFile ёючфр¬Є ъюэЄЁюы шч Їрщыр. т Їрых ёюфхЁцрЄё фрээvх, ёухэхЁшЁютрээvх тшчєры№эvь яюёЄЁюшЄхыхь ЇюЁь. ЇєэъЎш тючтЁр•рхЄ ёёvыъє эр ъырёё Control. ¦ЁшьхЁ:
dim byref Form as Form set Form = CreateControlFromFile ("Form1.frm")

Метод класса ClassLoader

public function FlipFromFile ( byref ctrl as Control,byval FileName as string ) as pointer

Нет описания

Метод класса ClassLoader

sub ClassLoader

Нет описания

Метод класса ClassLoader

public declare sub @init_exception()

Нет описания

Метод класса ClassLoader

public declare sub @done_exception()

Нет описания

Метод класса ClassLoader

declare sub ~ClassLoader()

Нет описания

WM_CHANGEUISTATE, WM_UPDATEUISTATE, UIS_SET, UIS_CLEAR, UIS_INITIALIZE, UISF_HIDEFOCUS, UISF_HIDEACCEL, UISF_ACTIVE, WM_NOTIFY, CS_VREDRAW, CS_HREDRAW, CS_KEYCVTWINDOW, CS_DBLCLKS, CS_OWNDC, CS_CLASSDC, CS_PARENTDC, CS_NOKEYCVT, CS_NOCLOSE, CS_SAVEBITS, CS_BYTEALIGNCLIENT, CS_BYTEALIGNWINDOW, CS_PUBLICCLASS, WS_OVERLAPPED, WS_POPUP, WS_CHILD, WS_MINIMIZE, WS_VISIBLE, WS_DISABLED, WS_CLIPSIBLINGS, WS_CLIPCHILDREN, WS_MAXIMIZE, WS_CAPTION, WS_BORDER, WS_DLGFRAME, WS_VSCROLL, WS_HSCROLL, WS_SYSMENU, WS_THICKFRAME, WS_GROUP, WS_TABSTOP, WS_MINIMIZEBOX, WS_MAXIMIZEBOX, WS_TILED, WS_ICONIC, WS_SIZEBOX, WS_OVERLAPPEDWINDOW, WS_TILEDWINDOW, WS_POPUPWINDOW, WS_CHILDWINDOW, WS_EX_DLGMODALFRAME, WS_EX_NOPARENTNOTIFY, WS_EX_TOPMOST, WS_EX_ACCEPTFILES, WS_EX_TRANSPARENT, WS_EX_TOOLWINDOW, WS_EX_SMCAPTION, WS_EX_WINDOWEDGE, WS_EX_CLIENTEDGE, WS_EX_CONTEXTHELP, WS_EX_RIGHT, WS_EX_LEFT, WS_EX_RTLREADING, WS_EX_LTRREADING, WS_EX_LEFTSCROLLBAR, WS_EX_RIGHTSCROLLBAR, WS_EX_CONTROLPARENT, WS_EX_STATICEDGE, WS_EX_APPWINDOW, WS_EX_OVERLAPPEDWINDOW, WS_EX_PALETTEWINDOW, WS_EX_LAYERED, WS_EX_NOINHERITLAYOUT, WS_EX_LAYOUTRTL, WS_EX_COMPOSITED, WS_EX_NOACTIVATE, SW_HIDE, SW_SHOWNORMAL, SW_NORMAL, SW_SHOWMINIMIZED, SW_SHOWMAXIMIZED, SW_MAXIMIZE, SW_SHOWNOACTIVATE, SW_SHOW, SW_MINIMIZE, SW_SHOWMINNOACTIVE, SW_SHOWNA, SW_RESTORE, SW_SHOWDEFAULT, SW_MAX, CW_USEDEFAULT, HWND_DESKTOP, COLOR_SCROLLBAR, COLOR_BACKGROUND, COLOR_ACTIVECAPTION, COLOR_INACTIVECAPTION, COLOR_MENU, COLOR_WINDOW, COLOR_WINDOWFRAME, COLOR_MENUTEXT, COLOR_WINDOWTEXT, COLOR_CAPTIONTEXT, COLOR_ACTIVEBORDER, COLOR_INACTIVEBORDER, COLOR_APPWORKSPACE, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT, COLOR_BTNFACE, COLOR_BTNSHADOW, COLOR_GRAYTEXT, COLOR_BTNTEXT, COLOR_INACTIVECAPTIONTEXT, COLOR_BTNHIGHLIGHT, WM_NULL, WM_CREATE, WM_DESTROY, WM_MOVE, WM_SIZE, IDC_ARROW, IDC_IBEAM, IDC_WAIT, IDC_CROSS, IDC_UPARROW, IDC_SIZE, IDC_ICON, IDC_SIZENWSE, IDC_SIZENESW, IDC_SIZEWE, IDC_SIZENS, IDC_SIZEALL, IDC_NO, IDC_APPSTARTING, GWL_WNDPROC, GWL_HINSTANCE, GWL_HWNDPARENT, GWL_STYLE, GWL_EXSTYLE, GWL_USERDATA, GWL_ID, GCL_MENUNAME, GCL_HBRBACKGROUND, GCL_HCURSOR, GCL_HICON, GCL_HMODULE, GCL_CBWNDEXTRA, GCL_CBCLSEXTRA, GCL_WNDPROC, GCL_STYLE, GCW_ATOM, WM_ACTIVATE, WA_INACTIVE, WA_ACTIVE, WA_CLICKACTIVE, WM_SETFOCUS, WM_KILLFOCUS, WM_ENABLE, WM_SETREDRAW, WM_SETTEXT, WM_GETTEXT, WM_GETTEXTLENGTH, WM_PAINT, WM_CLOSE, WM_QUERYENDSESSION, WM_QUIT, WM_QUERYOPEN, WM_ERASEBKGND, WM_SYSCOLORCHANGE, WM_ENDSESSION, WM_SHOWWINDOW, WM_WININICHANGE, WM_DEVMODECHANGE, WM_ACTIVATEAPP, WM_FONTCHANGE, WM_TIMECHANGE, WM_CANCELMODE, WM_SETCURSOR, WM_MOUSEACTIVATE, WM_CHILDACTIVATE, WM_QUEUESYNC, WM_GETMINMAXINFO, WM_PAINTICON, WM_ICONERASEBKGND, WM_NEXTDLGCTL, WM_SPOOLERSTATUS, WM_DRAWITEM, WM_MEASUREITEM, WM_DELETEITEM, WM_VKEYTOITEM, WM_CHARTOITEM, WM_SETFONT, WM_GETFONT, WM_SETHOTKEY, WM_GETHOTKEY, WM_QUERYDRAGICON, WM_COMPAREITEM, WM_COMPACTING, WM_OTHERWINDOWCREATED, WM_OTHERWINDOWDESTROYED, WM_COMMNOTIFY, CN_RECEIVE, CN_TRANSMIT, CN_EVENT, WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED, WM_POWER, PWR_OK, PWR_FAIL, PWR_SUSPENDREQUEST, PWR_SUSPENDRESUME, PWR_CRITICALRESUME, WM_COPYDATA, WM_CANCELJOURNAL, WM_NCCREATE, WM_NCDESTROY, WM_NCCALCSIZE, WM_NCHITTEST, WM_NCPAINT, WM_NCACTIVATE, WM_GETDLGCODE, WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, WM_NCLBUTTONDBLCLK, WM_NCRBUTTONDOWN, WM_NCRBUTTONUP, WM_NCRBUTTONDBLCLK, WM_NCMBUTTONDOWN, WM_NCMBUTTONUP, WM_NCMBUTTONDBLCLK, WM_KEYFIRST, WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_DEADCHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_SYSCHAR, WM_SYSDEADCHAR, WM_KEYLAST, WM_INITDIALOG, WM_COMMAND, WM_SYSCOMMAND, WM_TIMER, WM_HSCROLL, WM_VSCROLL, WM_INITMENU, WM_INITMENUPOPUP, WM_MENUSELECT, WM_MENUCHAR, WM_ENTERIDLE, WM_CTLCOLORMSGBOX, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORBTN, WM_CTLCOLORDLG, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC, WM_MOUSEFIRST, WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_RBUTTONDBLCLK, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MBUTTONDBLCLK, WM_MOUSELAST, WM_PARENTNOTIFY, WM_ENTERMENULOOP, WM_EXITMENULOOP, WM_MDICREATE, WM_MDIDESTROY, WM_MDIACTIVATE, WM_MDIRESTORE, WM_MDINEXT, WM_MDIMAXIMIZE, WM_MDITILE, WM_MDICASCADE, WM_MDIICONARRANGE, WM_MDIGETACTIVE, WM_MDISETMENU, WM_DROPFILES, WM_MDIREFRESHMENU, WM_CUT, WM_COPY, WM_PASTE, WM_CLEAR, WM_UNDO, WM_RENDERFORMAT, WM_RENDERALLFORMATS, WM_DESTROYCLIPBOARD, WM_DRAWCLIPBOARD, WM_PAINTCLIPBOARD, WM_VSCROLLCLIPBOARD, WM_SIZECLIPBOARD, WM_ASKCBFORMATNAME, WM_CHANGECBCHAIN, WM_HSCROLLCLIPBOARD, WM_QUERYNEWPALETTE, WM_PALETTEISCHANGING, WM_PALETTECHANGED, WM_HOTKEY, WM_PENWINFIRST, WM_PENWINLAST, MK_LBUTTON, MK_RBUTTON, MK_SHIFT, MK_CONTROL, MK_MBUTTON, WM_USER, BS_PUSHBUTTON, BS_DEFPUSHBUTTON, BS_CHECKBOX, BS_AUTOCHECKBOX, BS_RADIOBUTTON, BS_3STATE, BS_AUTO3STATE, BS_GROUPBOX, BS_USERBUTTON, BS_AUTORADIOBUTTON, BS_OWNERDRAW, BS_LEFTTEXT, HWND_TOPMOST, HWND_NOTOPMOST, SWP_NOSIZE, SWP_NOMOVE, SWP_NOACTIVATE, SWP_SHOWWINDOW, ES_LEFT, ES_CENTER, ES_RIGHT, ES_MULTILINE, ES_UPPERCASE, ES_LOWERCASE, ES_PASSWORD, ES_AUTOVSCROLL, ES_AUTOHSCROLL, ES_NOHIDESEL, ES_OEMCONVERT, ES_READONLY, ES_WANTRETURN, EN_SETFOCUS, EN_KILLFOCUS, EN_CHANGE, EN_UPDATE, EN_ERRSPACE, EN_MAXTEXT, EN_HSCROLL, EN_VSCROLL, EM_GETSEL, EM_SETSEL, EM_GETRECT, EM_SETRECT, EM_SETRECTNP, EM_SCROLL, EM_LINESCROLL, EM_SCROLLCARET, EM_GETMODIFY, EM_SETMODIFY, EM_GETLINECOUNT, EM_LINEINDEX, EM_SETHANDLE, EM_GETHANDLE, EM_GETTHUMB, EM_LINELENGTH, EM_REPLACESEL, EM_GETLINE, EM_LIMITTEXT, EM_CANUNDO, EM_UNDO, EM_FMTLINES, EM_LINEFROMCHAR, EM_SETTABSTOPS, EM_SETPASSWORDCHAR, EM_EMPTYUNDOBUFFER, EM_GETFIRSTVISIBLELINE, EM_SETREADONLY, EM_SETWORDBREAKPROC, EM_GETWORDBREAKPROC, EM_GETPASSWORDCHAR, EM_GETLIMITTEXT, WB_LEFT, WB_RIGHT, WB_ISDELIMITER, BN_CLICKED, BN_PAINT, BN_HILITE, BN_UNHILITE, BN_DISABLE, BN_DOUBLECLICKED, BM_GETCHECK, BM_SETCHECK, BM_GETSTATE, BM_SETSTATE, BM_SETSTYLE, SS_LEFT, SS_CENTER, SS_RIGHT, SS_ICON, SS_BLACKRECT, SS_GRAYRECT, SS_WHITERECT, SS_BLACKFRAME, SS_GRAYFRAME, SS_WHITEFRAME, SS_USERITEM, SS_SIMPLE, SS_LEFTNOWORDWRAP, SS_NOPREFIX, SS_BITMAP, SS_CENTERIMAGE, SS_ENHMETAFILE, SS_NOTIFY, SS_REALSIZEIMAGE, SS_RIGHTJUST, SS_SUNKEN, SS_ELLIPSISMASK, STM_SETICON, STM_GETICON, STM_MSGMAX, WC_DIALOG, DWL_MSGRESULT, DWL_DLGPROC, DWL_USER, DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES, DDL_EXCLUSIVE, DS_ABSALIGN, DS_SYSMODAL, DS_LOCALEDIT, DS_SETFONT, DS_MODALFRAME, DS_NOIDLEMSG, DS_SETFOREGROUND, DM_GETDEFID, DM_SETDEFID, DC_HASDEFID, DLGC_WANTARROWS, DLGC_WANTTAB, DLGC_WANTALLKEYS, DLGC_WANTMESSAGE, DLGC_HASSETSEL, DLGC_DEFPUSHBUTTON, DLGC_UNDEFPUSHBUTTON, DLGC_RADIOBUTTON, DLGC_WANTCHARS, DLGC_STATIC, DLGC_BUTTON, LB_CTLCODE, LB_OKAY, LB_ERR, LB_ERRSPACE, LBN_ERRSPACE, LBN_SELCHANGE, LBN_DBLCLK, LBN_SELCANCEL, LBN_SETFOCUS, LBN_KILLFOCUS, LB_ADDSTRING, LB_INSERTSTRING, LB_DELETESTRING, LB_SELITEMRANGEEX, LB_RESETCONTENT, LB_SETSEL, LB_SETCURSEL, LB_GETSEL, LB_GETCURSEL, LB_GETTEXT, LB_GETTEXTLEN, LB_GETCOUNT, LB_SELECTSTRING, LB_DIR, LB_GETTOPINDEX, LB_FINDSTRING, LB_GETSELCOUNT, LB_GETSELITEMS, LB_SETTABSTOPS, LB_GETHORIZONTALEXTENT, LB_SETHORIZONTALEXTENT, LB_SETCOLUMNWIDTH, LB_ADDFILE, LB_SETTOPINDEX, LB_GETITEMRECT, LB_GETITEMDATA, LB_SETITEMDATA, LB_SELITEMRANGE, LB_SETANCHORINDEX, LB_GETANCHORINDEX, LB_SETCARETINDEX, LB_GETCARETINDEX, LB_SETITEMHEIGHT, LB_GETITEMHEIGHT, LB_FINDSTRINGEXACT, LB_SETLOCALE, LB_GETLOCALE, LB_SETCOUNT, LB_MSGMAX, LBS_NOTIFY, LBS_SORT, LBS_NOREDRAW, LBS_MULTIPLESEL, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE, LBS_HASSTRINGS, LBS_USETABSTOPS, LBS_NOINTEGRALHEIGHT, LBS_MULTICOLUMN, LBS_WANTKEYBOARDINPUT, LBS_EXTENDEDSEL, LBS_DISABLENOSCROLL, LBS_NODATA, LBS_STANDARD, CB_OKAY, CB_ERR, CB_ERRSPACE, CBN_ERRSPACE, CBN_SELCHANGE, CBN_DBLCLK, CBN_SETFOCUS, CBN_KILLFOCUS, CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_DROPDOWN, CBN_CLOSEUP, CBN_SELENDOK, CBN_SELENDCANCEL, CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST, CBS_OWNERDRAWFIXED, CBS_OWNERDRAWVARIABLE, CBS_AUTOHSCROLL, CBS_OEMCONVERT, CBS_SORT, CBS_HASSTRINGS, CBS_NOINTEGRALHEIGHT, CBS_DISABLENOSCROLL, CB_GETEDITSEL, CB_LIMITTEXT, CB_SETEDITSEL, CB_ADDSTRING, CB_DELETESTRING, CB_DIR, CB_GETCOUNT, CB_GETCURSEL, CB_GETLBTEXT, CB_GETLBTEXTLEN, CB_INSERTSTRING, CB_RESETCONTENT, CB_FINDSTRING, CB_SELECTSTRING, CB_SETCURSEL, CB_SHOWDROPDOWN, CB_GETITEMDATA, CB_SETITEMDATA, CB_GETDROPPEDCONTROLRECT, CB_SETITEMHEIGHT, CB_GETITEMHEIGHT, CB_SETEXTENDEDUI, CB_GETEXTENDEDUI, CB_GETDROPPEDSTATE, CB_FINDSTRINGEXACT, CB_SETLOCALE, CB_GETLOCALE, CB_MSGMAX, SBS_HORZ, SBS_VERT, SBS_TOPALIGN, SBS_LEFTALIGN, SBS_BOTTOMALIGN, SBS_RIGHTALIGN, SBS_SIZEBOXTOPLEFTALIGN, SBS_SIZEBOXBOTTOMRIGHTALIGN, SBS_SIZEBOX, SBM_SETPOS, SBM_GETPOS, SBM_SETRANGE, SBM_SETRANGEREDRAW, SBM_GETRANGE, SBM_ENABLE_ARROWS, RDW_INVALIDATE, LF_FACESIZE, LF_FULLFACESIZE, TA_NOUPDATECP, TA_UPDATECP, TA_LEFT, TA_RIGHT, TA_CENTER, TA_TOP, TA_BOTTOM, TA_BASELINE, TA_MASK, BS_SOLID, BS_NULL, BS_HOLLOW, BS_HATCHED, BS_PATTERN, BS_INDEXED, BS_DIBPATTERN, BS_DIBPATTERNPT, BS_PATTERN8X8, BS_DIBPATTERN8X8, HS_HORIZONTAL, HS_VERTICAL, HS_FDIAGONAL, HS_BDIAGONAL, HS_CROSS, HS_DIAGCROSS, HS_FDIAGONAL1, HS_BDIAGONAL1, HS_SOLID, HS_DENSE1, HS_DENSE2, HS_DENSE3, HS_DENSE4, HS_DENSE5, HS_DENSE6, HS_DENSE7, HS_DENSE8, HS_NOSHADE, HS_HALFTONE, HS_SOLIDCLR, HS_DITHEREDCLR, HS_SOLIDTEXTCLR, HS_DITHEREDTEXTCLR, HS_SOLIDBKCLR, HS_DITHEREDBKCLR, HS_API_MAX, MIIM_STATE, MIIM_ID, MIIM_SUBMENU, MIIM_CHECKMARKS, MIIM_TYPE, MIIM_DATA, MIIM_STRING, MIIM_BITMAP, MIIM_FTYPE, MF_INSERT, MF_CHANGE, MF_APPEND, MF_DELETE, MF_REMOVE, MF_BYCOMMAND, MF_BYPOSITION, MF_SEPARATOR, MF_ENABLED, MF_GRAYED, MF_DISABLED, MF_UNCHECKED, MF_CHECKED, MF_USECHECKBITMAPS, MF_STRING, MF_BITMAP, MF_OWNERDRAW, MF_POPUP, MF_MENUBARBREAK, MF_MENUBREAK, MF_UNHILITE, MF_HILITE, MF_SYSMENU, MF_HELP, MF_MOUSESELECT, MFS_CHECKED, MFS_ENABLED, MFT_STRING, MFT_RADIOCHECK, MFT_SEPARATOR, MF_END, SC_SIZE, SC_MOVE, SC_MINIMIZE, SC_MAXIMIZE, SC_NEXTWINDOW, SC_PREVWINDOW, SC_CLOSE, SC_VSCROLL, SC_HSCROLL, SC_MOUSEMENU, SC_KEYMENU, SC_ARRANGE, SC_RESTORE, SC_TASKLIST, SC_SCREENSAVE, SC_HOTKEY, SC_ICON, SC_ZOOM, PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL, PS_INSIDEFRAME, PS_USERSTYLE, PS_ALTERNATE, PS_STYLE_MASK, PS_ENDCAP_ROUND, PS_ENDCAP_SQUARE, PS_ENDCAP_FLAT, PS_ENDCAP_MASK, PS_JOIN_ROUND, PS_JOIN_BEVEL, PS_JOIN_MITER, PS_JOIN_MASK, PS_COSMETIC, PS_GEOMETRIC, PS_TYPE_MASK, SB_HORZ, SB_VERT, SB_CTL, SB_BOTH, SB_LINEUP, SB_LINELEFT, SB_LINEDOWN, SB_LINERIGHT, SB_PAGEUP, SB_PAGELEFT, SB_PAGEDOWN, SB_PAGERIGHT, SB_THUMBPOSITION, SB_THUMBTRACK, SB_TOP, SB_LEFT, SB_BOTTOM, SB_RIGHT, SB_ENDSCROLL, SW_SCROLLCHILDREN, SW_INVALIDATE, SW_ERASE, ESB_ENABLE_BOTH, ESB_DISABLE_BOTH, ESB_DISABLE_LEFT, ESB_DISABLE_RIGHT, ESB_DISABLE_UP, ESB_DISABLE_DOWN, ESB_DISABLE_LTUP, ESB_DISABLE_RTDN, SIF_RANGE, SIF_PAGE, SIF_POS, SIF_DISABLENOSCROLL, SIF_TRACKPOS, SIF_ALL, LR_LOADFROMFILE, IMAGE_BITMAP, IMAGE_ICON, IMAGE_CURSOR, IMAGE_ENHMETAFILE, CF_BITMAP, STM_SETIMAGE, TVS_HASBUTTONS, TVS_HASLINES, TVS_LINESATROOT, TVS_EDITLABELS, TVS_DISABLEDRAGDROP, TVS_SHOWSELALWAYS, BackgroundStyles, RegisterClass, UnregisterClass, CreateWindowEx, DefWindowProc, PostQuitMessage, GetMessage, TranslateMessage, DispatchMessage, ShowWindow, LoadCursor, DefMDIChildProc, GetWindowLong, SetWindowLong, CallWindowProc, GetModuleHandle, GetWindowText, SetWindowText, UpdateWindow, CloseWindow, GetStockObject, GetSysColor, CreateSolidBrush, GetProp, SetProp, GetWindowRect, SetWindowPos, MoveWindow, GetClientRect, GetParent, SetParent, SendMessage, ClientToScreen, ScreenToClient, RedrawWindow, InitCommonControls, MoveToEx, LineTo, GetDC, Rectangle, DeleteDC, DeleteObject, SelectObject, SelectPalette, SetBkColor, SetBkMode, CreateFontIndirect, CreateFont, CreateHatchBrush, CreateMetaFile, TextOut, SetTextColor, SetTextAlign, SetTextJustification, UpdateColors, SetTimer, KillTimer, CreateBrushIndirect, GetSystemMetrics, LoadMenu, LoadMenuIndirect, GetMenu, SetMenu, HiliteMenuItem, GetMenuString, GetMenuState, DrawMenuBar, GetSystemMenu, CreateMenu, CreatePopupMenu, DestroyMenu, CheckMenuItem, EnableMenuItem, GetSubMenu, GetMenuItemID, GetMenuItemCount, InsertMenu, AppendMenu, ModifyMenu, RemoveMenu, DeleteMenu, SetMenuItemBitmaps, GetMenuCheckMarkDimensions, TrackPopupMenu, SetMenuDefaultItem, SetMenuItemInfo, GetMenuContextHelpId, GetMenuDefaultItem, GetMenuItemInfo, GetMenuItemRect, InsertMenuItem, GetClassLong, SetClassLong, BeginPaint, EndPaint, ShowCursor, SetCursorPos, SetCursor, GetCursorPos, ClipCursor, GetCursor, GetClipCursor, InvalidateRect, ValidateRect, InvalidateRgn, ValidateRgn, DestroyWindow, CreatePen, CreatePenIndirect, GetOpenFileName, GetSaveFileName, CHOOSECOLOR, ScrollWindow, ScrollDC, ScrollWindowEx, SetScrollPos, GetScrollPos, SetScrollRange, GetScrollRange, ShowScrollBar, EnableScrollBar, GetBkColor, GetBkMode, GetTextColor, WindowFromPoint, WinExec, SetScrollInfo, GetScrollInfo, LoadImage, HiWord, HiWords, LoWord, MakeParam, RegisterClass, CreateControl, ClassLoader_OnBeforeLoad, ClassLoader_OnAfterLoad, ClassLoader_OnEventLoad, ClassLoader_OnStoreProperty, CreateControlFromFile, InitLibrary, ReleaseLibrary ControlEventBuilder, Control, ClassLoader
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomButton
Описание модуля

CustomButton Class Copyright(c) by Metlashevskiy Egor
Шаблон кнопки, от данного класса порождается Button, CheckBox, RadioButton

Функции

InitLibrary, ReleaseLibrary

Классы

CustomButton

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • WndProc
  • CustomButton
  • @init_exception
  • @done_exception
  • ~CustomButton

sub InitLibrary

sub ReleaseLibrary

published class CustomButton

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Событие класса CustomButton

Нет описания

Метод класса CustomButton

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Дополнительный обработчик событий для CustomEdit

Метод класса CustomButton

sub CustomButton ()

Нет описания

Метод класса CustomButton

public declare sub @init_exception()

Нет описания

Метод класса CustomButton

public declare sub @done_exception()

Нет описания

Метод класса CustomButton

declare sub ~CustomButton()

Нет описания

InitLibrary, ReleaseLibrary CustomButton
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomComboBox
Описание модуля

CustomComboBox Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CustomComboBox

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • WndProc
  • AddItem
  • DeleteItem
  • ListCount
  • Clear
  • ListIndex
  • CustomComboBox
  • @init_exception
  • @done_exception
  • ~CustomComboBox

sub InitLibrary

sub ReleaseLibrary

published class CustomComboBox

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

Нет описания

Событие класса CustomComboBox

event OnChange ()

Нет описания

Метод класса CustomComboBox

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean)

Нет описания

Метод класса CustomComboBox

sub AddItem ( byval m_string as string )

Добавить строку в список

Метод класса CustomComboBox

sub DeleteItem ( byval Index as integer )

Удалить строку

Метод класса CustomComboBox

function ListCount () as integer

Возвращает кол-во элементов в строке

Метод класса CustomComboBox

sub Clear ()

Удаляет все элементы

Метод класса CustomComboBox

function ListIndex () as integer

Возвращает индекс текущего элемента

Метод класса CustomComboBox

sub CustomComboBox ()

Нет описания

Метод класса CustomComboBox

public declare sub @init_exception()

Нет описания

Метод класса CustomComboBox

public declare sub @done_exception()

Нет описания

Метод класса CustomComboBox

declare sub ~CustomComboBox()

Нет описания

InitLibrary, ReleaseLibrary CustomComboBox
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomEdit
Описание модуля

CustomEdit Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CustomEdit

Свойства

  • ReadOnly
  • MultiLine
  • SelStart
  • SelLength
  • MaxLength

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • CanUndo
  • WndProc
  • CustomEdit
  • @init_exception
  • @done_exception
  • ~CustomEdit

sub InitLibrary

sub ReleaseLibrary

published class CustomEdit

Свойство класса CustomEdit

published property ReadOnly as Boolean

Только чтение

Свойство класса CustomEdit

published property MultiLine as Boolean

Позволяет вводить множество строк

Свойство класса CustomEdit

published property SelStart as Integer

Стартовая позиция выделения текста

Свойство класса CustomEdit

published property SelLength as Integer

Длинна выделеного текста

Свойство класса CustomEdit

published property MaxLength as Integer

Максимальное число символов для ввода

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

Нет описания

Событие класса CustomEdit

event OnChange ()

Вызывается в случае если было изменение в редактируемом тексте

Метод класса CustomEdit

function CanUndo () as boolean

Возвращает true, если можно совершить откат

Метод класса CustomEdit

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Дополнительный обработчик событий для CustomEdit

Метод класса CustomEdit

sub CustomEdit ()

Нет описания

Метод класса CustomEdit

public declare sub @init_exception()

Нет описания

Метод класса CustomEdit

public declare sub @done_exception()

Нет описания

Метод класса CustomEdit

declare sub ~CustomEdit()

Нет описания

InitLibrary, ReleaseLibrary CustomEdit
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget | windows.gui.CustomScrollBar |

windows.gui.CustomForm
Описание модуля

CustomForm Class Copyright(c) 2006 by metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CustomForm

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • WndProc
  • CustomForm
  • Initialize
  • @init_exception
  • @done_exception
  • ~CustomForm

sub InitLibrary

sub ReleaseLibrary

published class CustomForm

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Событие класса CustomForm

Нет описания

Метод класса CustomForm

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

„®Ї®«ЁвҐ«мл© ®Ўа Ў®взЁЄ б®ЎлвЁ© ¤«п CustomForm

Метод класса CustomForm

sub CustomForm ()

Нет описания

Метод класса CustomForm

sub Initialize

Нет описания

Метод класса CustomForm

public declare sub @init_exception()

Нет описания

Метод класса CustomForm

public declare sub @done_exception()

Нет описания

Метод класса CustomForm

declare sub ~CustomForm()

Нет описания

InitLibrary, ReleaseLibrary CustomForm
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomLabel
Описание модуля

CustomLabel Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CustomLabel

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • WndProc
  • CustomLabel
  • @init_exception
  • @done_exception
  • ~CustomLabel

sub InitLibrary

sub ReleaseLibrary

published class CustomLabel

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Событие класса CustomLabel

Нет описания

Метод класса CustomLabel

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Дополнительный обработчик событий для CustomEdit

Метод класса CustomLabel

sub CustomLabel ()

Нет описания

Метод класса CustomLabel

public declare sub @init_exception()

Нет описания

Метод класса CustomLabel

public declare sub @done_exception()

Нет описания

Метод класса CustomLabel

declare sub ~CustomLabel()

Нет описания

InitLibrary, ReleaseLibrary CustomLabel
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomListBox
Описание модуля

CustomListBox Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

CustomListBox

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • WndProc
  • AddItem
  • DeleteItem
  • ListCount
  • Clear
  • ListIndex
  • List
  • CustomListBox
  • @init_exception
  • @done_exception
  • ~CustomListBox

sub InitLibrary

sub ReleaseLibrary

published class CustomListBox

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Событие класса CustomListBox

Нет описания

Метод класса CustomListBox

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean)

Нет описания

Метод класса CustomListBox

sub AddItem ( byval m_string as string )

Добавить строку в список

Метод класса CustomListBox

sub DeleteItem ( byval Index as integer )

Удалить строку

Метод класса CustomListBox

function ListCount () as integer

Возвращает кол-во элементов в строке

Метод класса CustomListBox

sub Clear ()

“¤ «пҐв ўбҐ н«Ґ¬Ґвл

Метод класса CustomListBox

function ListIndex () as integer

Возвращает индекс текущего элемента

Метод класса CustomListBox

function List ( byval Index as integer ) as string

‚®§ўа й Ґв бва®Єг б Ё¤ҐЄб®¬ Ё§ бЇЁбЄ

Метод класса CustomListBox

sub CustomListBox ()

Нет описания

Метод класса CustomListBox

public declare sub @init_exception()

Нет описания

Метод класса CustomListBox

public declare sub @done_exception()

Нет описания

Метод класса CustomListBox

declare sub ~CustomListBox()

Нет описания

InitLibrary, ReleaseLibrary CustomListBox
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.CustomScrollBar
Описание модуля

CustomScrollBar Class Copyright(c) 2006 by metlashevskiy Egor

Функции

CustomScrollBar_OnChange, InitLibrary, ReleaseLibrary

Классы

CustomScrollBar

Свойства

  • Min
  • Max
  • Page
  • Pos
  • TrackPos
  • ScrollType

События

  • OnChange

Методы

  • Initialize
  • GetInfo
  • ParentWndProc
  • CustomScrollBar
  • CustomScrollBar
  • @init_exception
  • @done_exception
  • ~CustomScrollBar

sub CustomScrollBar_OnChange ( byref Widget as Widget )

default events

sub InitLibrary

sub ReleaseLibrary

published class CustomScrollBar

Свойство класса CustomScrollBar

published property Min as Integer

Нет описания

Свойство класса CustomScrollBar

published property Max as Integer

Нет описания

Свойство класса CustomScrollBar

published property Page as Integer

Нет описания

Свойство класса CustomScrollBar

published property Pos as Integer

Нет описания

Свойство класса CustomScrollBar

published property TrackPos as Integer

Нет описания

Свойство класса CustomScrollBar

published property ScrollType as Integer

Нет описания

Событие класса CustomScrollBar

event OnChange ()

Нет описания

Метод класса CustomScrollBar

sub Initialize

Нет описания

Метод класса CustomScrollBar

declare sub GetInfo ()

Нет описания

Метод класса CustomScrollBar

declare sub ParentWndProc ( byref Widget as Widget, byval message as long, byval wparam as long, byval lparam as long )

Нет описания

Метод класса CustomScrollBar

sub CustomScrollBar ()

Нет описания

Метод класса CustomScrollBar

sub CustomScrollBar ( byref m_Parent as Control )

Нет описания

Метод класса CustomScrollBar

public declare sub @init_exception()

Нет описания

Метод класса CustomScrollBar

public declare sub @done_exception()

Нет описания

Метод класса CustomScrollBar

declare sub ~CustomScrollBar()

Нет описания

CustomScrollBar_OnChange, InitLibrary, ReleaseLibrary CustomScrollBar
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomEdit |

windows.gui.Edit
Описание модуля

Edit Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Edit

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • Initialize
  • Edit
  • @init_exception
  • @done_exception
  • ~Edit

sub InitLibrary

sub ReleaseLibrary

published class Edit

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Событие класса Edit

Нет описания

Метод класса Edit

declare sub Initialize ()

Нет описания

Метод класса Edit

sub Edit ( byref Widget as Widget )

Нет описания

Метод класса Edit

public declare sub @init_exception()

Нет описания

Метод класса Edit

public declare sub @done_exception()

Нет описания

Метод класса Edit

declare sub ~Edit()

Нет описания

InitLibrary, ReleaseLibrary Edit
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control |

windows.gui.Font
Описание модуля

Font Class Copyright(c) by Metlashevskiy Egor

Списки

FontStyles, FontCharset,

Функции

InitLibrary, ReleaseLibrary

Классы

Font

Свойства

  • hFont
  • Width
  • Height
  • Escapement
  • Orientation
  • Weight
  • Charset
  • Style
  • FontName

События

  • OnChange

Методы

  • Refresh
  • Font
  • @init_exception
  • @done_exception
  • ~Font

published enum FontStyles

Имя | Значение
fsBold | 1
fsItalic | 2
fsUnderline | 4
fsStrikeOut | 8

published enum FontCharset

Имя | Значение
fcAnsiCharset | 0
fcDefaultCharset | 1
fcSymbolCharset | 2
fcShiftjisCharset | 128
fcHaNneulCharset | 129
fcChinesebig5Charset | 136
fcOemCharset | 255

sub InitLibrary

sub ReleaseLibrary

published class Font

Свойство класса Font

published property hFont as long

Нет описания

Свойство класса Font

published property Width as Integer

Нет описания

Свойство класса Font

published property Height as Integer

Нет описания

Свойство класса Font

published property Escapement as Integer

Нет описания

Свойство класса Font

published property Orientation as Integer

Нет описания

Свойство класса Font

published property Weight as Integer

Нет описания

Свойство класса Font

published property Charset as FontCharset

Нет описания

Свойство класса Font

published property Style as FontStyles

Нет описания

Свойство класса Font

published property FontName as string

Нет описания

Событие класса Font

event OnChange ()

Нет описания

Метод класса Font

declare sub Refresh ()

Нет описания

Метод класса Font

sub Font ( byref Parent as Control )

Нет описания

Метод класса Font

public declare sub @init_exception()

Нет описания

Метод класса Font

public declare sub @done_exception()

Нет описания

Метод класса Font

declare sub ~Font()

Нет описания

FontStyles, FontCharset, InitLibrary, ReleaseLibrary Font
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomForm | windows.MessageBox |

windows.gui.Form
Описание модуля

Form Class Copyright(c) 2006 by metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Form

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Form
  • Form
  • Initialize
  • @init_exception
  • @done_exception
  • ~Form

sub InitLibrary

sub ReleaseLibrary

published class Form

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Событие класса Form

Нет описания

Метод класса Form

sub Form ()

Нет описания

Метод класса Form

sub Form ( byref Widget as Widget )

Нет описания

Метод класса Form

sub Initialize

Нет описания

Метод класса Form

public declare sub @init_exception()

Нет описания

Метод класса Form

public declare sub @done_exception()

Нет описания

Метод класса Form

declare sub ~Form()

Нет описания

InitLibrary, ReleaseLibrary Form
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control |

windows.gui.Image
Описание модуля

Image Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Picture,

Методы

  • Handle
    • ,
  • ImageType
    • ,
  • LoadImage
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • Picture
    • ,
  • ~Picture
    • ,
Image

Свойства

  • FileName

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Initialize
  • WndProc
  • Image
  • @init_exception
  • @done_exception
  • ~Image

sub InitLibrary

sub ReleaseLibrary

public class Picture

Метод класса Picture

function Handle () as long

Нет описания

Метод класса Picture

function ImageType () as long

Нет описания

Метод класса Picture

sub LoadImage ( byval FileName as string )

Нет описания

Метод класса Picture

public declare sub @init_exception()

Нет описания

Метод класса Picture

public declare sub @done_exception()

Нет описания

Метод класса Picture

declare sub Picture()

Нет описания

Метод класса Picture

declare sub ~Picture()

Нет описания

published class Image

Свойство класса Image

published property FileName as string

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Событие класса Image

Нет описания

Метод класса Image

declare sub Initialize ()

Нет описания

Метод класса Image

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Нет описания

Метод класса Image

sub Image ( byref Widget as Widget )

Нет описания

Метод класса Image

public declare sub @init_exception()

Нет описания

Метод класса Image

public declare sub @done_exception()

Нет описания

Метод класса Image

declare sub ~Image()

Нет описания

InitLibrary, ReleaseLibrary Picture, Image
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget | windows.gui.Edit | windows.gui.ColorDialog | windows.gui.CustomScrollBar | windows.gui.ComboBox | windows.gui.OpenSaveDialog | lang.classes |

windows.gui.Inspector
Описание модуля

Inspector Class Copyright(c) by Metlashevskiy Egor

Функции

Inspector_OnPaint, Inspector_OnMouseDown, Edit_OnKeyPress, Inspector_OnScroll, Combo_OnChange, dr_acc, Inspector_OnMouseDown, Edit_OnKeyPress, Inspector_OnPaint, Combo_OnChange, Inspector_OnScroll, InitLibrary, ReleaseLibrary

Классы

Inspector

Свойства

  • ControlRef

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnPropertyChanged

Методы

  • Inspector
  • WndProc
  • @init_exception
  • @done_exception
  • ~Inspector

declare sub Inspector_OnPaint ( byref Insp as Widget )

declare sub Inspector_OnMouseDown ( byref Sender as Widget, byval Button as long, byval Shift as long, byval X as long, byval Y as long )

declare sub Edit_OnKeyPress ( byref Edit as Edit, byval KeyAscii as integer )

declare sub Inspector_OnScroll ( byref Scroll as CustomScrollBar )

declare sub Combo_OnChange ( byref c as ComboBox )

sub dr_acc (byval SCa as string, byval ClassName as string, byref Ctrl as Control, Insp as Inspector, byval f as integer )

sub Inspector_OnMouseDown ( byref Insp as Inspector, byval Button as long, byval Shift as long, byval X as long, byval Y as long )

sub Edit_OnKeyPress ( byref Edit as Edit, byval KeyAscii as integer )

sub Inspector_OnPaint ( byref Insp as Inspector )

sub Combo_OnChange ( byref c as ComboBox )

sub Inspector_OnScroll ( byref Scroll as CustomScrollBar )

sub InitLibrary

sub ReleaseLibrary

published class Inspector

Свойство класса Inspector

published property ControlRef as Pointer

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

Нет описания

Событие класса Inspector

published event OnPropertyChanged ( byref ctrl as Control, byref pi as PropertyInfo )

Нет описания

Метод класса Inspector

sub Inspector ( byref Widget as Widget )

Нет описания

Метод класса Inspector

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

„®Ї®«ЁвҐ«мл© ®Ўа Ў®взЁЄ б®ЎлвЁ© ¤«п Inspector

Метод класса Inspector

public declare sub @init_exception()

Нет описания

Метод класса Inspector

public declare sub @done_exception()

Нет описания

Метод класса Inspector

declare sub ~Inspector()

Нет описания

Inspector_OnPaint, Inspector_OnMouseDown, Edit_OnKeyPress, Inspector_OnScroll, Combo_OnChange, dr_acc, Inspector_OnMouseDown, Edit_OnKeyPress, Inspector_OnPaint, Combo_OnChange, Inspector_OnScroll, InitLibrary, ReleaseLibrary Inspector
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomLabel |

windows.gui.Label
Описание модуля

Label Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Label

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Initialize
  • WndProc
  • Label
  • @init_exception
  • @done_exception
  • ~Label

sub InitLibrary

sub ReleaseLibrary

published class Label

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Событие класса Label

Нет описания

Метод класса Label

declare sub Initialize ()

Нет описания

Метод класса Label

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Нет описания

Метод класса Label

sub Label ( byref Widget as Widget )

Нет описания

Метод класса Label

public declare sub @init_exception()

Нет описания

Метод класса Label

public declare sub @done_exception()

Нет описания

Метод класса Label

declare sub ~Label()

Нет описания

InitLibrary, ReleaseLibrary Label
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomListBox |

windows.gui.ListBox
Описание модуля

ListBox - список Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

ListBox

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Initialize
  • ListBox
  • @init_exception
  • @done_exception
  • ~ListBox

sub InitLibrary

sub ReleaseLibrary

published class ListBox

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Событие класса ListBox

Нет описания

Метод класса ListBox

declare sub Initialize ()

Нет описания

Метод класса ListBox

sub ListBox ( byref Widget as Widget )

Нет описания

Метод класса ListBox

public declare sub @init_exception()

Нет описания

Метод класса ListBox

public declare sub @done_exception()

Нет описания

Метод класса ListBox

declare sub ~ListBox()

Нет описания

InitLibrary, ReleaseLibrary ListBox
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomEdit |

windows.gui.Memo
Описание модуля

Memo Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Memo

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • Memo
  • @init_exception
  • @done_exception
  • ~Memo

sub InitLibrary

sub ReleaseLibrary

published class Memo

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Событие класса Memo

Нет описания

Метод класса Memo

sub Memo ( byref Widget as Widget )

Нет описания

Метод класса Memo

public declare sub @init_exception()

Нет описания

Метод класса Memo

public declare sub @done_exception()

Нет описания

Метод класса Memo

declare sub ~Memo()

Нет описания

InitLibrary, ReleaseLibrary Memo
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.Menu
Описание модуля

Menu Class Copyright(c) by Metlashevskiy Egor Модуль содержит описание и реализация трёх классов MainMenu, MenuItem, PopupMenu MainMenu - Применяется при создании менб в форме MenuItem - Элемент меню, который можно добавлять, и создавать различные меню PopupMenu - Всплывающее меню

Функции

MenuItem_OnClick, InitLibrary, ReleaseLibrary

Классы

MenuItem,

Свойства

  • hMenu
    • ,
  • Caption
    • ,

События

  • OnClick
    • ,

Методы

  • AddItem
    • ,
  • Count
    • ,
  • GetMenuById
    • ,
  • MenuItem
    • ,
  • MenuItem
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ~MenuItem
    • ,
MainMenu

Свойства

  • hMenu
  • Caption
  • Parent

События

  • OnClick

Методы

  • AddItem
  • Count
  • GetMenuById
  • MenuItem
  • MenuItem
  • @init_exception
  • @done_exception
  • ~MenuItem
  • MainMenu
  • @init_exception
  • @done_exception
  • ~MainMenu

sub MenuItem_OnClick ( byref Menu as MenuItem )

sub InitLibrary

sub ReleaseLibrary

published class MenuItem

Счётчик уникальных позиция меню (ID), каждое меню имеет свой уникальный идентификатор MenuItem Элемент меню, строка меню

Свойство класса MenuItem

published property hMenu as long

Ссылка на меню (hMenu)

Свойство класса MenuItem

published property Caption as string

Текст меню

Событие класса MenuItem

published event OnClick ()

Меню выбрано

Метод класса MenuItem

declare sub AddItem ( byref MenuItem as MenuItem )

Добавление меню

Метод класса MenuItem

function Count () as integer

Колличество меню в подменю

Метод класса MenuItem

declare function GetMenuById ( byval Id as integer ) as pointer

Возвращает указатель на MenuItem

Метод класса MenuItem

sub MenuItem ()

Нет описания

Метод класса MenuItem

sub MenuItem ( byref Parent as MenuItem )

Нет описания

Метод класса MenuItem

public declare sub @init_exception()

Нет описания

Метод класса MenuItem

public declare sub @done_exception()

Нет описания

Метод класса MenuItem

declare sub ~MenuItem()

Нет описания

published class MainMenu

MainMenu

Свойство класса MainMenu

published property hMenu as long

Ссылка на меню (hMenu)

Свойство класса MainMenu

published property Caption as string

Текст меню

Свойство класса MainMenu

published property Parent as Widget

Родитель ( Окно ) на котором распологается меню

Событие класса MainMenu

published event OnClick ()

Меню выбрано

Метод класса MainMenu

declare sub AddItem ( byref MenuItem as MenuItem )

Добавление меню

Метод класса MainMenu

function Count () as integer

Колличество меню в подменю

Метод класса MainMenu

declare function GetMenuById ( byval Id as integer ) as pointer

Возвращает указатель на MenuItem

Метод класса MainMenu

sub MenuItem ()

Нет описания

Метод класса MainMenu

sub MenuItem ( byref Parent as MenuItem )

Нет описания

Метод класса MainMenu

public declare sub @init_exception()

Нет описания

Метод класса MainMenu

public declare sub @done_exception()

Нет описания

Метод класса MainMenu

declare sub ~MenuItem()

Нет описания

Метод класса MainMenu

sub MainMenu ( byref Widget as Widget )

Widget - окно на котором будет распологатся меню

Метод класса MainMenu

public declare sub @init_exception()

Нет описания

Метод класса MainMenu

public declare sub @done_exception()

Нет описания

Метод класса MainMenu

declare sub ~MainMenu()

Нет описания

MenuItem_OnClick, InitLibrary, ReleaseLibrary MenuItem, MainMenu
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control | windows.gui.Widget |

windows.gui.OpenSaveDialog
Описание модуля

OpenSaveDialog Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

OpenSaveDialog

Свойства

  • Title
  • InitDir
  • Filter
  • FileName
  • FileTitle

Методы

  • ShowOpen
  • ShowSave
  • OpenSaveDialog
  • @init_exception
  • @done_exception
  • ~OpenSaveDialog

sub InitLibrary

sub ReleaseLibrary

published class OpenSaveDialog

Свойство класса OpenSaveDialog

published property Title as string

Заголовок окна

Свойство класса OpenSaveDialog

published property InitDir as string

Директория по умолчанию

Свойство класса OpenSaveDialog

published property Filter as string

Фильтр

Свойство класса OpenSaveDialog

published property FileName as string

Возвращает файла после закрытия диалога

Свойство класса OpenSaveDialog

published property FileTitle as string

Возвращает заголовок файла после закрытия диалога

Метод класса OpenSaveDialog

declare function ShowOpen () as boolean

Открывает диалог, возвращает true, если файл выбран

Метод класса OpenSaveDialog

declare function ShowSave () as boolean

Нет описания

Метод класса OpenSaveDialog

sub OpenSaveDialog ( byref Control as Control )

Нет описания

Метод класса OpenSaveDialog

public declare sub @init_exception()

Нет описания

Метод класса OpenSaveDialog

public declare sub @done_exception()

Нет описания

Метод класса OpenSaveDialog

declare sub ~OpenSaveDialog()

Нет описания

InitLibrary, ReleaseLibrary OpenSaveDialog
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomEdit | windows.Library |

windows.gui.RichEdit
Описание модуля

RichEdit - компонент редактирования Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

RichEdit

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange

Методы

  • Initialize
  • RichEdit
  • @init_exception
  • @done_exception
  • ~RichEdit

sub InitLibrary

sub ReleaseLibrary

published class RichEdit

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Событие класса RichEdit

Нет описания

Метод класса RichEdit

declare sub Initialize ()

Нет описания

Метод класса RichEdit

sub RichEdit ( byref Widget as Widget )

Нет описания

Метод класса RichEdit

public declare sub @init_exception()

Нет описания

Метод класса RichEdit

public declare sub @done_exception()

Нет описания

Метод класса RichEdit

declare sub ~RichEdit()

Нет описания

InitLibrary, ReleaseLibrary RichEdit
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | Lang.* |

Lang.SmallTable
Описание модуля

Класс SmallTable является мини табицой ( элементом базы данных ) Данный класс удобно использовать, т.к данные таблицы хранятся в самом простом формате, Например (содержимое текстового файла):
Id | sotr | price
1 | Ivanov | 100$

С помощью данного класса можно извлекать, добавлять и проводить манипуляции с данными, хранящихся в текстовом файле.

Функции

InitLibrary, ReleaseLibrary

Классы

SmallTable

Методы

  • Open
  • Save
  • Save
  • FieldCount
  • RowCount
  • FieldName
  • FieldIndex
  • Eof
  • Get
  • Insert
  • Next
  • Clear
  • SmallTable
  • @init_exception
  • @done_exception
  • ~SmallTable

sub InitLibrary

sub ReleaseLibrary

class SmallTable

Метод класса SmallTable

sub Open (byval FileName as string)

Считывает данные файла

Метод класса SmallTable

sub Save ( byval FileName as string )

Сохраняет данные в файл

Метод класса SmallTable

sub Save ()

Сохраняет в текущем файле SmallTable.FileName

Метод класса SmallTable

function FieldCount () as integer

Возвращает кол-во колонок

Метод класса SmallTable

function RowCount () as integer

Возвращает кол-во строк

Метод класса SmallTable

function FieldName ( byval Index as integer ) as string

Возвращает имя поля

Метод класса SmallTable

function FieldIndex ( byval Name as string ) as integer

Возвращает индекс поля по его имени

Метод класса SmallTable

function Eof () as boolean

true, если достигнут конец таблицы

Метод класса SmallTable

function Get ( byval fName as string) as string

возвращает значние поля, на текущем курсоре SmallTamble.Cursor

Метод класса SmallTable

sub Insert ( byval s as string )

Добавляет строку
Панимер: SmallTable.Insert ("Ivanov | 10$ | 20.12.2006 ")

Метод класса SmallTable

sub Next ()

Cursor = Cursor + 1

Метод класса SmallTable

sub Clear ()

Очищает буффер

Метод класса SmallTable

sub SmallTable ()

Нет описания

Метод класса SmallTable

public declare sub @init_exception()

Нет описания

Метод класса SmallTable

public declare sub @done_exception()

Нет описания

Метод класса SmallTable

declare sub ~SmallTable()

Нет описания

InitLibrary, ReleaseLibrary SmallTable
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Control |

windows.gui.Static
Описание модуля

Static Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Static

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Initialize
  • WndProc
  • Static
  • @init_exception
  • @done_exception
  • ~Static

sub InitLibrary

sub ReleaseLibrary

published class Static

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Событие класса Static

Нет описания

Метод класса Static

declare sub Initialize ()

Нет описания

Метод класса Static

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Нет описания

Метод класса Static

sub Static ( byref Widget as Widget )

Нет описания

Метод класса Static

public declare sub @init_exception()

Нет описания

Метод класса Static

public declare sub @done_exception()

Нет описания

Метод класса Static

declare sub ~Static()

Нет описания

InitLibrary, ReleaseLibrary Static
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.Library | windows.gui.Widget |

windows.gui.StatusBar
Описание модуля

StatusBar - Є®¬Ї®Ґв аҐ¤ ЄвЁа®ў Ёп Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

StatusBar

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • Initialize
  • SetParts
  • SetText
  • StatusBar
  • @init_exception
  • @done_exception
  • ~StatusBar

sub InitLibrary

sub ReleaseLibrary

published class StatusBar

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Событие класса StatusBar

Нет описания

Метод класса StatusBar

declare sub Initialize ()

Нет описания

Метод класса StatusBar

sub SetParts ( byref parts as integer, byval nParts as integer )

Нет описания

Метод класса StatusBar

sub SetText ( byval Part as integer, byval Text as string )

Нет описания

Метод класса StatusBar

sub StatusBar ( byref Widget as Widget )

Нет описания

Метод класса StatusBar

public declare sub @init_exception()

Нет описания

Метод класса StatusBar

public declare sub @done_exception()

Нет описания

Метод класса StatusBar

declare sub ~StatusBar()

Нет описания

InitLibrary, ReleaseLibrary StatusBar
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.TabControl
Описание модуля

TabControl Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

TabSheet,

Свойства

  • Caption
    • ,

Методы

  • InsertToTab
    • ,
  • TabSheet
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ~TabSheet
    • ,
TabControl

Свойства

  • TabIndex

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnChange
  • OnChanging

Методы

  • Initialize
  • WndProc
  • TabControl
  • @init_exception
  • @done_exception
  • ~TabControl

sub InitLibrary

sub ReleaseLibrary

published class TabSheet

Свойство класса TabSheet

published property Caption as string

Нет описания

Метод класса TabSheet

declare sub InsertToTab ( byref Tab as Control )

Нет описания

Метод класса TabSheet

sub TabSheet ( byref Control as Control )

Нет описания

Метод класса TabSheet

public declare sub @init_exception()

Нет описания

Метод класса TabSheet

public declare sub @done_exception()

Нет описания

Метод класса TabSheet

declare sub ~TabSheet()

Нет описания

published class TabControl

Свойство класса TabControl

published property TabIndex as Integer

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

Нет описания

Событие класса TabControl

event OnChange ()

Нет описания

Событие класса TabControl

event OnChanging ()

Нет описания

Метод класса TabControl

declare sub Initialize ()

Нет описания

Метод класса TabControl

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Нет описания

Метод класса TabControl

sub TabControl ( byref Widget as Widget )

Нет описания

Метод класса TabControl

public declare sub @init_exception()

Нет описания

Метод класса TabControl

public declare sub @done_exception()

Нет описания

Метод класса TabControl

declare sub ~TabControl()

Нет описания

InitLibrary, ReleaseLibrary TabSheet, TabControl
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.Timer
Описание модуля

Timer Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Timer

Свойства

  • Interval

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp
  • OnTimer

Методы

  • WndProc
  • Timer
  • @init_exception
  • @done_exception
  • ~Timer

sub InitLibrary

sub ReleaseLibrary

published class Timer

Свойство класса Timer

published property Interval as Integer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

Нет описания

Событие класса Timer

event OnTimer ()

Нет описания

Метод класса Timer

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Дополнительный обработчик событий для Timer

Метод класса Timer

sub Timer ( byref Parent as Control )

Нет описания

Метод класса Timer

public declare sub @init_exception()

Нет описания

Метод класса Timer

public declare sub @done_exception()

Нет описания

Метод класса Timer

declare sub ~Timer()

Нет описания

InitLibrary, ReleaseLibrary Timer
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.ToolTip
Описание модуля

ToolTip Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

ToolTip

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • ToolTip
  • AddTool
  • @init_exception
  • @done_exception
  • ~ToolTip

sub InitLibrary

sub ReleaseLibrary

published class ToolTip

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Событие класса ToolTip

Нет описания

Метод класса ToolTip

sub ToolTip ()

Нет описания

Метод класса ToolTip

sub AddTool ( byval Text as string, byref Widget as Widget )

Нет описания

Метод класса ToolTip

public declare sub @init_exception()

Нет описания

Метод класса ToolTip

public declare sub @done_exception()

Нет описания

Метод класса ToolTip

declare sub ~ToolTip()

Нет описания

InitLibrary, ReleaseLibrary ToolTip
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.Widget |

windows.gui.TreeView
Описание модуля

TreeView Classe's Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Node,

Свойства

  • hTreeView
    • ,
  • Text
    • ,

Методы

  • Add
    • ,
  • Node
    • ,
  • Free
    • ,
  • @init_exception
    • ,
  • @done_exception
    • ,
  • ~Node
    • ,
TreeView

Свойства

  • SelectedItem

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • ClearItems
  • TreeView
  • @init_exception
  • @done_exception
  • ~TreeView

sub InitLibrary

sub ReleaseLibrary

published class Node

Node support class

Свойство класса Node

published property hTreeView as Integer

Ссылка на элемент в компоненте TreeView property readonly Id as integer

Свойство класса Node

published property Text as string

Нет описания

Метод класса Node

declare sub Add ( byref Node as Node )

Нет описания

Метод класса Node

sub Node ( byref Control as Control )

Нет описания

Метод класса Node

virtual sub Free ()

Нет описания

Метод класса Node

public declare sub @init_exception()

Нет описания

Метод класса Node

public declare sub @done_exception()

Нет описания

Метод класса Node

declare sub ~Node()

Нет описания

published class TreeView

Свойство класса TreeView

published property SelectedItem as Pointer

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Событие класса TreeView

Нет описания

Метод класса TreeView

declare sub ClearItems ()

Нет описания

Метод класса TreeView

sub TreeView ( byref Widget as Widget )

Добавляет элемент Node в иерархический список

Метод класса TreeView

public declare sub @init_exception()

Нет описания

Метод класса TreeView

public declare sub @done_exception()

Нет описания

Метод класса TreeView

declare sub ~TreeView()

Нет описания

InitLibrary, ReleaseLibrary Node, TreeView
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | windows.gui.CustomScrollBar |

windows.gui.VScrollBar
Описание модуля

VScrollBar Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

VScrollBar

События

  • OnChange

Методы

  • Initialize
  • VScrollBar
  • @init_exception
  • @done_exception
  • ~VScrollBar

sub InitLibrary

sub ReleaseLibrary

published class VScrollBar

Событие класса VScrollBar

Нет описания

Метод класса VScrollBar

declare sub Initialize ()

Нет описания

Метод класса VScrollBar

sub VScrollBar ( byref Widget as Widget )

Нет описания

Метод класса VScrollBar

public declare sub @init_exception()

Нет описания

Метод класса VScrollBar

public declare sub @done_exception()

Нет описания

Метод класса VScrollBar

declare sub ~VScrollBar()

Нет описания

InitLibrary, ReleaseLibrary VScrollBar
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Модуль использует: | system | lang.Object | lang.AnsiString | windows.gui.Canvas | windows.gui.Menu | windows.gui.Edit | windows.gui.CustomScrollBar | windows.gui.ComboBox | windows.gui.ToolTip | windows.gui.TabControl | windows.gui.TreeView | console |

windows.gui.Widget
Описание модуля

Widget Class Copyright(c) by Metlashevskiy Egor Класс Widget является объектом, с помощью которого можно манипулировать объектом элемента Window (Окна) С помощью класса Widget можно порождать новые компоненты WIN API При наследовании Widget в новый класс также наследуются все свойства Окна (Caption,Left,Top,Visible...и.т.д) и все события.

Списки

WidgetShowStyles, WidgetBorderStyles,

Функции

InitLibrary, ReleaseLibrary

Классы

Widget

Свойства

  • hWnd
  • Parent
  • ParentWnd
  • ClientWidth
  • ClientHeight
  • Caption
  • ShowStyle
  • BorderStyle
  • Visible
  • Left
  • Top
  • Width
  • Height
  • VertScroll
  • HorzScroll
  • Hint
  • MainMenu

События

  • OnDestroy
  • OnClose
  • OnPaint
  • OnActive
  • OnDeactive
  • OnShow
  • OnCreate
  • OnClick
  • OnDblClick
  • OnResize
  • OnKeyPress
  • OnMouseMove
  • OnMouseDown
  • OnMouseUp

Методы

  • CreateWindow
  • CreateControl
  • Show
  • ShowModal
  • Close
  • Refresh
  • Move
  • SetWndStyle
  • GetWndStyle
  • SetWndExStyle
  • GetWndExStyle
  • AddWndStyle
  • RemoveWndStyle
  • AddWndExStyle
  • RemoveWndExStyle
  • WndProc
  • GetClientRect
  • SetClientRect
  • Widget
  • ~Widget
  • Free
  • @init_exception
  • @done_exception

published enum WidgetShowStyles

Отображение окна виджета

Имя | Значение
swHide | 0
swNormal | NAN
swShowMinimized | 2
swShowMaximized | 3
swManximize | 3
swShowNoActive | 4
swShow | 5
swMinimize | 6
swShowMinNoActive | 7
swShowNA | 8
swRestore | 9
swShowDefault | 10
swShowModal | 128

published enum WidgetBorderStyles

Стиль границ виджета

Имя | Значение
bsNone | 0
bsSoft | 1
bsSingle | 2

sub InitLibrary

Инициализация модуля Widget, инициялизация компонент.

sub ReleaseLibrary

Деинициялизация

published class Widget

Widget класс содержит в себе необходимые свойства, события для создания и манипулирования классом Окна (Windows). Widget является объектом, который способен правильно работать в объектом Wnd, с помощью которого можно порождать другие оконные API объекты (Button, Static Text, ListBox, ComboBox, ... и др.)

Свойство класса Widget

published property hWnd as long

Указатель на объект окна в WIN API

Свойство класса Widget

published property Parent as Widget

Родительский объект, которому принадлежит виджет

Свойство класса Widget

published property ParentWnd as long

Родительский объект виджета в виде ссылки на окно hWnd

Свойство класса Widget

published property ClientWidth as Integer

Ширина клиентской области

Свойство класса Widget

published property ClientHeight as Integer

Высота клиентской области

Свойство класса Widget

published property Caption as string

Текс окна виджета

Свойство класса Widget

published property ShowStyle as WidgetShowStyles

Стиль отображения окна

Свойство класса Widget

published property BorderStyle as WidgetBorderStyles

Стиль границ

Свойство класса Widget

published property Visible as Boolean

true - объект отображён, false - объект невидим

Свойство класса Widget

published property Left as Integer

Левая координата отображения относительно дочернего окна виджета

Свойство класса Widget

published property Top as Integer

Верхняя координата отображения относительно дочернего окна виджета

Свойство класса Widget

published property Width as Integer

Ширина окна виджета

Свойство класса Widget

published property Height as Integer

Высота окна виджета

Свойство класса Widget

published property VertScroll as Boolean

true - отображается вертикальная полоса прокрутки виджета

Свойство класса Widget

published property HorzScroll as Boolean

true - отображается горизонтяльная полоса прокрутки виджета

Свойство класса Widget

published property Hint as string

Подсказка для пользователя

Свойство класса Widget

published property MainMenu as Pointer

Указатель на MainMenu

Событие класса Widget

event OnDestroy ()

Уничтожение объекта Widget

Событие класса Widget

event OnClose ()

Закрытие виджета, объект закрывается и не отображается.

Событие класса Widget

event OnPaint ()

Прорисовка объекта, вызывается если область виджета нуждается в перерисовке

Событие класса Widget

event OnActive ()

Окно виджета получило фокус

Событие класса Widget

event OnDeactive ()

Окно виджета не имеет фокуса

Событие класса Widget

event OnShow ()

Отображение виджета

Событие класса Widget

event OnCreate ()

Создание объекта виджета

Событие класса Widget

event OnClick ()

Нажатие клавиши мыши

Событие класса Widget

event OnDblClick ()

Двойное нажатие клавиши мыши

Событие класса Widget

event OnResize ()

Изменение размера окна

Событие класса Widget

event OnKeyPress ( byval KeyAscii as integer )

Нажатие клавиши

Событие класса Widget

event OnMouseMove ( byval Button as long, byval Shift as long, byval X as long, byval Y as long )

Движение мыши в нутри области виджта, Button - клавиша мыши, X,Y - координаты мыши

Событие класса Widget

event OnMouseDown ( byval Button as long, byval Shift as long, byval X as long, byval Y as long )

Кнопка мыши нажата, Button - клавиша мыши, X,Y - координаты мыши

Событие класса Widget

event OnMouseUp ( byval Button as long, byval Shift as long, byval X as long, byval Y as long )

Кнопка мыши отпущена, Button - клавиша мыши, X,Y - координаты мыши

Метод класса Widget

declare sub CreateWindow ( byval dwStyle as long, byval X as long, byval Y as long, byval Width as long, byval Height as long, byval WndParent as long, byval hMenu as long )

Регистрация класса окна, и его создание

Метод класса Widget

declare sub CreateControl ( byval wndClass as string, byval dwStyle as long, byval X as long, byval Y as long, byval Width as long, byval Height as long, byval WndParent as long )

Создание контрола (Button, Edit, Static ... )

Метод класса Widget

declare sub Show ()

Функция отображения окна

Метод класса Widget

declare sub ShowModal ()

Модальное отображения окна

Метод класса Widget

declare sub Close ()

Закрыть окно виджета

Метод класса Widget

declare sub Refresh ()

Обновить окно виджета

Метод класса Widget

declare sub Move ( byval Left as long, byval Top as long, byval Width as long, byval Height as long )

Переместить окно виджета

Метод класса Widget

declare sub SetWndStyle ( byval Style as long )

Установить стиль окна

Метод класса Widget

declare function GetWndStyle () as long

Получить стиль окна

Метод класса Widget

declare sub SetWndExStyle ( byval ExStyle as long )

Установить расширенный стиль окна

Метод класса Widget

declare function GetWndExStyle () as long

Получить расширенный стиль окна

Метод класса Widget

declare sub AddWndStyle ( byval Style as long )

Добавить стиль окна

Метод класса Widget

declare sub RemoveWndStyle ( byval Style as long )

Удалить стиль окна

Метод класса Widget

declare sub AddWndExStyle ( byval ExStyle as long )

Добавить расширенный стиль окна

Метод класса Widget

declare sub RemoveWndExStyle ( byval ExStyle as long )

Удалить расширенный стиль окна

Метод класса Widget

virtual sub WndProc ( byval hWnd as long, byval Message as long, byval WParam as long, byval LParam as long, byref Ret as boolean )

Нет описания

Метод класса Widget

sub GetClientRect ( byref Rect as RECT )

Получение озиции клиенсткого окна

Метод класса Widget

sub SetClientRect ( byref Rect as RECT )

Утановка позиции клиентсткого окна

Метод класса Widget

sub Widget ()

Нет описания

Метод класса Widget

sub ~Widget ()

Нет описания

Метод класса Widget

virtual sub Free ()

Нет описания

Метод класса Widget

public declare sub @init_exception()

Нет описания

Метод класса Widget

public declare sub @done_exception()

Нет описания

WidgetShowStyles, WidgetBorderStyles, InitLibrary, ReleaseLibrary Widget
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page


Глава 2: Описание языка

Описание языка

В последующих разделах даётся формальное определение языка программирования ForceBasic. В каждом разделе рассматривается какой-либо из элементов этого языка. А все эти элементы в совокупности и составляют программу на ForceBasic’ке.

Общий вид программы на ForceBasic’ке

Декларации (описание процедур и функций)

Директивы препроцессора

Константы

Пользовательские типы данных и классы

Процедуры и функции

sub main

   Блок программы

end sub

Программа на ForceBasic’ке всегда начинается с выполнения процедуры main. В простейшем случае программа на ForceBasic’ке состоит из одной процедуры main, которая определяет главный блок программы. Вот пример простейшей программы, иллюстрирующей сказанное выше:

sub main
   dim myVar as long = 1+2
end sub

В данном конкретном примере код состоит всего из одной строки. При выполнении программы в стёке размещается переменная myVar со значением 3.

Практически при написании любой более сложной программы на ForceBasic’ке необходимо использовать библиотеки. Стандартной библиотекой является System.lib, которая содержит основные типы данных, такие как Boolean, Pointer, стандартные процедуры и функции, классы, и.т.д.

Совет: Каждый раз, при написании новой программы на ForceBasic’ке используйте библиотеку System.lib, подключая её директивой $include “system.inc” либо $library “system.lib”. Лучше всего использовать первый вариант.

Следующий пример демонстрирует классическую программу Hello, World!

'**************************
' Программа: Привет, мир! *
'**************************

$include "system.inc"
$include "console.inc"

sub main
   print "Hello, World!"
end sub

Комментарии

В ForceBasic’ке имеется только один тип комментариев – это одинарные кавычки. Компилятор игнорирует весь текст после символа ‘ до конца строки. Пример комментариев показан выше, в программе “Привет, Мир!”

Переменные

Как и в любом языке программирования, в ForceBasic’ке переменные предназначены для хранения данных. Допустим, вы пишете программу, которая часто обращается к пользователю, предлагая ему ввести данные. Можно попытаться придать такой программе личностный оттенок. Например каждый раз, когда потребуются данные, она будет отображать имя пользователя. В таких случаях вместо того, чтобы писать одну программу для пользователя Иванова, другую - для Петрова и так далее, объявите переменную, в которой будет хранится имя пользователя. При запуске программы он введёт свой имя, которое будет сохранено в переменной, и программа будет к ней обращатся для отображения имени пользователя.

Переменным выделяется место в памяти для хранения значений, к которым придётся обращаться в дальнейшем. Переменные объявленные за пределами процедуры или функции хранятся в сегменте данных, а переменные объявленные в блоке процедуры или функции хранятся в стёке, и при завершении процедуры удаляются из памяти.

Общий вид

[public/private/dim] [byval/byref] Имя_переменной as Тип_переменной

Объявление переменных

Переменные объявляются перед их первым использованием. Для объявления переменной используется оператор dim, за которым помещается имя переменной и её тип, например:

dim Discount as integer
dim UseName as string

В одной строке можно объявить несколько переменных:

dim Meters as integer, Inches as integer, centimeters as integer

Синтаксис языка ForceBasic допускает объявление переменных не указывая ключевое слово as и тип переменной. В этом случае необходимым будет указание после имени переменной символы, или группу символов соответствующих типу данных:

dim UserName$, Discount%

Иногда бывает полезным при создании переменной указать её первоначальное значение. Для этого ForceBasic допускает объявление переменных с присвоением значения:

dim UserName$="Иванов", Discount%=10

Совет: Если вам необходимо точно определить первоначальное значении переменной используйте этот стиль, т.к это помогает экономить размер кода и читаемость программы.

Переменная как указатель

ForceBasic, как и C++ допускает объявление типизированных указателей. Например, объявление dim byref Count as long означает, что будет создан указатель типа long на ячейку памяти, в которой содержатся данные переменной. ForceBasic автоматичеси не выделяет память под переменную. В данном случае память выделится под указатель, размеров в 4 байта. Для того, что бы использовать переменную, необходимо выделить память. Выделение памяти производится с помощью оператора new. Удаление переменной производится оператором delete.

Следующий пример демонстрирует использование указателей:

$include "system.inc"
$include "console.inc"

'Объявление типизированного указателя
dim byref Var as long

'Старт программы
sub main

   'Выделение памяти
   set Var = new Long
   'Использование переменной Var
   Var = 5
   'Удаление из памяти
   delete Var

end sub

Типы переменных:

Типы | Кол-во байт | Диапазон
small | 1 | -128 .. 127
byte | 1 | 0 .. 255
short | 2 | -32768 .. 32767
word | 2 | 0 .. 65535
long/integer | 4 | -2147483648 .. 2147483647
dword | 4 | 0 .. 4294967295
single | 6 | -3.4e38 .. 3.4e38
double | 8 | -1.7e308 .. 1.7e308
extendet | 10 | -3.4e4932 .. 3.4e4932
pointer | 4 | 0 .. 4294967295
boolean | 1 | true/false
string | 8+кол-во символов |

Область видимости переменной

Область видимости является одной из характеристик переменной, определяющей раздел приложения, в котором её можно использовать. Если переменная объявлена внутри процедуры, то доступ к ней возможен только из кода данной процедуры. Для остальной части приложения эта переменная не существует. Если область видимости переменной ограничена процедурой, то такая переменная называется локальной.
Предположим, создана процедура Calc_Sum, вычисляющая сумму всех чётных чисел в диапазоне от 0 до 100. Вариант реализации такого кода следующий.

$include "system.inc"
$include "console.inc"

sub Calc_Sum
dim i as integer
dim Sum as integer

   for i = 0 to 100 step 2
      Sum = Sum + 1
   next
   print "The sum is " + str$(Sum)
end sub

sub main
   Calc_Sum
end sub

Здесь i и Sum – локальные переменные процедуры Calc_Sum. При попытке присвоить значение переменной Sum внутри другой процедуры ForceBasic создаст другую переменную Sum, а на переменной Sum подпрограммы Calc_Sum это никак не отразится.
Иногда требуется переменная с большей областью видимости, например, при использовании её во всех процедурах модуля. Такие переменные имеют область видимости модуля, и к ним имеется доступ из всех процедур данного компонента. Можно объявить все переменные в разделе определений модуля, но нужно быть очень внимательным. Процедуры в модуле получат доступ ко всем переменным, поэтому к их изменению нужно относится осторожно.
Если переменная должна быть доступна всему приложению, то она объявляется как Public и имеет глобальную видимость (из всех частей приложения). При объявлении таких переменных оператор Public помещается на место Dim.

Массивы

Массивы являются стандартной структурой данных в любом языке программирования. В отличие от переменной, содержащей один объект (число, дату или строку), массив может содержать набор связных между собой данных. Массив, как и переменная, имеет имя, а к его значению обращаются с помощью индекса.
Доступ к элементам массива осуществляется посредством указания идентификатора массива со значениями индексов, заключённых в круглые скобки.

Объявление массивов

Следующий пример демонстрирует создание массива:

dim ArrayName(128) as byte

ArrayName – идентификатор массива. 128 – количество элементов в массиве.

Создание многомерных массивов:

dim Users(5,5,5) as string

Индекс любого массива в ForceBasic’ке начинается с нуля.

Пользовательские типы данных

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

Общий вид

[public/private] type Имя_Типа
Field1 as Тип_поля
Field2 as Тип_поля
Field3 as Тип_поля
…
FieldN as Тип_поля
end type

Объявление типов данных

В ForceBasic’ке как и в Visual Basic’ке определение пользовательского типа данных начинается с ключевого слова type, и заканчивается группой слов end type.
В следующем фрагменте кода показано объявление и использование пользовательского типа Vector.

'
' Определение пользовательского типа
'
type Vector
   x as integer
   y as integer
   z as integer
end type

'
' Функция заполнения полей
'
function CreateVector (x as integer, y as integer, z as integer) as Vector
   return.x = x
   return.y = y
   return.z = z
end function

sub main
dim v as Vector
   v = CreateVector (1,2,3)
end sub

После выполнения программы: v.x = 1, v.y = 2 и v.z = 3.

Переопределение типов (typedef)

Общий вид

[public/private] typedef Имя_нового_типа as Тип_данных

Иногда программист сам не знает, какой тип назначать переменным. Допустим, вы пишете программу вычисляющая дробные значения, и вы точно не знаете какой тип лучше использовать single(с одинарной точностью) или double(с двойной точностью). Вы можете переопределить один из типов данных и создать новый тип, который будет интерпретироваться как один из типов. Например:

'
' Новый тип данных 'Дробь' интерпретируется как single
'
typedef Дробь as single

sub main
dim Result as Дробь
   Result = (1.56 / 2)
end sub

Описание с префиксом typedef описывает не новую переменную данного типа, а новое имя этого типа.

Процедуры и функции

Процедура – это блок операторов, выполняющих определённую задачу. Он расположен внутри пары операторов sub…end sub и вызывается по имени. Функции похожи на подпрограммы, но возвращают результат. Операторы процедуры-функции помещаются между операторами function…end function.

Общий вид процедуры

[public/private] sub Имя_процедуры (Параметры_процедуры)

   блок операторов

end sub

Общий вид функции

[public/private] function Имя_функции (Параметры_функции) as Тип_данных

   блок операторов

end function

Объявление процедур и функций

Как вы уже заметили в ForceBasic’ке описание процедур и функций очень похожи как в Visual Basic’ке, только есть небольшие отличии. Например, идентификатор в функции предназначенный для возвращения значения называется всегда return. т.е для того что бы функция вернула значение единицу необходимо писать следующее выражение: return = 1, а не Имя_функции = 1 как в Visual Basic’ке. В процедуре такого идентификатора нет.

Передача параметров

По умолчанию все параметры процедур или функций передаются по ссылке, данная характеристика параметра определяется ключевыми словами byref и byval перед описанием имени аргумента и его типа. Соответственно ключевое слово byval, означает, что параметр будет передаваться по значению. Главное достоинство передачи параметров по ссылке это экономия памяти. т.е при передачи параметров типа byte или word не занимает много памяти, а если тип параметра является структурой сложного типа, или класса, то проще передать в процедуру или функцию ссылку на аргумент, тогда длина параметра составит всего лишь 4 байта. Это значительно сэкономит размер параметра и приложение станет работать эффективнее. Другим достоинством передачи параметра по ссылке является возможность изменения значения переменной из процедуры или функции. Количество передаваемых параметров неограниченно. Ограничение количества параметров существует только для процедур и функций, чьи параметры объявлены как (…).

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

$include "system.inc"
 $include "console.inc"

sub myProc (byval Left%, byref Top%, Width%, Height as integer)
   Left% = Left% + 1
   Top% = Top% + 1
   Width% = Width% + 1
   Height% = Height% + 1
end sub

sub main
dim Слева as integer = 0
dim Сверху as integer = 0
dim Ширина as integer = 320
dim Высота as integer = 200

   myProc Слева, Сверху, Ширина, Высота
   print Слева," ", Сверху," ", Ширина," ",Высота
end sub

Результатом выполнения программы будет следующее: 0 1 321 201.
Как видно из результата увеличение переменной ‘Слева’ на единицу не произошло, т.к в процедуре myProc параметр Left передаётся по значению.

Тип переменной и параметра может не совпадать.

…
sub Test (Argument1 as byte)
...
end sub

dim Var as long

Test (Var)
…

В данном примере переменная Var типа long передаётся в процедуру Test параметром типа byte. Компилятор ForceBasic’ка автоматически генерирует код, который преобразовывает переменную Var типа long в тип byte. После завершения выполнения процедуры Test выполняется обратное преобразование типов. Но данные преобразования существуют только числовых типов. Если к примеру в процедуре Test тип параметра Argument был объявлен как string, то компилятор выдал ошибку “error 92: Оператор string = long не найден”.

Взаимодействие с функциями множественных параметров

Существует ещё один стиль передачи параметров в функции и процедуры с объявлением (…). При объявлении таких процедур и функций в теле функции необходимо описывать обработчик каждого параметра учитывая её тип. Для этого существует идентификатор массива Arguments класса Argument в процедурах и функциях. Предположим вам необходимо создать процедуру ‘Печать’, которая, по сути является аналогом процедуры print. Как известно в процедуре print может быть неограниченное количество аргументов различного типа.

$include "system.inc"
 $include "console.inc"

sub Печать (...)
dim i as dword
dim byref pString as string
dim byref pByte as integer

for i = 0 to ArgCount - 1

   if Arguments(i).argType = tpSTRING then
      set pString = Arguments(i).ptr
      print pString
   end if

   if Arguments(i).argType = tpBYTE then
      set pByte = Arguments(i).ptr
      print pByte
   end if

next
end sub

sub main
   Печать "ABC","D","EFGH", 10
end sub

Результат выполнения: ABCDEFGH10

Перегрузка операций

ForceBasic как и С++ допускает перегрузку операций в процедурах и функциях. Это даёт возможность программисту использовать один и тоже идентификатор для различного рода действий. Например:

$include "system.inc"
 $include "console.inc"

function Сумма% (v1%, v2%)
   return = v1% + v2%
end function

function Сумма% (v1%, v2%, v3%)
   return = v1% + v2% + v3%
end function

sub main
dim ret as integer = Сумма (1,2)

   print ret, "; "
   ret = Сумма (1,2,3)
   print ret, "; "
end sub

Результат выполнения программы: 3; 6

В ForceBasic’ке перегруженными могут быть любые процедуры и функции кроме процедуры main и процедуры-деструктор в классах.

Вызов процедур и функций

При вызове процедуры задаются значения всех аргументов, указанных в её определении, причём в том же порядке. Для вызова процедуры используется оператор call, содержащий имя процедуры и её аргументы в круглых скобках. Например:

call Имя_процедуры (Параметр1,Параметр2,Параметр3,...,ПараметрN)

Значение аргумента должно соответствовать объявленному типу. Если процедура ожидает значение типа integer, то передавать ей значение string нельзя.

В ForceBasic’ке, как и во многих языках программирования процедуры и функции можно вызывать без указания ключевого слова, в данном случае call. Все параметры функций должны быть заключены в круглые скобки, а параметры процедуры не обязательно заключены в круглые скобки.

Следующие виды конструкций будут правильны:

...
print ("My favorite language is ForceBasic!")
print "My favorite language is ForceBasic!"
call print "My favorite language is ForceBasic!"
...

Декларирование процедур и функций из DLL

Перед использованием процедур и функций, располагающихся в библиотеках DLL, в ForceBasic’ке необходимо их продекларировать. Для этого нужно указать имя функции, внутреннее имя функции в DLL библиотеки, библиотеку DLL и точное описание каждого из параметров. Декларация начинается с ключевого слова declare. Декларация осуществляется в области описания модуля, т.е как правило в начале модуля до объявлении функции main.

Синтаксис декларации приведён ниже:

[public/private] declare [sub/function] Имя_Функции lib "Имя_библиотеки" [alias "Внутреннее_имя_функции"] (Описание_параметров) [as Тип_функции]

C | Pascal | VB | Rapid-Q | ForceBasic
ATOM | SHORT | byval as INTEGER | SHORT |
BOOL | BOOLEAN | byval as LONG | LONG |
BYTE | BYTE | byval as BYTE | BYTE |
CHAR | CHAR | byval as BYTE | BYTE |
CHAR[20] | STRING[20] | as STRING | N/A in API Declarations |
COLORREF | LONGINT | byval as LONG | LONG |
DWORD | DWORD | byval as LONG | DWORD |
Windows handles ie. HDC | Windows Handles | byval as LONG | LONG |
INT, UINT | INTEGER, DWORD | byval as LONG | INTEGER, DWORD |
LONG | LONGINT | byval as LONG | LONG |
LPARAM | LONGINT | byval as LONG | LONG |
LPDWORD | ^DWORD | as LONG | BYREF as DWORD |
LPINT, LPUINT | ^INTEGER | as LONG | BYREF as LONG |
LPRECT | ^TRECT | as ANY | QRECT |
LPSTR, LPCSTR | PCHAR | byval as STRING | BYREF as STRING |
LPVOID | LONGINT | as ANY | LONG |
LPWORD | ^WORD | as INTEGER | BYREF as WORD |
LRESULT | LONGINT | byval as LONG | LONG |
NULL | NIL | byval as LONG | LONG |
SHORT | SHORT | byval as INTEGER | SHORT |
WORD | WORD | byval as INTEGER | WORD |
WPARAM | LONGINT | byval as LONG | LONG |


Директива .CODE

Директивы
Директива .CODE

Схема команды: .CODE [имя сегмента]

Алгоритм работы:

  • Если имя сегмента не указано, то создаётся кодовый сегмент с именем "code@номер сегмента в запакованном виде@"
  • Если имя сегмента указано, то создаётся кодовый сегмент.

Применение:

Align и combine при использовании директивы .CODE должны быть объявлены в директивах .SEGALIGN и .SEGCOMBINE. При написании программоно кода с использованием этой директивы не обязательно закрывать сегмент. т.е:

.CODE mycodeseg
mycodeseg ends

можно не указывать mycodeseg ends. Закрывание сегмента происходит автоматически с ассемблированием следующей директивы .CODE или .DATA

Совет: При написании программ на ForceАссемблере желательно пользоваться одним из стилей создания сегментов. Либо указывать их явно т.е:

code_ segment code
code_ ends

либо создавать сегменты с помощью директив .CODE и .DATA.

Пример:

.SEGALIGN byte
.SEGCOMBINE private
.DATA
var1 db "Переменная", 0
.CODE
start:
exit

См.так же:

Директива .DATA

Директива .SEGALIGN

Директива .SEGCOMBINE


Директива .DATA

Директивы
Директива .DATA

Схема команды: .DATA [имя сегмента]

Алгоритм работы:

  • Если имя сегмента не указано, то создаётся сегмент данных с именем "data@номер сегмента в запакованном виде@"
  • Если имя сегмента указано, то создаётся сегмент данных.

Применение:

Align и combine при использовании директивы .DATA должны быть объявлены в директивах .SEGALIGN и .SEGCOMBINE. При написании программоно кода с использованием этой директивы не обязательно закрывать сегмент. т.е:

.DATA mydataseg
mydataseg ends

можно не указывать mydataseg ends. Закрывание сегмента происходит автоматически с ассемблированием следующей директивы .CODE или .DATA

 Совет: При написании программ на ForceАссемблере желательно пользоваться одним из стилей создания сегментов. Либо указывать их явно т.е:

data_ segment data
data_ ends

либо создавать сегменты с помощью директив .DATA и .CODE.

 Пример:

.SEGALIGN byte
.SEGCOMBINE private
.DATA
var1 db "Переменная", 0
.CODE
start:
exit

См.так же:

Директива .CODE

Директива .SEGALIGN

Директива .SEGCOMBINE


Untitled Document

Процедуры и функции
Работа с памятью
mAlloc | mFree | MemCpy | MemCmp
MemSet | StrCpy | StrCmp | StrCat
StrLwr | StrUpr | StrColl | StrLen
StrICmp | StrIColl | AddressOf | VirtualOf
CharToStr |  |  |


Untitled Document

Процедуры и функции
Прочие функции
Shell | ParamCount | ParamStr | Command$
Environ$ | DoEvents |  |


chdir

Совместимость Несовместимость Неопределено
Функции файловой системы
chdir
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function chdir (byval Path as string) as integer

Описание:

Функция chdir изменяет текущую директорию.

Path – имя директории.


dirs

Совместимость Несовместимость Неопределено
Функции файловой системы
dirs
Совместимость

Данная функция описана в модуле lang.files

Общий вид:

function Dirs ( byval Path as string, byval Search as string) as StringBuffer

Описание:
Возвращает только папки в каталоге по фильтру Search


ExtractFile

Совместимость Несовместимость Неопределено
Функции файловой системы
ExtractFileXXX
Совместимость

Данная функция описана в модуле lang.files

Общий вид:

function ExtractFileExt ( filename as string ) as string

Возвращает расширение файла

function ExtractFileDrive ( filename as string ) as string

Возвращает диск файла

function ExtractFileName ( filename as string ) as string

Возвращает имя файла

function ExtractFilePath ( filename as string ) as string

Возвращает путь к файлу

function ExtractFileNameOnly ( filename as string ) as string

Возвращает имя файла без расширения

Описание:

function ExtractFileExt ( filename as string ) as string

function ExtractFileDrive ( filename as string ) as string
function ExtractFileName ( filename as string ) as string
function ExtractFilePath ( filename as string ) as string
function ExtractFileNameOnly ( filename as string ) as string


file

Совместимость Несовместимость Неопределено
Функции файловой системы
File
Совместимость

Данная функция описана в модуле lang.files

Общий вид:

function File ( byval FileName as string ) as StringBuffer

Описание:
функция file читает файл построчно и возвращает строки в виде биффера строк


files

Совместимость Несовместимость Неопределено
Функции файловой системы
files
Совместимость
Пример

Данная функция описана в модуле lang.files

Общий вид:

function Files ( byval Path as string, byval Search as string, byval FindFiles as boolean, byval RetAll as boolean ) as StringBuffer
function Files ( byval Path as string, byval Search as string) as StringBuffer
function Files ( byval Path as string ) as StringBuffer

Описание:

Функция Files возвращает имена файлов или папок или папок и файлов в директории Path.

function Files ( byval Path as string, byval Search as string, byval FindFiles as boolean, byval RetAll as boolean ) as StringBuffer

Возвращает файлы и каталоги в директории Path по фильтру Search, FindFiles = true только файлы, false - только каталоги, RetAll = true - возвращает и файлы и каталоги

function Files ( byval Path as string, byval Search as string) as StringBuffer

Возвращает только файлы в каталоге по фильтру Search

function Files ( byval Path as string ) as StringBuffer

Возвращает все файлы и каталоги в директории Path


FilesAndDirs

Совместимость Несовместимость Неопределено
Функции файловой системы
FilesAndDirs
Совместимость

Данная функция описана в модуле lang.files

Общий вид:

function FilesAndDirs ( byval Path as string, byval Search as string) as StringBuffer

Описание:
Возвращает только папки в каталоге по фильтру Search


getcwd

Совместимость Несовместимость Неопределено
Функции файловой системы
getcwd
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function getcwd () as string

Описание:

Функция getcwd возвращает текущую директорию.


mkdir

Совместимость Несовместимость Неопределено
Функции файловой системы
mkdir
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function mkdir (byval Path as string) as integer

Описание:

Функция mkdir создаёт директорию.

Если директория создана, то функция mkdir вернёт нуль.


rmdir

Совместимость Несовместимость Неопределено
Функции файловой системы
rmdir
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function rmdir (byval Path as string) as integer

Описание:

Функция rmdir удаляет директорию.

Функция rmdir вернёт нуль, если директория удалена.


GetFillMask

Совместимость Несовместимость Неопределено
Графические функции
GetFillMask
Совместимость

Данная функция описана в модуле dos.graph

Общий вид:

public sub GetFillMask ( byref Mash ( 8 ) as byte )

Описание:
Процедура возвращает текущую масу заливки.

Параметры:
Mask : биты маски.


Randomize

Совместимость Несовместимость Неопределено
Математические функции
Randomize
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub Randomize (byval Number as long)

Описание:

Процедура инициализации генератора случайных чисел. Эту процедуру надо вызывать, когда используются функции Rnd или Random, чтобы при новом запуске программы она выдавала неповторимую последовательность случайных чисел.


AddressOf

Совместимость Несовместимость Неопределено
Работа с памятью
AddressOf
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function AddressOf ( byval vPointer as pointer ) as pointer

Описание:
AddressOf - возвращает физический адресс


CharToStr

Совместимость Несовместимость Неопределено
Работа с памятью
CharToStr
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function CharToStr (byval Src as pointer) as string

Описание:
Возвращает строку в стиле ForceBasic из указателя на строку в стиле C/С++


mAlloc

Совместимость Несовместимость Неопределено
Работа с памятью
mAlloc
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function mAlloc ( byval Size as dword ) as pointer

Описание:

Выделение памяти размером в Size байт.
функция возвращает указатель на выделенный блок памяти
в случае неудачи функция возвращает нуль.


MemCmp

Совместимость Несовместимость Неопределено
Работа с памятью
MemCmp
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function MemCmp (byval Mem1 as pointer, byval Mem2 as pointer, byval Size as dword) as integer

Описание:

Сравнение двух блоков памяти размером в Size.

Возвращает:

  • <0, если Mem1 < Mem2
  • >0, если Mem1 > Mem2
  • =0, если Mem1 = Mem2


MemCpy

Совместимость Несовместимость Неопределено
Работа с памятью
MemCpy
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub MemCpy (byval Destination as pointer, byval Source as pointer, byval Size as dword)

Описание:
Копирование блока памяти размером в Size, из Source в Destination


MemSet

Совместимость Несовместимость Неопределено
Работа с памятью
MemSet
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub MemSet (byval Destination as pointer, byval Value as byte, byval Size as dword)

Описание:
Установить в блоке памяти Destination, размером в Size все биты равные Value


mFree

Совместимость Несовместимость Неопределено
Работа с памятью
mFree
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub mFree ( byval Ptr as pointer )

Описание:
Освобождение памяти выделенной функцией malloc


StrCat

Совместимость Несовместимость Неопределено
Работа с памятью
StrCat
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub StrCat (byval Dest as pointer, byval Src as pointer)
sub StrCat (byval Dest as pointer, byval Src as string)

Описание:
Добавляет строку Src к строке Dest


StrCmp

Совместимость Несовместимость Неопределено
Работа с памятью
StrCmp
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function StrCmp (byval Dest as pointer, byval Src as pointer) as integer

Описание:
Сравнение строк, аналагично MemCmp

Возвращает:

  • <0, если Dest < Src
  • >0, если Dest > Src
  • =0, если Dest = Src


StrColl

Совместимость Несовместимость Неопределено
Работа с памятью
StrColl
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function StrColl (byval Dest as pointer, byval Src as pointer) as integer

Описание:

Сравнение двух строк.

Возвращает:

  • <0, если Dest < Src
  • >0, если Dest > Src
  • =0, если Dest = Src


StrCpy

Совместимость Несовместимость Неопределено
Работа с памятью
StrCpy
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub StrCpy (byval Dest as pointer, byval Src as string)

Описание:

Копирование строки Src в блок памяти Dest

Пример:

dim ptr as pointer = malloc (len("Hello"))
strcpy (ptr, "Hello")


StrICmp

Совместимость Несовместимость Неопределено
Работа с памятью
StrICmp
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function StrICmp (byval Dest as pointer, byval Src as pointer) as integer

Описание:
Сравнение строк без учёта регистра символов.

Возвращает:

  • <0, если Dest < Src
  • >0, если Dest > Src
  • =0, если Dest = Src


StrIColl

Совместимость Несовместимость Неопределено
Работа с памятью
StrIColl
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function StrIColl (byval Dest as pointer, byval Src as pointer) as integer

Описание:

Сравнение двух строк без учёта регистра символов.

Возвращает:

  • <0, если Dest < Src
  • >0, если Dest > Src
  • =0, если Dest = Src


StrLen

Совместимость Несовместимость Неопределено
Работа с памятью
StrLen
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function StrLen (byval Src as pointer) as dword

Описание:

Возвращает длинну строки Src


StrLwr

Совместимость Несовместимость Неопределено
Работа с памятью
StrLwr
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub StrLwr (byval Src as pointer)

Описание:
Все символы в нижнем регистре


StrUpr

Совместимость Несовместимость Неопределено
Работа с памятью
StrUpr
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub StrUpr (byval Src as pointer)

Описание:
Все символы в верхнем регистре


VirtualOf

Совместимость Несовместимость Неопределено
Работа с памятью
VirtualOf
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function VirtualOf ( byval rPointer as pointer ) as pointer

Описание:
VirtualOf - возвращает виртуальный адресс из физического.


Command

Совместимость Несовместимость Неопределено
Работа с памятью
Command$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Command$

Описание:
Классическая BASIC-функция COMMAND$. возвращает коммандную строку целиком


DoEvents

Совместимость Несовместимость Неопределено
Работа с памятью
DoEvents
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub DoEvents

Описание:
Передаёт цикл обработки сообщений операционной системе, после обработки сообщений программа выполняется дальше.


Environ

Совместимость Несовместимость Неопределено
Работа с памятью
Environ$
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function Environ$ ( byval Name as string )

Описание:
Возвращает содержимое переменной среды Name.


ParamCount

Совместимость Несовместимость Неопределено
Работа с памятью
ParamCount
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ParamCount () as integer

Описание:
Возвращает кол-во строк коммандной строки.


ParamStr

Совместимость Несовместимость Неопределено
Работа с памятью
ParamStr
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

function ParamStr ( byval Index as integer ) as string

Описание:
Возвращает строку номер Index из коммандной строки.


Shell

Совместимость Несовместимость Неопределено
Работа с памятью
Shell
Совместимость

Данная функция описана в модуле system.unit

Общий вид:

sub Shell (byval Command as string)

Описание:

Выполняет комманду операционной системы

Пример:

Shell "explorer.exe"


Модуль использует: | system | windows.gui.Control |

windows.gui.Pen
Описание модуля

Pen Class Copyright(c) by Metlashevskiy Egor

Функции

InitLibrary, ReleaseLibrary

Классы

Pen

Свойства

  • hPen
  • Color
  • Style
  • Width

События

  • OnChange

Методы

  • Refresh
  • Pen
  • @init_exception
  • @done_exception
  • ~Pen

sub InitLibrary

sub ReleaseLibrary

published class Pen

Свойство класса Pen

published property hPen as long

Нет описания

Свойство класса Pen

published property Color as long

Нет описания

Свойство класса Pen

published property Style as long

Нет описания

Свойство класса Pen

published property Width as long

Нет описания

Событие класса Pen

event OnChange ()

Нет описания

Метод класса Pen

declare sub Refresh ()

Нет описания

Метод класса Pen

sub Pen ( byref Parent as Control )

Нет описания

Метод класса Pen

public declare sub @init_exception()

Нет описания

Метод класса Pen

public declare sub @done_exception()

Нет описания

Метод класса Pen

declare sub ~Pen()

Нет описания

InitLibrary, ReleaseLibrary Pen
Сгенерировано компилятором ForceBasic (pb.exe)
Contact page