Язык Start & Компилятор Start-RTS РОСПАТЕНТ N 2004610440 |
Объектный раздел |
В разделе изложены основные концепции класса и объекта, поддерживаемые в языке Start. Элегантность, простота и мощь этих концепций заложены Создателями во все живое, окружает нас повседневно и настолько очевидно, что не требует особых пояснений.
|
Класс |
Класс является композицией, состоящей из [других классов,] деклараций данных и кода, который отслеживает изменения значений данных в объектах, созданных из данного класса. |
Декларация |
class id_class { contain \ { \ class id_class; \ ....... | опционально class id_class1 = class id_classA; / ....... / } / data { \ ....... | декларация данных } / code { \ ....... | составной оператор } / }
|
Объект
Операции с объектами |
Объект является копией данных класса, имеющих конкретные значения,совокупность которых представляет состояние объекта. Управление состоянием объекта извне выполняется напрямую изменением значений его данных. Другого способа изменить состояние объекта нет.
Отслеживание состояния объекта выполняется автоматически кодом класса из которого создан объект. Для объектов определены следующие операции: Create, Connect, Delete, Exame.
|
Create |
Create id_object.id_class; id_object - имя объекта id_class - имя класса Создает объект id_object из класса id_class.
|
Connect |
Connect id_object; id_object - имя объекта Подключает объект для взаимодействия с операционной системой.
|
Delete |
Delete id_object; id_object - имя объекта Удаляет объект из памяти с полным его разрушением.
|
Exame |
Exame; Проверяет состояние объекта при взаимодействии с операционной системой.
|
data |
Данные объекта являются переменными языка Start и обращение к ним выполняется в следующей форме. id_class.id_object.id_data id_class - имя класса id_object - имя объекта id_data - имя данного объекта
|
code |
Доступ к коду класса запрещен.
|
Встроенные классы |
Встроенные классы предназначены для взаимодействия с элементами интерфейса операционной системы.
|
s_window |
//================================================================= // class s_window (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_window { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y and width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of window dint _asub = 0; // active subcontrol or menu char _text = ""; // name of window char _pict = ""; // picture for window char _help = ""; // help of window char _wdat = ""; // user data window } /* loword - window styles 0x-------- OVERLAPPED TILED 0x8------- POPUP 0x4------- CHILD CHILDWINDOW 0x2------- MINIMIZE ICONIC 0x1------- VISIBLE 0x-8------ DISABLED 0x-4------ CLIPSIBLINGS 0x-2------ CLIPCHILDREN 0x-1------ MAXIMIZE 0x--8----- BORDER 0x--4----- DLGFRAME 0x--2----- VSCROLL 0x--1----- HSCROLL 0x---8---- SYSMENU 0x---4---- THICKFRAME SIZEBOX 0x---2---- GROUP MINIMIZEBOX 0x---1---- TABSTOP MAXIMIZEBOX 0x--C----- CAPTION ( BORDER | DLGFRAME ) 0x8-88---- POPUPWINDOW ( POPUP | BORDER | SYSMENU ) 0x--CF---- OVERLAPPEDWINDOW TILEWINDOW ( OVERLAPPED | CAPTION | SYSMENU | THICKFRAME | MINIMIZEBOX | MAXIMIZEBOX )
hiword - extended window styles 0x-------- LEFT LTRREADING RIGHTSCROLLBAR 0x-------1 DLGMODALFRAME 0x-------4 NOPARENTNOTIFY 0x-------8 TOPMOST 0x------1- ACCEPTFILES 0x------2- TRANSPARENT 0x------4- MDICHILD 0x------8- TOOLWINDOW 0x-----1-- WINDOWEDGE 0x-----2-- CLIENTEDGE 0x-----4-- CONTEXTHELP 0x----1--- RIGHT 0x----2--- RTLREADING 0x----4--- LEFTSCROLLBAR 0x---1---- CONTROLPARENT 0x---2---- STATICEDGE 0x---4---- APPWINDOW 0x-----3-- OVERLAPPEDWINDOW ( WINDOWEDGE | CLIENTEDGE ) 0x-----188 PALETTEWINDOW ( WINDOWEDGE | TOOLWINDOW | TOPMOST ) */ code { ; } }
|
s_button |
//================================================================= // class s_button (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_button { data { qint _ndat = 0; // handle of parent window, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // backcolor, forecolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // name of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - button styles 0x-------- PUSHBUTTON TEXT 0x-------1 DEFPUSHBUTTON 0x-------2 CHECKBOX 0x-------3 AUTOCHECKBOX 0x-------4 RADIOBUTTON 0x-------5 3STATE 0x-------6 AUTO3STATE 0x-------7 GROUPBOX 0x-------8 USERBUTTON 0x-------9 AUTORADIOBUTTON 0x-------B OWNERDRAW 0x------2- LEFTTEXT RIGHTBUTTON 0x------4- ICON 0x------8- BITMAP 0x-----1-- LEFT 0x-----2-- RIGHT 0x-----3-- CENTER 0x-----4-- TOP 0x-----8-- BOTTOM 0x-----C-- VCENTER 0x----1--- PUSHLIKE 0x----2--- MULTILINE 0x----4--- NOTIFY 0x----8--- FLAT */ code { ; } }
|
s_cmbbox |
//================================================================= // class s_cmbbox (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_cmbbox { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // text of subcontrol char _pict = ""; // picture of subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - combobox styles 0x-------1 SIMPLE 0x-------2 DROPDOWN 0x-------3 DROPDOWNLIST 0x------1- OWNERDRAWFIXED 0x------2- OWNERDRAWVARIABLE 0x------4- AUTOHSCROLL 0x------8- OEMCONVERT 0x-----1-- SORT 0x-----2-- HASSTRINGS 0x-----4-- NOINTEGRALHEIGHT 0x-----8-- DISABLENOSCROLL 0x----2--- UPPERCASE 0x----4--- LOWERCASE */ code { ; } }
|
s_edtbox |
//================================================================= // class s_edtbox (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_edtbox { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // text of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - edit styles 0x-------- LEFT 0x-------1 CENTER 0x-------2 RIGHT 0x-------4 MULTILINE 0x-------8 UPPERCASE 0x------1- LOWERCASE 0x------2- PASSWORD 0x------4- AUTOVSCROLL 0x------8- AUTOHSCROLL 0x-----1-- NOHIDESEL 0x-----4-- OEMCONVERT 0x-----8-- READONLY 0x----1--- WANTRETURN 0x----2--- NUMBER */ code { ; } }
|
s_header |
//================================================================= // class s_header (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_header { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // backcolor, forecolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // name of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - header styles 0x-------- HDS_HORZ 0x-------2 HDS_BUTTONS 0x-------8 HDS_HIDDEN
0x-------1 HDI_WIDTH 0x-------1 HDI_HEIGHT 0x-------2 HDI_TEXT 0x-------4 HDI_FORMAT 0x-------8 HDI_LPARAM 0x------1- HDI_BITMAP
0x-------- HDF_LEFT 0x-------1 HDF_RIGHT 0x-------2 HDF_CENTER 0x-------3 HDF_JUSTIFYMASK 0x-------4 HDF_RTLREADING
0x----8--- HDF_OWNERDRAW 0x----4--- HDF_STRING 0x----2--- HDF_BITMAP
0x-------1 HHT_NOWHERE 0x-------2 HHT_ONHEADER 0x-------4 HHT_ONDIVIDER 0x-------8 HHT_ONDIVOPEN 0x-----1-- HHT_ABOVE 0x-----2-- HHT_BELOW 0x-----4-- HHT_TORIGHT 0x-----8-- HHT_TOLEFT */ code { ; } }
|
s_lstbox |
//================================================================= // s_lstbox.css (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_lstbox { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // text of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - listbox styles 0x-------1 NOTIFY 0x-------2 SORT 0x-------4 NOREDRAW 0x-------8 MULTIPLESEL 0x------1- OWNERDRAWFIXED 0x------2- OWNERDRAWVARIABLE 0x------4- HASSTRINGS 0x------8- USETABSTOPS 0x-----1-- NOINTEGRALHEIGHT 0x-----2-- MULTICOLUMN 0x-----4-- WANTKEYBOARDINPUT 0x-----8-- EXTENDEDSEL 0x----1--- DISABLENOSCROLL 0x----2--- NODATA 0x----4--- NOSEL 0x--A----3 STANDARD ( NOTIFY | SORT | VSCROLL | BORDER ) */ code { ; } }
|
s_lstviw |
//================================================================= // class s_lstviw (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_lstviw { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // backcolor, forecolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // name of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - listview styles 0x-------- LVS_ICON 0x-------1 LVS_REPORT 0x-------2 LVS_SMALLICON 0x-------3 LVS_LIST 0x-------3 LVS_TYPEMASK 0x-------4 LVS_SINGLESEL 0x-------8 LVS_SHOWSELALWAYS 0x------1- LVS_SORTASCENDING 0x------2- LVS_SORTDESCENDING 0x------4- LVS_SHAREIMAGELISTS 0x------8- LVS_NOLABELWRAP 0x-----1-- LVS_AUTOARRANGE 0x-----2-- LVS_EDITLABELS 0x----1--- LVS_OWNERDATA 0x----2--- LVS_NOSCROLL
0x----fc-- LVS_TYPESTYLEMASK
0x-------- LVS_ALIGNTOP 0x-----8-- LVS_ALIGNLEFT 0x-----c-- LVS_ALIGNMASK
0x-----4-- LVS_OWNERDRAWFIXED 0x----4--- LVS_NOCOLUMNHEADER 0x----8--- LVS_NOSORTHEADER */ code { ; } }
|
s_menuim |
//================================================================= // class s_menuim (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_menuim { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y and width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident menu dint _asub = 0; // number of submenuitem char _text = ""; // name of item char _pict = ""; // picture for item char _help = ""; // help of item char _wdat = ""; // user data item } /* loword - menu styles 0x-------- INSERT BYCOMMAND ENABLED STRING UNCHECKED UNHILITE 0x-------1 GRAYED 0x-------2 DISABLED 0x-------4 BITMAP 0x-------8 CHECKED 0x------1- POPUP 0x------2- MENUBARBREAK 0x------4- MENUBREAK 0x------8- HILITE CHANGE END 0x-----1-- APPEND OWNERDRAW 0x-----2-- DELETE RADIOCHECK USECHECKBITMAPS 0x-----4-- BYPOSITION 0x-----8-- SEPARATOR 0x----1--- REMOVE DEFAULT 0x----2--- SYSMENU RIGHTORDER 0x----4--- HELP RIGHTJUSTIFY 0x----8--- MOUSESELECT
hiword - extended menu styles 0x-------- LEFTBUTTON LEFTALIGN TOPALIGN HORIZONTAL 0x-------2 RIGHTBUTTON 0x-------4 CENTERALIGN 0x-------8 RIGHTALIGN 0x------1- VCENTERALIGN 0x------2- BOTTOMALIGN 0x------4- VERTICAL 0x------8- NONOTIFY 0x-----1-- RETURNCMD */ code { ; } }
|
s_riched |
//================================================================= // class s_riched (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_riched { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y and width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of window dint _asub = 0; // active subcontrol or menu char _text = ""; // name of window char _pict = ""; // picture for window char _help = ""; // help of window char _wdat = ""; // user data window } /* loword - riched styles 0x-------- LEFT 0x-------1 CENTER 0x-------2 RIGHT 0x-------4 MULTILINE 0x-------8 UPPERCASE 0x------1- LOWERCASE 0x------2- PASSWORD 0x------4- AUTOVSCROLL 0x------8- AUTOHSCROLL 0x-----1-- NOHIDESEL 0x-----4-- OEMCONVERT 0x-----8-- READONLY 0x----1--- WANTRETURN 0x----2--- NUMBER */ code { ; } }
|
s_static |
//================================================================= // s_static.css (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_static { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // text of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - static styles 0x-------- LEFT 0x-------1 CENTER 0x-------2 RIGHT 0x-------3 ICON 0x-------4 BLACKRECT 0x-------5 GRAYRECT 0x-------6 WHITERECT 0x-------7 BLACKFRAME 0x-------8 GRAYFRAME 0x-------9 WHITEFRAME 0x-------A USERITEM 0x-------B SIMPLE 0x-------C LEFTNOWORDWRAP 0x-------D OWNERDRAW 0x-------E BITMAP 0x-------F ENHMETAFILE 0x------1- ETCHEDHORZ 0x------11 ETCHEDVERT 0x------12 ETCHEDFRAME 0x------1F TYPEMASK 0x------8- NOPREFIX 0x-----1-- NOTIFY 0x-----2-- CENTERIMAGE 0x-----4-- RIGHTJUST 0x-----8-- REALSIZEIMAGE 0x----1--- SUNKEN 0x----4--- ENDELLIPSIS 0x----8--- PATHELLIPSIS 0x----C--- WORDELLIPSIS ELLIPSISMASK */ code { ; } }
|
s_stsbar |
//================================================================= // s_stsbar.css (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_stsbar { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // backcolor, forecolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // text of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - stsbar styles 0x-------- LEFT 0x-------1 CENTER 0x-------2 RIGHT 0x-------3 ICON 0x-------4 BLACKRECT 0x-------5 GRAYRECT 0x-------6 WHITERECT 0x-------7 BLACKFRAME 0x-------8 GRAYFRAME 0x-------9 WHITEFRAME 0x-------A USERITEM 0x-------B SIMPLE 0x-------C LEFTNOWORDWRAP 0x-------D OWNERDRAW 0x-------E BITMAP 0x-------F ENHMETAFILE 0x------1- ETCHEDHORZ 0x------11 ETCHEDVERT 0x------12 ETCHEDFRAME 0x------1F TYPEMASK 0x------8- NOPREFIX 0x-----1-- NOTIFY 0x-----2-- CENTERIMAGE 0x-----4-- RIGHTJUST 0x-----8-- REALSIZEIMAGE 0x----1--- SUNKEN 0x----4--- ENDELLIPSIS 0x----8--- PATHELLIPSIS 0x----C--- WORDELLIPSIS ELLIPSISMASK */ code { ; } }
|
s_tolbar |
//================================================================= // class s_tolbar (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_tolbar { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // backcolor, forecolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // name of subcontrol char _pict = ""; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - tolbar styles 0x-------- OVERLAPPED TILED 0x1------- VISIBLE 0x2------- MINIMIZE ICONIC 0x4------- CHILD CHILDWINDOW 0x8------- POPUP 0x-1------ MAXIMIZE 0x-2------ CLIPCHILDREN 0x-4------ CLIPSIBLINGS 0x-8------ DISABLED 0x--1----- HSCROLL 0x--2----- VSCROLL 0x--4----- DLGFRAME 0x--8----- BORDER 0x---1---- TABSTOP MAXIMIZEBOX 0x---2---- GROUP MINIMIZEBOX 0x---4---- THICKFRAME SIZEBOX 0x---8---- SYSMENU 0x--C----- CAPTION ( BORDER | DLGFRAME ) 0x8-88---- POPUPWINDOW ( POPUP | BORDER | SYSMENU ) 0x--CF---- OVERLAPPEDWINDOW TILEWINDOW ( OVERLAPPED | CAPTION | SYSMENU | THICKFRAME | MINIMIZEBOX | MAXIMIZEBOX )
hiword - tolbar styles 0x-------- LEFT LTRREADING RIGHTSCROLLBAR 0x-------1 DLGMODALFRAME 0x-------4 NOPARENTNOTIFY 0x-------8 TOPMOST 0x------1- ACCEPTFILES 0x------2- TRANSPARENT 0x------4- MDICHILD 0x------8- TOOLWINDOW 0x-----1-- WINDOWEDGE 0x-----2-- CLIENTEDGE 0x-----4-- CONTEXTHELP 0x----1--- RIGHT 0x----2--- RTLREADING 0x----4--- LEFTSCROLLBAR 0x---1---- CONTROLPARENT 0x---2---- STATICEDGE 0x---4---- APPWINDOW 0x-----3-- OVERLAPPEDWINDOW ( WINDOWEDGE | CLIENTEDGE ) 0x-----188 PALETTEWINDOW ( WINDOWEDGE | TOOLWINDOW | TOPMOST ) */ code { ; } }
|
s_treviw |
//================================================================= // class s_treviw (c) Copyright & Author Yury Vagin 1995... //=================================================================
class s_treviw { data { qint _ndat = 0; // handle of parent, number of change data qint _xywh = 0; // coord x, y, width, height qint _styl = 0; // exstyle, style qint _colo = 0; // forecolor, backcolor dint _font = 0; // choice font dint _mess = 0; // message dint _isub = 0; // ident of subcontrol dint _asub = 0; // active subcontrol char _text = ""; // name of subcontrol char _pict = "0"; // picture for subcontrol char _help = ""; // help of subcontrol char _wdat = ""; // user data of subcontrol } /* loword - treviw styles 0x-------- OVERLAPPED TILED 0x1------- VISIBLE 0x2------- MINIMIZE ICONIC 0x4------- CHILD CHILDWINDOW 0x8------- POPUP 0x-1------ MAXIMIZE 0x-2------ CLIPCHILDREN 0x-4------ CLIPSIBLINGS 0x-8------ DISABLED 0x--1----- HSCROLL 0x--2----- VSCROLL 0x--4----- DLGFRAME 0x--8----- BORDER 0x---1---- TABSTOP MAXIMIZEBOX 0x---2---- GROUP MINIMIZEBOX 0x---4---- THICKFRAME SIZEBOX 0x---8---- SYSMENU 0x--C----- CAPTION ( BORDER | DLGFRAME ) 0x8-88---- POPUPWINDOW ( POPUP | BORDER | SYSMENU ) 0x--CF---- OVERLAPPEDWINDOW TILEWINDOW ( OVERLAPPED | CAPTION | SYSMENU | THICKFRAME | MINIMIZEBOX | MAXIMIZEBOX )
hiword - extended window styles 0x-------- LEFT LTRREADING RIGHTSCROLLBAR 0x-------1 DLGMODALFRAME 0x-------4 NOPARENTNOTIFY 0x-------8 TOPMOST 0x------1- ACCEPTFILES 0x------2- TRANSPARENT 0x------4- MDICHILD 0x------8- TOOLWINDOW 0x-----1-- WINDOWEDGE 0x-----2-- CLIENTEDGE 0x-----4-- CONTEXTHELP 0x----1--- RIGHT 0x----2--- RTLREADING 0x----4--- LEFTSCROLLBAR 0x---1---- CONTROLPARENT 0x---2---- STATICEDGE 0x---4---- APPWINDOW 0x-----3-- OVERLAPPEDWINDOW ( WINDOWEDGE | CLIENTEDGE ) 0x-----188 PALETTEWINDOW ( WINDOWEDGE | TOOLWINDOW | TOPMOST ) */ code { ; } }
|
s_animat |
|
s_hotkey |
|
s_prgbar |
|
s_scrbar |
|
s_tabctr |
|
s_toltip |
|
s_trkbar |
|
s_updown |
|
e-mail: rts@etel.ru tel/fax: ( 343 ) 335-92-31 |
Copyright (C) Company RTS 2000 |