к оглавлению

Атрибуты окон и отчетов Clarion

Мнемонические имена свойств атрибутов

Каждый из атрибутов, задающий мнемонические имена свойств во время исполнения программы, имеет собственное описание (PROP:атрибут) и все они содержатся в файле PRORERTY.CLW. Кроме того, в этом файле содержатся мнемонические имена стандартных значений, используемых для некоторых из этих свойств. Некоторые свойства допускают только чтение и их значения нельзя изменить, другие допускают только запись в них значения, нельзя определить их текущее значение. Эти ограничения называется применяемыми.

PROP:Text

PROP:Text - параметр заголовка окна APPLICATION(текст), WINDOW(текст), или любого экранного объекта. Может содержать любое значение, допустимое в качестве параметра для экранного объекта. Это свойство определяет параметр для любого элемента управления или описания окна и может при этом содержать какое-нибудь значение, которое может быть применено к данному элементу управления в качестве параметра. Например:

Пример:

?Image{PROP:Text} = 'My.BMP' ! отображает в описываемом элементе управления

!типа IMAGE новую битовую картинку

?Prompt{PROP:Text} = 'New Prompt text' ! отображает в описываемом элементе управления

!типа PROMPT новый текст

?Entry{PROP:Text} = '@N03' ! устанавливает новый формат отображения данных в

!описываемом элементе управления типа ENTRY.

Параметры свойств атрибутов

Многие атрибуты не используют параметры – они либо отсутствуют либо присутствуют. Поэтому они выполняют простое переключение – включить или выключить. Назначение пустой строки (‘’) или нуля (0) выключает их. Присвоение единицы (1) - включает. Обычно, с этой целью используются стандартные соответствия TRUE и FALSE. При опросе таких свойств они возвращают пустую строку для окон, отчетов или управляющих объектов. Примеры этих типов свойств атрибутов - PROP:ABOVE, PROP:ABSOLUTE и PROP:ALONE.

Пример:

?MyControl{PROP:DISABLE} = TRUE !затушевывает управляющий объект

Много атрибутов используются с единственным параметром, наличие которого определяет как присутствие атрибута так и его величины. Назначение пустой строку ('') или нуля (0) выключает его. Применение любого другого значение включает его. Примерами этих типов свойств атрибутов - PROP:TIMER и PROP:DROP.

Пример:

MyWindow{PROP:TIMER} = 100 ! установить таймер равным 1 секунде

 

Множественные свойства

Множественные свойства атрибута это массивы которые содержат несколько значений (такие как PROP:ALRT, которое может содержать до 255 раздельных горячих клавиш) или на которые можно ссылаться как на массивы напрямую адресуя их множественные параметры вместо использования отдельно объявленных мнемонических имен для каждого отдельного параметра (такие как PROP:AT, на параметры которого можно ссылаться либо как {PROP:AT,n) или как отдельно указывая каждый параметр: PROP:Xpos, PROP:Ypos, PROP:Width и PROP:Height ).

Пример:

CheckField STRING(1)

Screen WINDOW

ENTRY(@N3),USE(Ctl:Code)

ENTRY(@S30),USE(Ctl:Name),REQ

CHECK('True or False'),USE(CheckField)

IMAGE('SomePic.BMP'),USE(?Image)

BUTTON('OK'),USE(?OkButton),KEY(EnterKey)

BUTTON('Cancel'),USE(?CanxButton),KEY(EscKey)

END

CODE

OPEN(Screen)

Screen{PROP:AT,1} = 0 !Позиция окна в левом верхнем углу

Screen{PROP:AT,2} = 0

Screen{PROP:GRAY} = 1 !Придать окну объемность

Screen{PROP:STATUS,1} = -1 !Создать панель статуса состоящую их 2-х секций

Screen{PROP:STATUS,2} = 180

Screen{PROP:STATUS,3} = 0 !Убрать секцию панели статуса

Screen{PROP:StatusText,2} = FORMAT(TODAY(),@D2) !Поместить дату во вторую секцию:

?CtlCode{PROP:ALRT,1} = F10Key !Назначить Ctl:Code горячую клавишу F10

?CtlCode{PROP:Text} = '@N4' !Изменить шаблон вводимого поля

?Image{PROP:Text} = 'MyPic.BMP' !Изменить имя файла с изображением

?OkButton{PROP:DEFAULT} = '1' !Применить атрибут DEFAULT кнопке OK

?MyButton{PROP:ICON} = 'C:\Windows\MORICONS.DLL[10]'

!Показать 11-ую иконку в MORICONS.DLL (начиная от нуля)

?MyButton{PROP:ICON} = 'C:\Windows\MORICONS.DLL[0]'

!Показать первую иконку в MORICONS.DLL (начиная от нуля)

?CheckField{PROP:TrueValue} = 'T' !Помеченное/непомеченное значения для CHECK

?CheckField{PROP:FalseValue} = 'F'

ACCEPT

END

 

Атрибуты для окон и отчетов

ABSOLUTE (печатать с фиксированной позиции)

ABSOLUTE

Атрибут ABSOLUTE (PROP:ABSOLUTE) гарантирует, что при выводе на печать структура DETAIL, или HEADER (раздела), или FOOTER (раздела) (HEADER и FOOTER внутри BREAK) попадет в фиксированное место страницы. Если структура объявлена с атрибутом ABSOLUTE, то параметры x и y ее AT-атрибута указывают положение относительно левого верхнего угла страницы. ABSOLUTE не окажет действия на следующие структуры, напечатанные без атрибута ABSOLUTE.

Пример:

CustRpt REPORT,AT(1000,2000,6500,9000),THOUS

HEADER

! элементы структуры

END

CDetail1 DETAIL,AT(0,0,6500,1000)

! элементы структуры

END

CDetail2 DETAIL,AT(1000,1000,6500,1000),ABSOLUTE !

! DETAIL с фиксированной позицией

! элементы структуры

END

END

 

ALONE (установить печать страницы без страничного header, footer или form)

ALONE

Атрибут ALONE (PROP:ALONE) устанавливает, что вывод на печать структуры DETAIL, или HEADER (раздела), или FOOTER (раздела) (HEADER и FOOTER внутри BREAK) будет производиться без печатания FORM, HEADER (страницы), FOOTER (страницы) (HEADER и FOOTER вне BREAK) структур. Используется, в основном, для вывода на печать страницы с наименованием документа и для печати страниц с общими итогами.

Пример:

CustRpt REPORT

TitlePage DETAIL,ALONE ! Структура страницы наименования документа

! элементы структуры

END

CustDetail DETAIL

! элементы структуры

END

FOOTER

! элементы структуры

END

END

 

ALRT (установить горячие клавиши для объекта)

ALRT(код клавиши)

ALRT Задает горячую клавишу активную в то время, когда на APPLICATION, WINDOW или поле переключен фокус.

код клавиши Числовая константа кода клавиши или мнемоническая метка соответствия кода клавиши.

Атрибут ALRT (PROP:ALRT) определяет действие горячей клавиши, когда WINDOW, APPLICATION или управляющее поле имеют фокус.

Когда пользователь нажимает горячую клавишу, (заданную для экранного поля атрибутом ALRT, если атрибут указан для поля, или не зависящее от поля событие, если атрибут указан для APPLICATION или WINDOW) генерируются два события: EVENT:PreAlertKey и EVENT:AlertKey (именно в таком порядке). Если программа не выполняет оператор CYCLE при обработке события EVENT:PreAlertKey, вы блокируете действие библиотечной функции, предусмотренное по умолчанию при нажатии аварийной клавиши. Если программа выполняет оператор цикла CYCLE при обработке события EVENT: PreAlertKey, то библиотечная функция выполняет действия, предусмотренные по умолчанию при нажатии аварийной клавиши. И в том, и в другом случае, событие EVENT: AlertKey генерируется вслед за событием EVENT: PreAlertKey. Когда генерируется событие EVENT: AlertKey, USE-переменная в управляющем поле с фокусом ввода автоматически не обновляется. (Используйте оператор UPDATE, если это обновление требуется.)

Для APPLICATION, WINDOW или объекта можно задать несколько атрибутов ALRT (до 255). Оператор ALERT и атрибут ALRT для окна или объекта - это совершенно разные вещи. Это означает, что отмена горячих клавиш оператором ALERT не влияет на горячие клавиши включенные атрибутами ALRT.

PROP:ALRT это массив, включающий в себя до 255 кодов клавиш. Если указанный номер элемента массива больше чем число назначенных горячих клавиш, то значение кода клавиши на самом деле присваивается первому свободному номеру элемента массива. Например, предположим, что горячие клавиши не назначены совсем, то, если вы укажите код клавиши элементу под номером 255, то на самом деле присвоение будет назначено элементу под номером 1. Следующее присвоение другого кода клавиши элементу под номером 255 (все еще свободному) – присвоит значение элементу под номером 2. Однако явное присвоение кода клавиши элементу под номером 1 переназначит уже присвоенный код клавиши в элементе под номером 1.

Пример:

WinOne WINDOW,AT(0,0,160,400)

ENTRY,AT(6,40),USE(SomeVar1),ALRT(MouseLeft) !Клик мышью назначен ддя объекта

ENTRY,AT(60,40),USE(SomeVar2),ALRT(F10Key) ! F10 включена для поля

END

CODE

OPEN(WinOne)

ACCEPT

CASE FIELD()

OF ?SomeVar1

CASE EVENT()

OF EVENT:PreAlertKey !Перед событием alert

CYCLE !Назначает стандартное поведение мыши

OF EVENT:AlertKey ! Обработка события

DO ClickRoutine

END

OF ?SomeVar2

CASE EVENT()

OF EVENT:AlertKey ! Обработка события

DO F10Routine

END

END

END

END

 

ANGLE (установить угол под которым выводится или печатается объект)

ANGLE( размер )

ANGLE Определяет ориентацию экранного объекта STRING.

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

Атрибут ANGLE (PROP:ANGLE) указывает вывод на экране или отчете STRING под заданным углом, измеряемым против движения часовой стрелки от горизонтального направления вывода текста в окне или горизонтального расположения отчета (и книжной ориентации, и альбомной). Этот атрибут позволяет вывести или напечатать текст помимо стандартной горизонтальной ориентации под любым углом. Шрифт для этой строки должен быть TrueType.

Пример:

WinOne WINDOW,AT(0,0,160,400),FONT('Arial')

!Отобразить тект горизонтально

STRING('String Constant'),AT(6,40),USE(?String1)

!Отобразить текст вертикально

STRING('String Constant'),AT(6,40),USE(?String2),ANGLE(900)

!Отобразить текст "вверх ногами"

STRING('String Constant'),AT(6,40),USE(?String3),ANGLE(1800)

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS,FONT('Arial',10)

Detail DETAIL,AT(0,0,6500,1000)

!Печатать текст горизонтально

STRING('String Constant'),AT(500,500,1500,500)

!Печатать текст вертикально

STRING('String Constant'),AT(500,500,1500,500),ANGLE(900)

!Печатать текст "вверх ногами"

STRING('String Constant'),AT(500,500,1500,500),ANGLE(1800)

END

END

AT (установить положение и размеры поля)

AT([x] [,y] [,ширина] [,высота])

AT Определяет положение и размеры структуры или объекта в которой он размещен.

x Целочисленная константа или константное выражение, которое задает горизонтальную координату левого верхнего угла объекта (PROP:Xpos, эквивалентно {PROP:At,1}). Если этот параметр опущен, то библиотечной процедурой выбирается значение по умолчанию.

Y Целочисленная константа или константное выражение, которое задает вертикальную координату левого верхнего угла объекта (PROP:Ypos, эквивалентно {PROP:At,2}). Если этот параметр опущен, то библиотечной процедурой выбирается значение по умолчанию.

ширина Целочисленная константа или константное выражение, которое задает ширину объекта (PROP:Widht, эквивалентно {PROP:At,3}). Если этот параметр опущен, то значение по умолчанию выбирается библиотечной процедурой.

высота Целочисленная константа или константное выражение, которое задает высоту объекта (PROP:Height, эквивалентно {PROP:At,4}). Если этот параметр опущен, то значение по умолчанию выбирается библиотечной процедурой.

Атрибут AT (PROP:AT) определяет местоположение и размеры структуры или объекта. Позиция x, y относительна и зависит от оператора для которого установлен атрибут AT. Значения параметров x, y, ширина и высота измеряются в условных единицах для APPLICATION или WINDOW. В отчетах, если не присутствует какой-либо из атрибутов THOUS, MM или POINTS, то – по умолчанию - значения параметров x, y, ширина и высота также заданы в условных единицах измерения.

Условная единица определяется как одна четвертая средней ширины символа в шрифте на одну восьмую средней высоты. Размер условной единицы зависит от размера шрифта, используемого по умолчанию для окна или отчета. Эта единица измерения базируется на размере шрифта, заданного для окна или отчета атрибутом FONT или шрифтом, установленным по умолчанию средой Windows (если атрибут FONT не указан для окна или отчета).

Использование в окнах

Координаты x и y отсчитываются относительно левого верхнего угла растра экрана монитора, если атрибут AT относится к структуре APPLICATION или к структуре WINDOW без атрибута MDI, которая открывается до того, как программой будет открыта структура APPLICATION.

И эти координаты отсчитываются относительно левого верхнего угла окна APPLICATION если атрибут AT относится к структуре WINDOW с атрибутом MDI или к структуре WINDOW без атрибута MDI, но которая открывается после того, как уже открыто окно APPLICATION.

Параметры ширина и высота задают размер “клиентской области” или “рабочего пространства” в окне APPLICATION. Это область ниже линейки меню и над линейкой состояния, в которой располагается панель инструментов и открываются “порожденные” MDI-окна. Для окна, описываемого структурой WINDOW, эти параметры задают размер “рабочей области”, которая может содержать управляющие поля.

Использование в экранных объектах

Координаты x и y отсчитываются относительно левого верхнего угла окна APPLICATION или WINDOW клиентской области.

Использование в отчетах

Атрибут AT структуры REPORT определяет позицию и размер области страницы, в которой печатается каждая структура DETAIL. Это та область, содержащая все структуры DETAIL, любые групповые HEADER и FOOTER внутри структуры BREAK, которая будет напечатана.

Использование в структурах отчета

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

В структурах FORM, страничных HEADER и FOOTER (вне структуры BREAK) атрибут AT определяет положение и размер области внутри страницы, куда будет выводиться структура. Параметры x и y указывают положение относительно левого верхнего угла страницы.

Если атрибут AT относится к структурам DETAIL, HEADER и FOOTER для раздела (внутри структуры BREAK), то вывод указанных структур на печать подчиняется следующим правилам (при условии, когда отсутствует атрибут ABSOLUTE):

Использование в объектах отчета

Параметры x и y считаются относительно той структуры отчета в котором находятся эти объекты.

Пример:

WinOne WINDOW,AT(0,0,380,200),MDI !Окно в верхнем левом углу относительно рамки окна

END

WinTwo WINDOW,AT(0,0,380,200) !Окно в верхнем левом углу относительно растра экрана

END

!Измерение в условных единицах

WinOne WINDOW,AT(0,0,160,400)

ENTRY,AT(8,40,80,8) !Приблиз. 2 символ слева, 5 строк вниз

!шириной – 20 высотой 1 символ

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS !AT указывает область печати

Detail DETAIL,AT(0,0,6500,1000) !AT указывает размер band и

!позицию относительно

!последней напечатанной структуры

STRING('String Constant'),AT(500,500,1500,500)

!AT указывает размер объекта и

!смещение внутри detail band

END

END

CustRpt REPORT,AT(1000,2000,6500,7000),THOUS !1 дюйм отступа по периметру

HEADER,AT(1000,1000,6500,1000) !Относительно позиции элемента страницы

!элементы структуры !1 дюйм от вершины страницы

END

CustD1 DETAIL,AT(0,0,6500,1000) !Относительная позиция Detail

!элементы структуры !1 дюйм от страницы

END

CustD2 DETAIL,ABSOLUTE,AT(1000,8000,6500,1000) !Относительно позиции страничного элемента

!элементы структуры !1 дюйм от низа страницы

END

FOOTER,AT(1000,9000,6500,1000) !Относительно позиции страничного элемента

!элементы структуры !1 дюйм с низа страницы

END

END

CustRpt1 REPORT,AT(1000,1000,6500,9000),THOUS !11 дюйм отступа по периметру

! страницы размера 8.5" x 11"

!структуры отчета

END

CustRpt2 REPORT,AT(72,72,468,648),POINTS !1 дюйм отступа по периметру

!detail размером 8.5" x 11"

!структуры отчета

END

Смотри также: SETPOSITION, GETPOSITION

 

AUTO (автоматическое обновление на экране значения USE-переменной)

AUTO

Атрибут AUTO (PROP:Auto) указывает, что при каждом выполнении цикла ACCEPT на экране заново выводятся значения USE-переменных всех объектов окна и панели инструментов. Использование этого атрибута влечет за собой некоторое дополнительное увеличение программного кода и времени выполнения, но обеспечивает актуальность высвечиваемых данных без явного выполнения оператора DISPLAY.

Пример:

WinOne WINDOW,AT(,,380,200),MDI,CENTER,AUTO ! Значения всех полей всегда высвечивать

!экранные объекты

END

CODE

! В цикле ACCEPT автоматически выводятся значения измененных USE-переменных

ACCEPT

END

 

AUTOSIZE (установить изменение размеров объекта OLE)

AUTOSIZE

Атрибут AUTOSIZE (PROP:AUTOSIZE, только для записи) указывает, что OLE-объект автоматически изменяет свои размеры, когда, используя синтаксис изменения свойств во время выполнения программы, изменением свойства PROP:At изменяются значения параметров атрибута AT.

 

AVE (установить итоговое среднее)

AVE( [ переменная ] )

AVE Вычисляет среднее значение (арифметическое среднее) USE-переменных печатаемых элементов типа STRING.

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

Атрибут AVE (PROP:AVE) устанавливает вывод на печать среднего (арифметического) значения USE-переменной поля STRING. Если атрибут TALLY не указан, то подсчет ведется следующим образом:

Значение среднего обнуляется только тогда, когда вместе с AVE для поля STRING указан один из атрибутов RESET или PAGE. Как правило, такое STRING-поле располагают в FOOTER для раздела или для страницы.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Average:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(Pre:F1),AVE(LocalVar),RESET(Break2)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Grand Average:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(LocalVar),AVE,TALLY(?BreakTwo)

END

END

END

 

BEVEL (установить эффект объемности границ объекта)

BEVEL( внешний [,внутренний] [,стиль] )

BEVEL Установить 3D-эффект объемности границ объекта.

внешний Целочисленная константа или константное выражение, задающая ширину внешней кромки границы (PROP:BevelOuter, эквивалента {PROP:Bevel,1}). Если эта величина отрицательна, то внешняя кромка выглядит вдавленной; если положительна, то - выпуклой.

внутренний Целочисленная константа или константное выражение, задающая ширину внутренней кромки границы (PROP:BevelInner, эквивалентно {PROP:Bevel,2}). Если эта величина отрицательна, то внешняя кромка выглядит вдавленной; если положительна, то - выпуклой. Если этот параметр опущен, то внутренней кромки границы нет вообще.

стиль Целочисленная константа или константное выражение, задающее четкую кромку границы, не учитывающую знаки параметров внешний и внутренний (PROP:BevelStyle, эквивалентно {PROP:Bevel,3}).

Атрибут BEVEL (PROP:BEVEL) объектов PANEL, OPTION, GROUP и REGION задает 3D-эффект объемности границ объектов. Знаки параметров внешний и внутренний определяют выглядит ли объект выпуклым или вдавленным. Параметр стиль позволяет сделать четкую границу объекта. Он представляет собой битовую карту, в которой биты означают:

Биты: 15 - 12 | 11 - 08 | 07 - 04 | 03 - 00

Край: левый | верхний | правый | нижний

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

Binary: 00b | 01b | 10b | 11b

Result: нет ребра | выпуклое |вдавленное | серое

Сочетание этих комбинаций в тетрады дает одно ребро границы:

0110b = внутренняя часть выпуклая, внешняя вдавленная

1001b = внутренняя часть вдавленная, внешняя выпуклая

Пример:

Win1 WINDOW,AT(0,0,160,400)

PANEL,AT(25,15,50,50),USE(?Panel1),BEVEL(5,-5) ! Выпуклая внешняя часть,

!вдавленная внутренняя

PANEL,AT(0,0,,),USE(?Panel2),FULL,BEVEL(2,2,1111010110101001b)

!слева - все серое

!верхняя граница = внутри выпуклая, извне выпуклая

!справа= внутри вдавленная, извне вдавленная

!снизу= внутри вдавленная, извне выпуклая

REGION,AT(0,80,5,),USE(?ResizeBar),FULL,IMM,BEVEL(2,2,0101000010100000b)

! вертикальная шкала изменения размеров

END

 

BOXED (установить рамку вокруг группы экранных объектов)

BOXED

Атрибут BOXED (PROP:BOXED) задает одинарную рамку вокруг поля TEXT или объектов в структуре GROUP или OPTIONS. В разрыве верхней части рамки выводится значение параметра текст. Если атрибут BOXED опущен, то значение параметра текст на экран или печать не выводится.

 

CAP, UPR (установить регистр букв)

CAP

UPR

Атрибуты CAP и UPR задают автоматическое изменение регистра букв текста, вводимого в поля типа ENTRY или TEXT в окне с атрибутом MASK или выводимый на печать текст в поле TEXT. Атрибут UPR (PROP:UPR) указывает, что все буквы прописные.

Атрибут CAP (PROP:CAP) указывает, что данные по Типу Имен Собственных, т. е. первая буква в каждом слове прописная, а остальные строчные. Пользователь может изменить такой режим ввода, нажав клавишу SHIFT, позволяющую ввести прописные буквы в середине слова (позволяя ввести имя типа “McDowell”,) или нажав клавишу SHIFT при включенном режиме Caps-Lock включить режим строчных букв для первой буквы (чтобы ввести имя подобное “von Richtofen”).

 

CENTER (центрировать позицию окна)

CENTER

Атрибут CENTER (PROP:Center) показывает, что позиция окна по умолчанию центрируется. Окно с атрибутом MDI центрируется относительно окна APPLICATION. Окно APPLICATION центрируется относительно растра экрана монитора. Окно без атрибута MDI центрируется относительно породившего его окна (окно на котором находился фокус в момент раскрытия не MDI-окна).

Этот атрибут не имеет значения, если не опущен хотя бы один параметр атрибута AT. Это означает, что атрибут CENTER обеспечивает значения по умолчанию для опущенных параметров атрибута AT.

Для систем, имеющих несколько мониторов: Дочерние и Собственные Окна с атрибутом CENTER (или PROP:CENTER = TRUE) центрируются в клиентской зоне их Родительского/Собственного окна. Другие окна с атрибутом CENTER центрируются в мониторе где в том же потоке отображается больше частей окон, если других окон в этом же потоке нет, окно отображается в первичном мониторе.

Пример:

WinOne WINDOW,AT(,,380,200),MDI,CENTER ! Окно центрируется относительно окна APPLICATION

END

WinTwo WINDOW,AT(,,380,200),CENTER ! Окно центрируется относительно породившего его

END

 

CENTERED (установить подложку окна по центру)

CENTERED

Атрибут CENTERED (PROP:CENTERED) обозначает, что изображение подложки окна отображается собственным размером, заданным по умолчанию и располагается по центру клиентской области окна:

Пример:

MDIChild WINDOW('Child One'),MDI,SYSTEM,MAX

MENUBAR

MENU('Edit'),USE(?EditMenu)

ITEM('Undo'),USE(?UndoText),KEY(CtrlZ),STD(STD:Undo)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut)

ITEM('Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy)

ITEM('Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste)

END

END

TOOLBAR,USE(?Toolbar),WALLPAPER('MyWall.GIF'),CENTERED

BUTTON('Cut'),USE(?CutButton),ICON(ICON:Cut),STD(STD:Cut),FLAT

BUTTON('Copy'),USE(?CopyButton),ICON(ICON:Copy),STD(STD:Copy),FLAT

BUTTON('Paste'),USE(?PasteButton),ICON(ICON:Paste),STD(STD:Paste),FLAT

END

END

WinOne WINDOW,AT(,,380,200),MDI,WALLPAPER('MyWall.GIF'),CENTERED

END

WinOne WINDOW,AT(,,380,200),MDI

IMAGE('MyWall.GIF'),AT(0,0,380,200),CENTERED

END

Смотри также: WALLPAPER, TILED

 

CHECK (объявить переключатель)

CHECK

Атрибут CHECK (PROP:Check ) объявляет, что пункт меню может иметь или значение “включен” или “выключен”. Когда пункт меню включен, слева от него выводится отметка о включении, а в USE-переменную заносится единица. Когда пункт выключен, отметка о включении слева от него не выводится , а в USE-переменную заносится ноль.

 

CLIP (установить усечение OLE-объекта)

CLIP

Атрибут CLIP (PROP:CLIP, только для записи) указывает, что для внедряемого объекта высвечивается только та его часть, которая помещается рамки, определенные атрибутом AT экранного объекта-контейнера. Если внедряемый объект больше чем определенное для него экранное поле OLE, то отображается только его верхний левый угол.

 

CNT (установить подсчет итога)

CNT( [ переменная ] )

CNT Подсчитывает, сколько раз напечатана структура DETAIL.

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

Атрибут CNT (PROP:CNT) устанавливает автоматический подсчет напечатанных структур DETAIL. Если атрибут TALLY не указан, то подсчет ведется следующим образом:

CNT обнуляется только тогда, когда вместе с CNT указан один из атрибутов RESET или PAGE.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Count:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(Pre:F1),CNT(LocalVar),RESET(Break2)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Grand Count:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(LocalVar),CNT,TALLY(?BreakTwo)

END

END

 

COLOR (установить цвет)

COLOR( цвет [, выбранный передний ] [, выбранный фон ] )

COLOR Указать цвет отображаемый на экране или печатаемый в отчете (PROP:Color).

цвет Указывает цвет подложки (PROP:Background или PROP:FillColor, эквивалентно {PROP:Color,1}). Передний цвет указывается в атрибуте FONT. (Смотри также PROP:Fill).

выбранный передний

Этот параметр задает используемый по умолчанию цвет переднего плана для текста объекта, на который может переключаться фокус ввода (PROP:SelectedColor, эквивалентно {PROP:Color,2}). Не допустим в отчетах.

выбранный фон Этот параметр задает используемый по умолчанию цвет фона для текста объекта, на который может переключаться фокус ввода (PROP:SelectedFillColor, эквивалентно {PROP:Color,3}). Не допустим в отчетах.

Атрибут COLOR (PROP:COLOR) задает цвет фона и используемые по умолчанию цвет переднего плана и фона.

Значение цвета содержится в целочисленной константе типа LONG или метке соответствия, задающая константу, содержащая в трех младших байтах красную, зеленую и синюю компоненты, составляющие цвет (байты 0,1 и 2: красный=000000FFh, зеленый = 0000FF00h и синий = 00FF0000h); или в метке соответствия для стандартного в Windows значения цвета (все значения которого отрицательные). Операторы EQUATE для стандартных в Windows цветов, содержатся в файле EQUATES.CLW. Каждое из этих свойств возвращает COLOR:None, если соответствующий параметр отсутствует.

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

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

Атрибут COLOR задает цвет фона в окне и используемые по умолчанию цвет переднего плана и фона для всех объектов в структуре TOOLBAR или WINDOW, которые не имеют атрибута COLOR.

Использование в управляющих объектах окна

Атрибут COLOR задает цвет высвечивания объекта типа LINE. Для объектов типа BOX, ELLIPSE и REGION параметр цвет указывает цвет рамки. Для всех других экранных объектов параметр цвет задает цвет фона объекта перебивающий стандартную цветовую гамму Windows для объектов такого типа.

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

Использование в отчетах

В отчетах атрибут COLOR указывает цвет печатаемого фона отчета и цвет фона по умолчанию для всех структур DETAIL, HEADER, FOOTER или FORM без собственного атрибута COLOR.

Атрибут COLOR указывает цвет печатаемого фона DETAIL, HEADER, FOOTER или FORM в котором он указан и устанавливает цвет фона по умолчанию для всех объектов в этих структурах без собственного атрибута COLOR.

Атрибут COLOR (PROP:COLOR) устанавливает цвет элемента LINE при выводе на печать. Для BOX или ELLIPSE указанный цвет определяет цвет рамки. Для других элементов он устанавливает цвет фона.

Пример:

WinOne WINDOW,AT(0,0,160,400),COLOR(00FF0000h,0000FF00h,000000FFh)

! Синий фон, зеленый передний план для активизируемых полей, и красный фон для них TOOLBAR,COLOR(00FF0000h,0000FF00h,000000FFh)

! Синий фон, зеленый передний план для активизируемых полей, и красный фон для них

BOX,AT(20,20,20,20),COLOR(COLOR:ACTIVEBORDER) ! Стандартный в Windows цвет

!рамки активного окна

END

BOX,AT(100,100,20,20),COLOR(00FF0000h) !Синий

BOX,AT(140,140,20,20),COLOR(0000FF00h) !Зеленый

BOX,AT(180,180,20,20),COLOR(000000FFh) !Красный

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS,COLOR(00FF0000h) !Синий фон

CustDetail DETAIL,AT(0,0,6500,1000)

ELLIPSE,AT(60,60,200,200),COLOR(COLOR:ACTIVEBORDER) !Метка соответствия цвета

BOX,AT(360,60,200,200),COLOR(00FF0000h) !Ярко красный

END

END

RptOne REPORT,AT(0,0,160,400),COLOR(00FF0000h) !По умолчанию синий фон

HEADER,COLOR(0000FF00h) !Фон заголовка страницы зеленого цвета

!элементы структуры

END

CustD1 DETAIL !Использует цвет фона по умолчанию

! элементы структуры

END

FOOTER,COLOR(000000FFh) !Фон нижнего колонтитула страницы красного цвета

! элементы структуры

END

END

Смотри также: FONT, FILL

COLUMN (установить полосу-курсор в окне списка)

COLUMN

Атрибут COLUMN (PROP:COLUMN) задает размеры выделенной полосы-курсора в окне списка или комбинированном окне списка с несколькими столбцами выводимых данных. PROP:Column возвращает ноль (0) если выключен, в противном случае возвращает номер текущего выделенного столбца.

COMPATIBILITY(установить режим совместимости объекта OLE)

COMPATIBILITY( режим )

COMPATIBILITY Задает установки совместимости для OLE-объекта.

режим Целочисленная константа для значения установки.

Атрибут COMPATIBILITY (PROP:COMPATIBILITY, только для записи) задает режим совместимости для отдельных OLE и .OCX объектов, для которых это требуется. В общем случае режим следует устанавливать в ноль (0), однако некоторые OLE-объекты (такие как графический редактор Windows) не работают, если режим не установлен в единицу (1).

Пример:

WinOne WINDOW,AT(0,0,200,200)

OLE,AT(10,10,160,100),USE(?OLEObject),CREATE('Excel.Sheet.5'),COMPATIBILITY(0)

END

END

 

CREATE (создать объект элемента управления OLE)

CREATE( сервер [, объект ] )

CREATE Задает создание нового объекта для OLE.

сервер Строковая константа, содержащая имя программы-сервера OLE, под каким он зарегистрирован в операционной системе.

объект Строковая константа, содержащая имя специального файла (OLE Compound Storage file) и объекта в этом файле, который должен быть открыт.

Атрибут CREATE (PROP:CREATE, только для записи) в данном поле OLE создается новый объект OLE или .OCX. Значение параметра сервер представляет собой имя объекта в том виде как объект регистрируется в операционной системе (в Windows 95 эта информация доступна с помощью программы REGEDIT.EXE в разделе HKEY_CLASSES_ROOT, или в программе Microsoft System Information, поставляющейся вместе с Microsoft Office -MSINFO32.EXE).

Когда указан параметр объект, CREATE работает просто как атрибут OPEN, открывая сохраненный в специальном файле (OLE Compound Storage) (и игнорируя параметр сервер) объект для поля OLE. При открытии объекта загружается сохраненный вариант значений свойств контейнера, поэтому при открытии объекта не нужно указывать значения свойств. Синтаксис параметра объект должен иметь следующий вид: ИмяФайла\!ИмяОбъекта.

Принятые соглашения при работе с OLE-объектами

Существует несколько потенциальных проблем, когда вы создаете объект OLE в окне в одном исполняемом процессе и пытаетесь работать с ним из другого исполняемого процесса. Дело в том, что операционная система Windows может загрузить дополнительные DLL в память процесса при создании объекта OLE. Это создает несколько потенциальных проблем:

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

Пример:

WinOne WINDOW,AT(0,0,200,200)

OLE,AT(10,10,160,100),USE(?OLEObject),CREATE('Excel.Sheet.5')

END

END

 

CURSOR (установить форму курсора мыши)

CURSOR(файл)

CURSOR Задает форму курсора мыши для отображения.

файл Строковая константа, содержащая имя файла .CUR, или мнемоническое имя стандартной для Windows формы курсора мыши. Файл .CUR включается в исполняемый модуль в качестве ресурса.

Атрибут CURSOR (PROP:CURSOR) задает форму курсора мыши в то время, когда тот находится в пределах APPLICATION, WINDOW, TOOLBAR или объекта. И эта форма курсора по умолчанию сохраняется и для всех управляющих полей в APPLICATION, WINDOW или TOOLBAR, если для них явно не указана другая форма.

В файле EQUATES.CLW содержатся операторы EQUATE для стандартных в Windows форм курсора мыши. В приведенном ниже списке находятся только некоторые распространенные курсоры (полный список см. в EQUATES.CLW):

CURSQR:None Нет курсора

CURSOR:Arrow Обычный курсор в виде стрелки

CURSOR:IBeam Курсор в виде заглавной буквы I похожий на двутавр

CURSOR:Wait Песочные часы

CURSOR:Cross Курсор в виде большого символа плюс

CURSOR:UpArrow Курсор в виде стрелки направленной вверх

CURSOR:Size Курсор в виде четырех стрелок, направленных в разные стороны.

CURSOR:Icon Пиктограмма в рамке

CURSOR:SizeNWSE Стрелки в направлении северо-запад - юго-восток

CURSOR:SizeNESW Стрелки в направлении северо-восток - юго-запад

CURSOR:SizeWE Стрелки в направлении запад - восток

CURSOR:SizeNS Стрелки в направлении север - юг

CURSOR:DragWE Стрелки в направлении запад – восток

Пример:

!окно с курсором custom

WinTwo WINDOW,CURSOR('CUSTOM.CUR')

TOOLBAR,CURSOR('CURSOR:Cross') ! Панель с курсором мыши в виде большого символа плюс

BUTTON('Cut'),USE(?CutButton),STD(STD:Cut)

BUTTON('Copy'),USE(?CopyButton),STD(STD:Copy)

BUTTON('Paste'),USE(?PasteButton),STD(STD:Paste)

END

REGION,AT(20,20,20,20),CURSOR(CURSOR:IBeam) !Область с курсором I-beam

REGION,AT(100,100,20,20)

END

 

DEFAULT (установить экранную кнопку для клавиши ENTER)

DEFAULT

Атрибут DEFAULT (PROP:DEFAULT) указывает экранную кнопку типа BUTTON, которая автоматически нажимается, когда пользователь нажимает клавишу ENTER. Этот атрибут должна иметь только одна активная кнопка BUTTON.

 

DELAY (установка задержки повтора действия клавиши)

DELAY( продолжительность )

DELAY Указывает задержку (паузу) между первой и второй генерацией события.

продолжительность Целочисленная константа, содержащая значение задержки (время) в сотых долях секунды.

Атрибут DELAY (PROP:DELAY) задает задержку между первой и второй генерацией для автоматически повторяющихся кнопок. Для поля BUTTON с атрибутом IMM это время между первым и вторым EVENT:Accepted. Для поля SPIN это время между первым и вторым EVENT:NewSelection, порожденным spin-кнопками.

Назначение атрибута DELAY - изменять значение времени задержки заданное по умолчанию, так что пользователи не могут неосмотрительно начать повторение действия, когда это не является их целью. Присвоение атрибуту PROP:DELAY значения ноль устанавливает значение по умолчанию, любое другое – устанавливает задержку повтора для объекта.

Пример:

MDIChild WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL

BUTTON('Press Me'),AT(10,10,40,20),USE(?PressMe),IMM,DELAY(100) !1 секунда

SPIN(@n3),AT(60,10,40,10),USE(SpinVar),RANGE(0,999),DELAY(100) !1 секунда

END

CODE

OPEN(MDIChild)

?PressMe{PROP:Delay} = 5 0 !переустанавливает задержку в 1/2 секунды

?SpinVar{PROP:Delay} = 5 0 ! переустанавливает задержку в 1/2 секунды

?PressMe{PROP:Repeat} = 5 !устанавливает повторение в 5 сотых секунды

?SpinVar{PROP:Repeat} = 5 ! устанавливает повторение в 5 сотых секунды

Смотри также: IMM, REPEAT

 

DISABLE (при открытии окна элемент управления не действует)

DISABLE

Атрибут DISABLE (PROP:DISABLE) указывает, что при открытии окна WINDOW или APPLICATION данный элемент управления не работает и выглядит затушеванным. Такой элемент можно активизировать оператором ENABLE. PROP:DISABLE возвращает (1), если объект затушеван и (0) в противном случае.

Смотри также: DISABLE(затушевать объект)

DOCK (установить, что TOOLBOX может прижиматься к краю окна)

DOCK( позиции )

DOCK Указывает, что TOOLBOX прижимается к краю окна.

позиции Битовая карта указывающая доступные края прижатия.

Атрибут DOCK (PROP:DOCK) указывает, что WINDOW с атрибутом TOOLBOX может прижиматься к краю окна приложения. Следующие мнемонические метки для стандартных значений параметра позиции содержатся в EQUATES.CLW:

DOCK:Left EQUATE(1)

DOCK:Top EQUATE(2)

DOCK:Right EQUATE(4)

DOCK:Bottom EQUATE(8)

DOCK:Float EQUATE(16)

DOCK:All EQUATE(31)

Пример:

Win1 WINDOW('Tools'),TOOLBOX,DOCK(DOCK:Left+DOCK:Right)

!Прижимается только к левому или правому краю

BUTTON('Date'),USE(?Button1)

BUTTON('Time'),USE(?Button2)

END

Смотри также: DOCKED, TOOLBOX

 

DOCKED (указывает положение прижатия TOOLBOX при открытии окна)

DOCKED( позиция )

DOCKED Указывает, что TOOLBOX прижимается к краю при открытии окна.

позиция Битовая карта указывающая край прижатия.

Атрибут DOCKED (PROP:DOCKED) указывает, что WINDOW с атрибутом DOCK прижимается к краю при открытии окна. Следующие мнемонические метки для стандартных значений параметра позиции содержатся в EQUATES.CLW:

DOCK:Left EQUATE(1)

DOCK:Top EQUATE(2)

DOCK:Right EQUATE(4)

DOCK:Bottom EQUATE(8)

DOCK:Float EQUATE(16)

DOCK:All EQUATE(31)

Пример:

Win1 WINDOW('Tools'),TOOLBOX,DOCK(DOCK:All),DOCKED(DOCK:Top) !Прижато везде

BUTTON('Date'),USE(?Button1) !Прижато к верху при открытии

BUTTON('Time'),USE(?Button2)

END

Смотри также: DOCK, TOOLBOX

 

DOCUMENT (создать объект из файла для элемента OLE)

DOCUMENT(имя файла )

DOCUMENT Задает создание из файла данных, характерного для прикладной программы сервера, объекта для элемента OLE.

имя файла Строковая константа, содержащая имя файла.

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

Пример:

WinOne WINDOW,AT(0,0,200,200)

OLE,AT(10,10,160,100),USE(?OLEObject),DOCUMENT('Book1.XLS') !Таблица Excel

MENUBAR

MENU('&Clarion App')

ITEM('&Deactivate Object'),USE(?DeactOLE)

END

END

END

END

 

DOUBLE, NOFRAME, RESIZE (установить для окна тип рамки)

DOUBLE

NOFRAME

RESIZE

Атрибуты DOUBLE, NOFRAME и RESIZE задают тип рамки для WINDOW или APPLICATION, отличной от используемой по умолчанию рамки одинарной толщины. Атрибут DOUBLE (PROP:Double) задает вокруг окна рамку двойной толщины, а NOFRAME (PROP:NoFrame) указывает, что у окна нет рамки. Окно с такими рамками не может изменять размеры.

Атрибут RESIZE (PROP:Resize) задает вокруг окна толстую рамку. Это единственный тип рамки, при котором пользователь может динамически изменять размеры окна. Для окна, имеющего атрибут MODAL, атрибут RESIZE игнорируется.

Тип рамки RESIZE обычно используется в структурах APPLICATION и WINDOW как документальные окна, а не диалоговые. NOFRAME обычно применяется в “скрытых” окнах активируемые в циклах ACCEPT. DOUBLE – обычный тип диалоговых окон.

Пример:

! Окно с рамкой одинарной толщины:

Win1 WINDOW

END

! Окно изменяемых размеров:

Win2 WINDOW,RESIZE

END

! Окно с рамкой двойной толщины:

Win3 WINDOW,DOUBLE

END

! Окно без рамки:

Win4 WINDOW,NOFRAME

END

 

DRAGID (установить идентификатор источника )

DRAGID( идентификатор [, идентификатор] )

DRAGID Указывает, что поле типа LIST или REGION может служить в качестве источника данных для операции “потащить и отпустить”.

идентификатор Строковая константа, содержащая идентификатор, используемый для того чтобы обозначить объекты, которые могут служить приемниками данных от данного объекта. Любые идентификаторы, которые начинаются символом тильда (~) показывают, что данные также можно “перетащить” во внешнюю программу (на Clarion). Один атрибут DRAGID может содержать до 16-ти идентификаторов.

Атрибут DRAGID (PROP:DRAGID, массив) указывает, что поле типа LIST или REGION может служить в качестве источника данных для операции “потащить и отпустить”. Этот атрибут работает совместно с атрибутом DROPID другого объекта. Строки идентификаторов DRAGID (до 16-ти) определяют допустимые ключи, которые должны соответствовать параметрам идентификатор атрибута DROPID экранных полей - приемников данных в операции переноса. Тем самым обеспечивается идентификация объектов, в которые допускаются операции переноса данных.

Операция “потащить и отпустить” происходит, когда пользователь перетаскивает информацию из поля с атрибутом DRAGID в поле с атрибутом DROPID. Для того, чтобы операция была успешной, оба поля должны иметь по крайней мере одну одинаковую строку идентификатора в соответствующих атрибутах DRAGID и DROPID.

Пример:

WinOne WINDOW,AT(0,0,160,400)

! Допустимо брать данные, но не отпускать здесь:

LIST,AT(120,0,20,20),USE(?List1),FROM(Que1),DRAGID('FromList1')

! Допустимо переносить сюда из List1, но отсюда нельзя

LIST,AT(120,120,20,20),USE(?List2),FROM(Que2),DROPID('FromList1')

END

CODE

OPEN(WinOne)

!Идентификаторы можно назначить во время работы программы

?List2{PROP:DropID,1) = 'FromList1'

?List1{PROP:DragID,1) = 'FromList1'

!***********************************************

ACCEPT

CASE EVENT()

OF EVENT:Drag ! Если происходит попытка переноса данных

IF DRAGID() ! проверить допустимость переноса отсюда

SETDROPID(Que1) ! и взять данные для переноса

END

OF EVENT:Drop ! Когда событие отпускания успешное

Que2 = DROPID() ! взять переносимые данные

ADD(Que2) ! и добавить их в очередь

END

END

Смотри также: DROPID

 

DROP (установить поведение окна списка)

DROP( число [, ширина ] )

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

число Целочисленная константа, которая задает число высвечиваемых элементов списка.

ширина Целочисленная константа, которая задает ширину выпадающего списка в условных единицах (PROP:DropWidth эквивалентно {PROP:DROP,2}).

Атрибут DROP (PROP:DROP) указывает, что список появляется, только когда пользователь нажимает клавишу стрелки или щелкает мышью на пиктограмме раскрытия списка справа от текущего выбранного элемента списка. Как только список раскрывается, в нем выводится заданное параметром число количество элементов списка. Если атрибут DROP опущен, то в окне списка или комбинированном окне списка, всегда отображается число элементов, определяемое параметром высота атрибута AT окна списка.

Для объектов в окне с атрибутом MODAL атрибут DROP не работает и не должен использоваться.

Для того, чтобы переопределить используемую по умолчанию для раскрытия списка пиктограмму “стрелка вниз”, можно присвоить свойству PROP:Icon имя другой пиктограммы.

Пример:

WinOne WINDOW,AT(0,0,160,400)

LIST,AT(120,0,20,20),USE(?L7),FROM(Que1),DROP(6)

COMBO(@S8),AT(120,120,20,20),USE(?C7),FROM(Que2),DROP(8)

END

CODE

OPEN(WinOne)

?C7{PROP:Icon} = 'MyDrop.ICO' !Изменить иконку выпадающего списка объекта COMBO

 

DROPID (установить идентификатор поля-приемника данных)

DROPID( идентификатор [, идентификатор] )

DROPID Указывает, что объект может служить в качестве приемника данных в операции “потащить и отпустить”.

идентификатор Строковая константа, содержащая идентификатор, используемый для того чтобы обозначить объекты, которые могут служить источниками данных для данного объекта. Один атрибут DROPID может содержать до 16-ти идентификаторов. Любые идентификаторы, которые начинаются символом тильда (~) показывают, что данные также можно “перетащить” из внешней программы (на Clarion). Идентификатор ‘~FILE’ показывает, что объект-приемник воспринимает разделенный запятыми список имен файлов перенесенный из окна File Manager Windows.

Атрибут DROPID (PROP:DROPID) указывает, что поле может служить в качестве приемника данных в операции “потащить и отпустить”. Этот атрибут работает совместно с атрибутом DRAGID другого объекта. Строки идентификаторов DROPID (до 16-ти) определяют допустимые ключи, которые должны соответствовать параметрам идентификатор атрибута DRAGID экранных полей - источников операции переноса. Тем самым обеспечивается идентификация объектов, из которых допускаются операции переноса данных.

Операция “потащить и отпустить” происходит, когда пользователь перетаскивает информацию из поля с атрибутом DRAGID в поле с атрибутом DROPID. Для того, чтобы операция была успешной, оба поля должны иметь по крайней мере одну одинаковую строку идентификатора в соответствующих атрибутах DRAGID и DROPID.

Пример:

WinOne WINDOW,AT(0,0,160,400)

! Допустимо брать данные, но не отпускать здесь:

LIST,AT(120,0,20,20),USE(?List1),FROM(Que1),DRAGID('FromList1')

! Допустимо переносить сюда из List1 и Windows File Manager , но отсюда нельзя:

LIST,AT(120,120,20,20),USE(?List2),FROM(Que2),DROPID('FromList1','~FILE')

END

CODE

OPEN(WinOne)

! Идентификаторы можно назначить во время работы программы

?List2{PROP:DropID,1) = 'FromList1'

?List1{PROP:DragID,1) = 'FromList1'

!***********************************************

ACCEPT

CASE EVENT()

OF EVENT:Drag ! Если происходит попытка переноса данных

IF DRAGID() ! проверить допустимость переноса отсюда

SETDROPID(Que1) ! и взять данные для переноса

END

OF EVENT:Drop ! Когда событие отпускания успешное

Que2 = DROPID() ! взять переносимые данные

ADD(Que2) ! и добавить их в очередь

END

END

Смотри также: DRAGID

 

EXTEND (установить форматирование документа)

EXTEND( [список атрибутов [,список атрибутов...]] )

EXTEND Определяет атрибуты необходимые для конкретного типа документа.

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

тип Строковая константа которая указывает какой выходной формат получает список атрибутов

атрибут Строковая константа включающая допустимое форматирование необходимое для данного типа документа.

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

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

[type](attribute [|attribute...])

На текущий момент допустимые значения для параметра тип - HTML, XML, TXT, PDF или ALL. Атрибут EXTEND (PROP:EXTEND) определяет допустимую строку атрибутов, которые предназначены для определенного объекта отчета, чтобы передать тип документа.

Содержимое параметра атрибут зависит от цели предназначения. Если необходимо вписать в атрибут вертикальную черту ( | ) или круглые скобки (")" ), то атрибут необходимо заключить в одиночные кавычки (' ').

Примеры:

ALL(HIDE=1|HW=412|HH=172),PDF(SKIP=3),TXT(SKIP=3),HTML(SKIP=3),XML(TagType=1

|Tag Name=Header)

ALL(HIDE=1|HW=412|HH=172),PDF(SKIP=3),TXT(SKIP=3),HTML(SKIP=3)

XML(TagType=1|TagParentName=Header|TagName=Street|ValueFromText=1)

ALL(HIDE=1|HW=302|HH=172),PDF(SKIP=33),TXT(SKIP=33),HTML(SKIP=33),XML(TagPro

cess Once=33|TagType=1|NameFromText=1|TagValue=)

XML(TagType=1|TagName=Street|ValueFromText=1|TagParentName= Ship to )

ALL(HIDE=1|HW=238|HH=172),PDF(SKIP=34),TXT(SKIP=34),HTML(SKIP=34),XML(TagTyp

e=1|NameFromText=1|TagValue=|TagParentName=Lines)

FILL (установить цвет внутренней части)

FILL(кзс)

FILL Задает цвет внутренней части объекта BOX или ELLIPSE.

кзс Целочисленная константа типа LONG или ULONG или мнемоническое имя константы такого типа, содержащая в трех младших байтах (байты 0, 1 и 2) величины красной, зеленой и cиней компонент, из которых состоит цвет экранного объекта или мнемоническое имя стандартного для среды Windows цвета.

Атрибут FILL (PROP:FILL) указывает цвет внутренней части полей BOX или ELLIPSE. Если этот атрибут опущен, то внутренняя часть этих полей не заполняется цветом. Если атрибут FILL отсутствует, то PROP:FILL возвращает COLOR:None.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

CustDetail DETAIL,AT(0,0,6500,1000)

ELLIPSE,AT(60,60,200,200),FILL(COLOR:ACTIVEBORDER) !Мнемоническое имя цвета

BOX,AT(360,60,200,200),FILL(00FF0000h) !Ярко красный

END

END

WinOne WINDOW,AT(0,0,160,400)

! Цвет рамки активного окна Windows

BOX,AT(20,20,20,20),FILL(COLOR:ACTIVEBORDER)

BOX,AT(100,100,20,20),FILL(00FF0000h) !Синий

BOX,AT(140,140,20,20),FILL(0000FF00h) !Зеленый

BOX,AT(180,180,20,20),FILL(000000FFh) !Красный

END

 

FIRST, LAST (установить положение окна-меню или пункта)

FIRST

LAST

Атрибуты FIRST и LAST (PROP:First и PROP:Last) задают положение пункта меню на линейке глобального меню, когда линейка окна объединяется с глобальным меню. Шкала приоритетов:

1. Пункты глобального меню с атрибутом FIRST.

2. Пункты локального меню с атрибутом FIRST.

3. Пункты глобального меню без атрибутов FIRST или LAST.

4. Пункты локального меню без атрибутов FIRST или LAST.

5. Пункты глобального меню с атрибутом LAST.

6. Пункты локального меню с атрибутом LAST.

 

FLAT (установить плоские объекты)

FLAT

Атрибут FLAT (PROP:FLAT) указывает, что кнопки BUTTON, CHECK и RADIO с атрибутом ICON являются плоскими всегда,за исключением тех случаев, когда курсор проходит над ними. Этот атрибут обычно используется для элементов, размещенных в TOOLBAR.

Это свойство работает лучше всего, если атрибут ICON указывает на отображение .GIF файла, чья проекция (отображение) будет серым, когда управление неактивно (курсор мыши находится не точно над элементом).

Атрибут FLAT также поддерживается в объектах LIST, COMBO, ENTRY и SPIN. Эти объекты с этим атрибутом выглядят “плоскими” (без выпуклостей и впадин). Свойство PROP:FLAT – для чтения и записи.

Пример:

WinOne WINDOW,AT(0,0,160,400)

TOOLBAR

CHECK('1'),AT(0,0,20,20),USE(C1),ICON('Check1.GIF'),FLAT

BUTTON,AT(120,0,20,20),USE(?B7),ICON('Button1.GIF')

OPTION('Option 4'),USE(OptVar4)

RADIO('Radio 7'),AT(120,0,20,20),USE(?R7),ICON('Radio1.GIF'),FLAT

RADIO('Radio 8'),AT(140,0,20,20),USE(?R8),ICON('Radio2.GIF'),FLAT

END

END

END

CODE

OPEN(WinOne)

?B7{PROP:FLAT} = TRUE

FONT (установить шрифт по умолчанию)

FONT([начертание] [,размер] [,цвет] [,стиль] [,набор символов ])

FONT Задает шрифт, используемый для TOOLBAR.

начертание Строковая константа, содержащая название шрифта (PROP:FontName, эквивалентно {PROP:Font,1}). Если этот параметр опущен, то системный шрифт.

размер Целочисленная константа, содержащая размер шрифта в пунктах (1 пункт 1/72 дюйма) (PROP:FontSize, эквивалентно {PROP:Font,2}). Если этот параметр опущен, то используется размер системного шрифта, используемого по умолчанию.

цвет Целочисленная константа типа LONG, содержащая в младших трех байтах значения для красной, зеленой и голубой составляющих цвета или мнемоническое имя, задаваемое оператором EQUATE для стандартных в Windows значений, определяющих цвета (PROP:FontColor, эквивалентно {PROP:Font,3}). Если опущен, используется черный цвет.

стиль Целочисленная константа или константное выражение или мнемоническая метка, задающая толщину штриха и стиль букв шрифта (PROP:FontStyle, эквивалентно {PROP:Font,4} ). Если этот параметр опущен, то используется стиль системного шрифта, используемого по умолчанию.

набор символов Числовая константа, постоянное выражение или мнемоническое имя указывающие набор символов для указанного шрифта (PROP:FontCharSet) или (PROP:Font,5). Это обеспечивает поддержку международных наборов символов. Если опущен, используется набор символов шрифта по умолчанию.

Атрибут FONT (PROP:Font) задает шрифт по умолчанию, используемый для полей. Если свойство присвоено встроенной переменной SYSTEM, PROP:FONT устанавливает шрифт для процедуры MESSAGE.

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

Файл EQUATES.CLW содержит операторы EQUATE для стандартных значение параметра стиль. Значения стиля в диапазоне от 0 до 1000 задают яркость штриха шрифта. Это значение можно прибавить к числам означающим курсив, подчеркнутый или перечеркнутый текст. Операторы EQUATE в файле EQUATES.CLW:

FONT:thin EQUATE (100)

FONT:regular EQUATE (400)

FONT:bold EQUATE (700)

FONT:italic EQUATE (01000H)

FONT:underline EQUATE (02000H)

FONT:strikeout EQUATE (04000H)

Параметр набор символов может быть именем любого набора символов зарегистрированного в системе Windows. Что касается отчетов, то набор символов должен поддерживаться драйвером принтера. Файл EQUATES.CLW содержит операторы EQUATE для стандартных значение параметра набор символов. Свойство SYSTEM может использоваться для установки набора символов на системном уровне.

CHARSET:ANSI EQUATE ( 0)

CHARSET:DEFAULT EQUATE ( 1)

CHARSET:SYMBOL EQUATE ( 2)

CHARSET:MAC EQUATE ( 77)

CHARSET:SHIFTJIS EQUATE (128)

CHARSET:HANGEUL EQUATE (129)

CHARSET:JOHAB EQUATE (130)

CHARSET:GB2312 EQUATE (134)

CHARSET:CHINESEBIG5 EQUATE (136)

CHARSET:GREEK EQUATE (161)

CHARSET:TURKISH EQUATE (162)

CHARSET:HEBREW EQUATE (177)

CHARSET:ARABIC EQUATE (178)

CHARSET:BALTIC EQUATE (186)

CHARSET:CYRILLIC EQUATE (204)

CHARSET:THAI EQUATE (222)

CHARSET:EASTEUROPE EQUATE (238)

CHARSET:OEM EQUATE (255)

Использование в окнах

В структурах WINDOW и APPLICATION атрибут FONT задает шрифт по умолчанию для вывода содержимого всех управляющих полей, которые не имеют своего атрибута FONT. Он также является шрифтом по умолчанию для всех создаваемых объектов в окне и шрифтом используемым операторами SHOW и TYPE для вывода данных в окно.

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

ЯЗЫКА

Установка любых динамических свойств (PROP:property) атрибута FONT для окна, приложения или панели инструментов не влияет на существующие поля управления, которые уже отображены, однако воздействуют на те, что вновь созданы после переустановки свойств.

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

Использование в отчетах

Атрибут FONT (PROP:FONT) структуры REPORT устанавливает для всех REPORT-полей шрифт по умолчанию для вывода на печать. Этот шрифт используется когда у поля либо нет собственного атрибута FONT, либо он есть, но уже сама печатаемая структура, в которой расположено это поле, собственного FONT-атрибута не имеет.

Атрибут FONT в структурах FORM, DETAIL, HEADER и FOOTER указывает шрифт по умолчанию для все размещенных в них объектах, не имеющих атрибута FONT.

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

Пример:

LRFont WINDOW('LR FontExample'),AT(,,289,192),|

FONT('Arial',12,COLOR:Maroon,FONT:bold+FONT:italic,CHARSET:ANSI),GRAY

!начертание 14 кегельное Arial, красный, обычный:

LIST,AT(120,0,20,20),USE(?L7),FROM(Que1),FONT('Arial',14,0FFh)

! начертание 14 кегельное Arial, Черный, Жирный:

LIST,AT(120,120,20,20),USE(?C7),FROM(Que2),FONT('Arial',14,0,700)

! начертание 14 кегельное Arial, Черный, Жирный курсив

LIST,AT(120,240,20,20),USE(?C7),FROM(Que2),FONT('Arial',14,0,700+01000h)

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS, |

FONT('Arial',12,,FONT:Bold+FONT:Italic)

!объявления отчета

END

! В окне используется 14-кегельный фонт Times New, жирный, курсив

Win WINDOW,FONT('Times New Roman',14,00H,FONT:italic+FONT:bold)

STRING('This is Times 14 pt Bold Italic'),AT(42,14),USE(?String1)

END

CODE

OPEN(Win)

Win{PROP:FontSize} = 20 !Шрифт по умолчанию для создаваемых объектов

CREATE(100,CREATE:string) !Создать объект

100{PROP:Text} = 'This is 20 point'

SETPOSITION(100,82,24)

UNHIDE(100)

ACCEPT

END

Смотри также: SETFONT, GETFONT, FONTDIALOG, FONTDIALOGA, COLOR, CREATE

 

FORMAT (установить структуру окна LIST или COMBO)

FORMAT(строка формата)

FORMAT Задает структуру данных в окне или отчете LIST или COMBO.

строка формата Строковая константа, задающая формат высвечиваемого списка.

Атрибут FORMAT (PROP:FORMAT) задает структуру данных в окне или отчете объектов LIST или COMBO. Строка формата содержит информацию для форматирования данных. PROP:FORMAT изменяется всякий раз, когда пользователь динамически, во время исполнения программы, изменяет формат LIST или COMBO.

В строке формата содержатся “спецификации полей”, которые устанавливают соответствие полей из выводимой в окне списка очереди. Для того, чтобы выводить несколько полей как единое целое, несколько “спецификаций” могут быть сгруппированы квадратными скобками ([ ]) в “группу полей”.

В списке окна выводятся только те поля из очереди, для которых есть спецификации в строке формата. Это означает, что если два поля указаны в строке формата, а очередь состоит из трех, то в окне списка выводятся только два, указанные в строке формата объектов LIST или COMBO.

Формат “спецификации поля”:

Каждая колонка в списке форматируется с помощью следующих компонентов. Формат каждого конкретного столбца возвращает или устанавливает PROPLIST:Format.

ширина выравнивание [ (отступ) ][ модификаторы ]

ширина Обязательный компонент (PROPLIST:Width). Целое число, задающее ширину поля. Указывается в условных единицах.

выравнивание Одна заглавная буква (L, R, C или D), которая указывает выравнивание влево (PROPLIST:Left), вправо (PROPLIST:Right), центрирование (PROPLIST:CENTER) или выравнивание по десятичной точке (PROPLIST:Decimal). Обязательно должен быть указан один из типов выравнивания.

отступ Необязательно указываемое целое число, заключенное в круглые скобки, которое задает отступ от линии выравнивания. Может быть отрицательным. При выравнивании влево (L) (PROPLIST:LeftOffset) отступ определяет левую границу, при выравнивании вправо (R) (PROPLIST:RightOffset) или на десятичную точку (D) (PROPLIST:DecimalOffset) - правую границу, а при выравнивании по центру (C) (PROPLIST:CenterOffset) определяет смещение относительно середины поля (отрицательное число = смещение влево).

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

Модификаторы:

* Звездочка означает, что информация о цвете (PROPLIST:COLOR) для данного поля содержится в четырех полях типа LONG, идущих в структуре QUEUE (или строке, заданной атрибутом FROM) непосредственно следом за полем данных. Обычно это четыре цвета: цвет переднего плана, цвет фона, цвет переднего плана выбранного поля и цвет фона выбранного поля (в таком порядке). Не допустим для отчетов.

Цвет также может быть установлен используя стили списка (смотри ниже "Y" ).

Y Символ Y (PROPLIST:CellStyle) означает, что заранее определенный стиль для данного поля (колонки) содержится в поле типа LONG, идущего в структуре QUEUE (или строке, заданной атрибутом FROM) непосредственно за полем данных. Поле типа LONG содержит число – индекс элемента в списке стилей, связанном с полем LIST посредством свойства PROPSTYLE:динамичесоке свойство (см. ниже). Не допустим в отчетах.

Z(стиль) Символ Z следующий за 'стилем' (PROPLIST:ColStyle) устанавливает для колонки стиль по умолчанию и может быть установлен свойством PROPLIST:ColStyle. Поля типа LONG может не быть в очереди, но, используя PROPLIST:ColStyle, без этого поля нельзя назначить разные стили отдельным ячейкам в колонке.

I Символ I (PROPLIST:Icon) означает номер пиктограммы в колонке отображаемой слева от колонки (перед данными) для данного поля и содержится в поле типа LONG, идущем в структуре QUEUE (или строке, заданной атрибутом FROM) непосредственно следом за полем данных. Это поле типа LONG содержит число - индекс элемента в списке пиктограмм, связанном со полем LIST свойством PROP:IconList. Если еще задана и звездочка, означающая наличие информации о цвете, то поле - номер пиктограммы должно идти следом за полями несущими информацию о цвете. Не допустим в отчетах. Чтобы только отобразить иконку и не включать поле данных, установите шаблон @P_PB.

J Символ J (PROPLIST:IconTrn) отображает прозрачную иконку отображаемую в колонке. Все что поддерживает символ I справедливо и для J. Не допустим в отчетах.

T [ (подавление) ] Символ T (PROPLIST:Tree) означает окно списка представляет иерархическую структуру. Уровень ветвления содержится в поле типа LONG, которое следует в структуре QUEUE (или строке, заданной атрибутом FROM) непосредственно следом за полем данных. Если также указаны * и I, то уровень ветвления следует за всеми соответствующими им полями типа LONG. Состояние данного уровня ветвления (раскрыто/свернуто) определяется знаком величины, содержащейся в поле типа LONG представляющем уровень ветвления (положительная = раскрыто, а отрицательная = свернуто). Не допустим в отчетах.

Необязательный параметр подавление может содержать 1 (PROPLIST:TreeOffset) для того, чтобы обозначить тот факт, корневой уровень имеет номер 1, а не 0, допускается -1, чтобы обозначить свернутый корневой уровень. Этот параметр может также содержать R (PROPLIST:TreeRoot) , для подавления соединительных линий корневого уровня, символ L (PROPLIST:TreeLines), чтобы указать подавление соединительных линий между уровнями иерархии, символ B (PROPLIST:TreeBoxes), чтобы не выводить квадратик символизирующий расширение, и символ I (PROPLIST:TreeIndent), чтобы подавить отступ для уровней иерархии (что неявно подавляет и квадратики и соединительные линии).

~заголовок~ [выравнивание[(отступ)]] Строка заголовка заключенная в тильды (PROPLIST:Header), за которой следуют необязательные выравнивание (L = PROPLIST:HeaderLeft, R = PROPLIST:HeaderRight, C = PROPLIST:HeaderCenter или D = PROPLIST:HeaderDecimal) и/или отступ, задает вывод заголовка в начале списка, заключенные в круглые скобки (PROPLIST:HeaderLeftOffset, PROPLIST:HeaderRightOffset, PROPLIST:HeaderCenterOffset или PROPLIST:HeaderDecimalOffset). Если не указаны выравнивание и отступ для заголовка, то используются то же самое выравнивание и отступ что и для поля.

@шаблон@ Шаблон форматирования для отображения поля (PROPLIST:Picture). Символ @ в конце необходим для указания конца шаблона, так что шаблон подобный @N12~Kr~ можно использовать не создавая неднозначности в строке формата.

? Знак вопроса определяет локаторное поле (PROPLIST:Locator) в комбинированном окне списка с селекторным полем. Для выпадающего многоколоночного окна списка знак вопроса определяет поле, значение которого выводится в окне выбранного в данный момент значения. Не допустим в отчетах.

#номер# Число заключенное между символами фунта (#) (PROPLIST:FieldNo) показывает номер поля из очереди, которое должно выводиться в окне списка. Следующие поля в строке формата, не имеющие явно заданного #номера# берутся по порядку начиная от предыдущего явно заданного поля. Например, #2# для первого поля в строке формата означает вывод в списке второго поля из очереди, пропуская первое. Если число полей указанных в строке формата больше или равно числу полей в очереди, то формат “зацикливается”, переходя на начало очереди.

_ Знак подчеркивания означает подчеркивание поля (PROPLIST:Underline).

/ Слэш (PROPLIST:LastOnLine) приводит к тому, что следующее поле выводится в новой строке (используется только внутри групп полей).

| Вертикальная черта (PROPLIST:RightBorder) помещает вертикальную линию справа от поля.

M Символ M (PROPLIST:Resize) позволяет во время выполнения динамически изменять размер поля или группы полей. Пользователь может “потащить” вертикальную черту справа (если она есть) или правую границу области данных. Не допустим в отчетах.

F Символ F (PROPLIST:Fixed) создает фиксированную колонку, которая остается на экране при горизонтальном скроллинге (атрибутом HSCROLL). Фиксированные поля и группы должны быть в начале списка. Для поля внутри группы это модификатор игнорируется. Не допустим в отчетах.

S(целое число) Символ S (PROPLIST:Scroll), за которым в скобках указано целое число добавляет к группе линейку скроллинга. Целое число определяет число условных единиц на которые происходит прокрутка. Тем самым становится возможным выводить большие поля в колонке небольшого размера. Для поля внутри группы это модификатор игнорируется. Не допустим в отчетах.

P Модификатор P добавляет “всплывающую” подсказку (PROPLIST:Tip) в группу. Текст “всплывающей” подсказки по умолчанию берется из следующего поля очереди за которым следует поле содержащее актуальные данные колонки. Если означенное поле очереди пустое, модификатор Q (см. ниже) назначает строку как значение по умолчанию для “всплывающей подсказки. Также допустимо использовать с VLB (Virtual List Box). Не допустим в отчетах.

Q (строка) Символ Q определяет строку (PROPLIST:DefaultTip) означающей колонку по умолчанию текст которой отображается в “всплывающей” подсказке, если строка определенная модификатором P пустая. Не допустим в отчетах.

Формат спецификации группы полей:

[несколько спецификаций полей] [(размер)] [модификаторы]

несколько спецификаций полей Список спецификаций полей, заключенный в квадратные скобки ([ ]), которые говорят о том, что эти поля выводятся как единое целое.

размер Необязательное целое число, заключенное в круглые скобки, которое задает ширину группы по умолчанию (PROPLIST:Width). Если опущен, размер рассчитывается исходя из заключенных к скобки полей.

модификаторы Групповые модификаторы, действующие на всю группу полей. Это те же модификаторы, которые перечислены выше (за исключением *, I, T и #номер# которые не применимы к группам). Добавление PROPLIST:Group применительно к полям свойств воздействует на свойства групповых полей. PROPLIST:GroupNo может быть применен для получения номера группы в колонке назначения.

Пример:

?List{PROPLIST:GroupNo,LOC:COL}

Возвращает номер группы колонки в переменную (LOC:COL). Колонка не в группе считается самостоятельной колонкой.

?List{PROPLIST:GroupNo + PROPLIST:Group,LOC:COL}

Возвращает число колонок в группе назначения, 0 – если группа реальная колонка.

Формат отображения полей в очереди

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

1. Поле, содержащее отображаемые данные (всегда).

2. * флаг переднего цвета поля (если * присутствует или установлен PROPLIST:Color).

3. * флаг цвета фона поля (если * присутствует или установлен PROPLIST:Color).

4. * флаг подсвеченного переднего цвета поля (если * присутствует или установлен PROPLIST:Color).

5. * флаг подсвеченного фона цвета поля (если * присутствует или установлен PROPLIST:Color).

6. Флаги I или J поля для иконки (если присутствует I или J, или установлены PROPLIST:Icon или PROPLIST:IconTrn).

7. Флаг T иерархической структуры поля (если присутствует T или установлен PROPLIST:Tree).

8. Флаг Y стиля для поля (если присутствует Y или установлен PROPLIST:CellStyle).

9. Флаг P "всплывающей подсказки" для поля (если присутствует P или установлен PROPLIST:Tip).

FORMAT() динамические свойства

При помощи имен свойств можно также изменить свойства отдельных полей и групп в многоколоночном окне списка или комбинированном окне списка. Каждое из этих свойств связано с одним элементом строки-параметра атрибута FORMAT (PROPLIST:Item). Эти свойства исключают необходимость в создании новой строки форматирования только для того, чтобы изменить одно свойство отдельного поля в окне списка.

Все эти свойства представляют собой массивы, для которых, чтобы явно указать на какое поле окна списка или поля COMBO это свойство влияет, следом за мнемоническим именем свойства нужно явно указать номер элемента массива, отделив его запятой. Все они содержат пустую строку (‘’), если пропущены и единицу (1) – если присутствуют.

Пример:

PROGRAM

MAP

DisplayList PROCEDURE

PrintList PROCEDURE

RandomAlphaData PROCEDURE(*STRING)

END

TreeDemo QUEUE !Очередь списка данных для FROM

FName STRING(20)

ColorNFG LONG(COLOR:White) !Обычный передний цвет для FName

ColorNBG LONG(COLOR:Maroon) !Обычный цвет фон FName

ColorSFG LONG(COLOR:Yellow) !Активный передний цвет для FName

ColorSBG LONG(COLOR:Blue) !Цвет активного цвета для FName

IconField LONG !Номер иконки для FName

TreeLevel LONG !Древовидная структура

LName STRING(20)

Init STRING(4)

END

CODE

DisplayList

PrintList

DisplayList PROCEDURE

Win WINDOW('List Boxes'),AT(0,0,366,181),SYSTEM,DOUBLE

LIST,AT(0,34,366,146),FROM(TreeDemo),USE(?Show),HVSCROLL, |

FORMAT('80L*IT~First Name~*80L~Last Name~16C~Initials~')

END

CODE

LOOP X# = 1 TO 20

RandomAlphaData(TreeDemo.FName)

TreeDemo.IconField = ((X#-1) % 4) + 1 !Присвоить номер иконки

TreeDemo.TreeLevel = ((X#-1) % 4) + 1 !Назначить древовидную структуру

RandomAlphaData(TreeDemo.LName)

RandomAlphaData(TreeDemo.Init)

ADD(TreeDemo)

END

OPEN(Win)

?Show{PROP:iconlist,1} = ICON:VCRback !Icon 1 = <

?Show{PROP:iconlist,2} = ICON:VCRrewind !Icon 2 = <<

?Show{PROP:iconlist,3} = ICON:VCRplay !Icon 3 = >

?Show{PROP:iconlist,4} = ICON:VCRfastforward !Icon 4 = >>

ACCEPT

END

RandomAlphaData PROCEDURE(Field) !MAP Prototype is: RandomAlphaData(*STRING)

CODE

CLEAR(Field)

RandomSize# = RANDOM(1,SIZE(Field)) !Случайный размер

Field[1] = CHR(RANDOM(65,90)) !Начинать со случайной прописной буквы

LOOP Z# = 2 to RandomSize# !Случайный каждый символ со

Field[Z#] = CHR(RANDOM(97,122)) !строчной буквы

END

PrintList PROCEDURE

DemoQ QUEUE

FName STRING(20)

ColorNFG1 LONG

ColorNBG1 LONG

ColorSFG1 LONG(COLOR:Black) !Печатаемый передний цвет для FName

ColorSBG1 LONG(COLOR:White) !Печатаемый фон для FName

LName STRING(20)

ColorNFG2 LONG

ColorNBG2 LONG

ColorSFG2 LONG(COLOR:Black) !Печатаемый передний цвет для LName

ColorSBG2 LONG(COLOR:White) !Печатаемый фон для LName

Init STRING(4)

ColorNFG3 LONG

ColorNBG3 LONG

ColorSFG3 LONG(COLOR:Black) !Печатаемый передний цвет для Init

ColorSBG3 LONG(COLOR:White) !Печатаемый фон для Init

Wage REAL

ColorNFG4 LONG

ColorNBG4 LONG

ColorSFG4 LONG(COLOR:Black) !Печатаемый передний цвет для Wage

ColorSBG4 LONG(COLOR:White) !Печатаемый фон для Wage

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

CustDetail DETAIL,AT(0,0,6500,200)

LIST,AT(0,0,6000,200),FORMAT(''),FROM(DemoQ),USE(?Show)

END

END

CODE

LOOP X# = 1 TO 20

CLEAR(DemoQ)

RandomAlphaData(DemoQ.FName)

RandomAlphaData(DemoQ.LName)

RandomAlphaData(DemoQ.Init)

DemoQ.Wage = RANDOM(100000,1000000)/100

ADD(DemoQ)

END

OPEN(CustRpt)

SETTARGET(CustRpt)

IF RANDOM(0,1)

?Show{PROP:format} = '2000L*~First Name~2000L*~Last Name~500L*~Intls~1000L*~Wage~|'

ELSE

?Show{PROP:format} = '2000L*~First Name~2000L*~Last Name~500L*~Intls~1000D(400)*~Wage~|'

?Show{PROPLIST:Header,1} = 'First Field' !Изменить текст заголовка для первого поля

?Show{PROPLIST:Header + PROPLIST:Group,1} = 'First Group'

END !Изменить текст заголовка первой группы

LOOP X# = 1 TO RECORDS(DemoQ)

GET(DemoQ,X#)

PRINT(CustDetail)

END

CLOSE(CustRpt)

FREE(DemoQ)

FORMAT() свойства стилей

Следующие свойства используются для устанавки множества стилей доступных для колонок с модификатором Y или для использования PROPLIST:ColStyle. Они определяют массив доступных стилей. Присваивая номер элемента массива в поле LONG модификатора Y или PROPLIST:ColStyle устанавливает стиль отображения для индивидуальной ячейки или колонки.

PROPSTYLE:FontName

Множественное свойство которое устанавливает или возвращает имя шрифта для указанного номера стиля как элемента массива.

PROPSTYLE:CharSet

Множественное свойство которое устанавливает или возвращает набор символов шрифта установленного для номера стиля как элемента массива.

PROPSTYLE:FontSize

Множественное свойство которое устанавливает или возвращает размер шрифта для номера стиля как элемента массива.

PROPSTYLE:FontColor

Множественное свойство которое устанавливает или возвращает цвет шрифта для номера стиля как элемента массива.

PROPSTYLE:FontStyle

Множественное свойство которое устанавливает или возвращает шрифт стиля (глубину и т.д.) для номера стиля как элемента массива.

PROPSTYLE:TextColor

Множественное свойство которое устанавливает или возвращает цвет текста для номера стиля как элемента массива.

PROPSTYLE:BackColor

Множественное свойство которое устанавливает или возвращает цвет фона для номера стиля как элемента массива.

PROPSTYLE:TextSelected

Множественное свойство которое устанавливает или возвращает цвет активного текста для номера стиля как элемента массива.

PROPSTYLE:BackSelected

Множественное свойство которое устанавливает или возвращает цвет фона выделенного текста для номера стиля как элемента массива.

PROPSTYLE:Picture

Множественное свойство которое устанавливает или возвращает отображаемый шаблон соответствующий номеру стиля как элементу массива.

Пример:

?list{PROPSTYLE:FontName, 1} = 'Arial' !установить положительное значение стиля

?list{PROPSTYLE:FontSize, 1} = 11

?list{PROPSTYLE:FontStyle, 1} = FONT:Regular

?list{PROPSTYLE:TextColor, 1} = COLOR:Yellow

?list{PROPSTYLE:BackColor, 1} = COLOR:Black

?list{PROPSTYLE:TextSelected, 1} = COLOR:Yellow

?list{PROPSTYLE:BackSelected, 1} = COLOR:Blue

?list{PROPSTYLE:Picture, 1} = '@n11.2'

?list{PROPSTYLE:FontName, 2} = 'Arial' !установить отрицательное значение стиля

?list{PROPSTYLE:FontSize, 2} = 11

?list{PROPSTYLE:FontStyle, 2} = FONT:Bold

?list{PROPSTYLE:TextColor, 2} = COLOR:Red

?list{PROPSTYLE:BackColor, 2} = COLOR:White

?list{PROPSTYLE:TextSelected, 2} = COLOR:Red

?list{PROPSTYLE:BackSelected, 2} = COLOR:Yellow

?list{PROPSTYLE:Picture, 2} = '@n(13.2)'

?list{PROPLIST:ColStyle,1} = 1 !Колонка 1 использует положительный стиль

?list{PROPLIST:ColStyle,2} = 2 !Колонка 2 использует отрицательный стиль

 

FORMAT() другие свойства списка

Следующие свойства не являются частью строки заданной атрибутом FORMAT, но могут быть использованы для динамического изменения вида объектов LIST или COMBO.

PROPLIST:BackColor

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

PROPLIST:BackSelected

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

PROPLIST:Style

PROPLIST:Style это на самом деле более подробное свойство PROPLIST:Group. Это - модификатор номера свойства, которое означает, что свойство применяется не по отношению к колонке, а является стилем, напр.:

?List {PROPLIST:TextColor, number} = SomeColor

устанавливает цвет текста в номер колонки.

?List {PROPLIST:TextColor + PROPLIST:Style, N} = SomeColor

устанавливает цвет текста к номеру стилю N. Если ячейка или колонка использует стиль N , то цвет для них установится в SomeColor.

PROPLIST:TextColor

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

PROPLIST:TextSelected

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

PROPLIST:Exists

Множественное свойство, которое возвращает:

-TRUE или FALSE, если названная колонка имеет номер больше 0. Если существует номер колонки заданной как номер элемента массива PROPLIST:Exist возвращает TRUE (т.е. ?List{PROPLIST:Exists,1} проверяет, существует ли в окне списка колонка с номером 1). Это может быть полезно для обработки настраиваемого окна списка (list box).

- общее количество колонок в списке если названная колонка с нулевым номером.

- общее количество колонок в указанной группе если названа колонка – группа ( т.е. ?List {PROPLIST:Exists + PROPLIST:Group, GroupNumber})

Пример:

WinView WINDOW('View'),AT(,,340,200),SYSTEM,CENTER

LIST,AT(0,0,300,200),USE(?List),FROM(Que),FORMAT('80L~F1~80L~F2~80L~F3~')

END

CODE

OPEN(WinView)

LOOP X# = 1 TO 255

IF ?List{PROPLIST:Exists,X#} = 1 !Если колонка с таким номером существует

?List{PROPLIST:TextColor,X#} = COLOR:Red

?List{PROPLIST:BackColor,X#} = COLOR:White

?List{PROPLIST:TextSelected,X#} = COLOR:Yellow

?List{PROPLIST:TextSelected,X#} = COLOR:Blue

ELSE

BREAK

END

END

 

FORMAT() Свойства, связанные с действиями мышью в окне списка

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

PROPLIST:MouseDownField Возвращает номер поля, на котором стоял курсор в момент нажатия кнопки мыши. Также как список колонок в PROP:COLUMN.

PROPLIST:MouseDownRow Возвращает номер строки, на котором стоял курсор в момент нажатия кнопки мыши.

PROPLIST:MouseDownZone Возвращает номер зоны, на котором стоял курсор в момент нажатия кнопки мыши.

PROPLIST:MouseMoveField При перемещении курсора возвращает номер поля. Также как список колонок в PROP:COLUMN.

PROPLIST:MouseMoveRow При перемещении курсора возвращает номер строки.

PROPLIST:MouseMoveZone При перемещении курсора возвращает номер зоны.

PROPLIST:MouseUpField При отпускании кнопки мыши возвращает номер поля. Также как список колонок в PROP:COLUMN.

PROPLIST:MouseUpRow При отпускании кнопки мыши возвращает номер строки.

PROPLIST:MouseUpZone При отпускании кнопки мыши возвращает номер зоны.

Все три свойства “Row” возвращают ноль (0) для строк заголовка и отрицательную единицу (-1), если курсор стоит ниже последнего выведенного элемента.

В файле EQUATES.CLW находятся мнемонические имена следующих зон:

LISTZONE:Field Поле в окне списка

LISTZONE:Right Зона изменения правой границы объекта

LISTZONE:Header Заголовок поля или группы

LISTZONE:ExpandBox Квадратик раскрытия древовидной структуры

LISTZONE:Tree Линия, соединяющая ветви древовидной структуры

LISTZONE:Icon Пиктограмма (в дереве или где либо еще)

LISTZONE:Nowhere Область отличная от вышеперечисленных

Пример:

Que QUEUE

F1 STRING(50)

F2 STRING(50)

F3 STRING(50)

END

WinView WINDOW('View'),AT(,,340,200),SYSTEM,CENTER

LIST,AT(20,0,300,200),USE(?List),FROM(Que),HVSCROLL, |

FORMAT('80L~F1~80L~F2~80L~F3~'),ALRT(MouseLeft)

END

SaveFormat STRING(20)

SaveColumn BYTE

Columns BYTE,DIM(3)

CODE

OPEN(WinView)

Columns[1] = 1

Columns[2] = 2

Columns[3] = 3

DO BuildListQue

ACCEPT

CASE EVENT()

OF EVENT:PreAlertKey

CYCLE !Позволить стандартные действия при кликание мышью в списке

OF EVENT:AlertKey

IF ?List{PROPLIST:MouseDownRow} = 0 | !перехватить клик мышки в заголовке

AND ?List{PROPLIST:MouseDownZone}<>LISTZONE:Right !но не менять размер зоны

EXECUTE Columns[?List{PROPLIST:MouseDownField}] !Проверить какой заголовок

SORT(Que,Que.F1)

SORT(Que,Que.F2)

SORT(Que,Que.F3)

END

SaveFormat = ?List{PROPLIST:Format,?List{PROPLIST:MouseDownField}}

?List{PROPLIST:Format,?List{PROPLIST:MouseDownField}} = ?List{PROPLIST:Format,1}

?List{PROPLIST:Format,1} = SaveFormat

SaveColumn = Columns[?List{PROPLIST:MouseDownField}]

Columns[?List{PROPLIST:MouseDownField}] = Columns[1]

Columns[1] = SaveColumn

DISPLAY

END

END

END

FREE(Que)

BuildListQue ROUTINE

LOOP Y# = 1 TO 9

Que.F1 = 'Que.F1 - ' & Y#

Que.F2 = 'Que.F2 - ' & RANDOM(10,99)

Que.F3 = 'Que.F3 - ' & RANDOM(100,999)

ADD(Que)

ASSERT(NOT ERRORCODE())

END

FROM (установить источник данных для окна списка)

FROM(источник)

FROM Задает источник данных для окна списка (LIST), печатаемых или отображаемых в окне.

источник Метка структуры QUEUE, поля внутри очереди или строковая константа, содержащая (обычно GROUP) подлежащие выводу элементы данных на экран или печать в списке. Если очередь была создана динамически с помощью NEW, то после закрытия окна необходим оператор DISPOSE.

Атрибут FROM (PROP:FROM, только для записи) задает источник элементов данных, выводимых в окне списка (LIST), комбинированном окне списка (COMBO), вращающемся списке (SPIN) или печатаемых в объекте LIST.

Если в качестве источника указана строковая константа, то отдельные элементы данных в ней должны разделяться символом вертикальной черты (|). Для того , чтобы включить вертикальную черту в элемент данных укажите рядом две вертикальные черты, и только одна будет выводиться. Чтобы указать, что элемент пустой, поместите между двумя разделительными вертикальными чертами хотя бы один пробел (| |). Обычно, содержимое выбранного элемента данных помещается в USE-переменную объекта. Однако, в атрибуте FORM можно задать альтернативное значение, которое следует в строке за символом фунта (#) и должно быть дополнительно отделено вертикальной чертой от предыдущего элемента. Этот метод также применим для отображения специальных символов. Например, для отображения символа # в списке используйте строку как источник для FROM, этого достаточно, если предыдущее значение определено альтернативным значением:

...,FROM(' |!|@|#@|#|$|%|^|&|*')

Использование в окнах

Для вращающегося списка (SPIN) источник обычно будет полем из очереди или строкой. Если источник является очередью с несколькими полями, то в поле SPIN выводятся значения только первого поля.

В комбинированном (COMBO) или простом окне списка (LIST) элементы данных форматируются для

вывода в соответствии со значением атрибута FORMAT. Если в качестве источника указана метка структуры QUEUE, то выводятся все поля из очереди. Если в качестве источника задано имя одного поля из очереди, то только это поле и выводится. Те элементы очереди, которые содержат вертикальную черту, рассматриваются как единое поле списка.

Использование в отчетах

Если в качестве источника указана метка структуры QUEUE, то на печать выводятся все поля QUEUE. Если в качестве источника указана метка поля структуры QUEUE, то на печать выводится только это поле. В поле LIST печатается буфер данных структуры QUEUE, в котором может находиться только текущий элемент структуры. Если в качестве источника указана строковая константа или переменная (все элементы в списке разделены вертикальными чертами), то в LIST печатается вся строка. Выводимые на печать данные в списке (LIST) соответствуют информации заданной в атрибуте FORMAT.

Пример:

TD QUEUE,AUTO

FName STRING(20)

LName STRING(20)

Init STRING(4)

Wage REAL

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

CustDetail DETAIL,AT(0,0,6500,1000)

LIST,AT(0,34,366,146),FORMAT('80L80L16L60L'),FROM(TD),USE(?Show1)

LIST,AT(0,200,100,146),FORMAT('80L'),FROM(Fname),USE(?Show2)

END

END

Que1 QUEUE,PRE(Q1)

F1 LONG

F2 STRING(8)

END

Win1 WINDOW,AT(0,0,160,400)

LIST,AT(120,0,20,20),USE(?L1),FROM(Que1),FORMAT('5C~List~15L~Box~'),COLUMN

COMBO(@S8),AT(120,120,20,20),USE(?C1),FROM(Q1:F2)

SPIN(@N8.2),AT(280,0,20,20),USE(SpinVar1),FROM(Q1:F1)

SPIN(@S4),AT(280,0,20,20),USE(SpinVar2),FROM('Mr.|Mrs.|Ms.|Dr.')

!Присвоить числовое значение SpinVar3:

SPIN(@S4),AT(280,0,20,20),USE(SpinVar3),FROM('Mr.|#1|Mrs.|#2|Ms.|#3|Dr.|#4')

END

 

FULL (установить расширение на весь экран)

FULL

Атрибут FULL (PROP:FULL) указывает, что по любому из опущенных параметров атрибута AT (ширина или высота) объект расширяется таким образом, чтобы занимать всю протяженность окна.

Это атрибут не может указываться для инструментальной панели (TOOLBAR).

 

GRAY (установить фон для объемных полей)

GRAY

Атрибут GRAY (PROP:Gray) означает, что окно имеет серый фон, подходящий для использования с объемными управляющими полями. Все поля в структуре WINDOW, имеющей атрибут GRAY, автоматически имеют трехмерное изображение. На инструментальной панели поля всегда имеют трехмерное изображение, и без атрибута GRAY.

Этот атрибут недопустим в структуре APPLICATION.

Трехмерное изображение полей можно выключить оператором SET3DLOOK.

Пример:

! Окно с объемными полями

Win1 WINDOW,GRAY

END

Смотри также: SET3DLOOK

 

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

GRID(кзс)

GRID Задает цвет разделительных линий сетки в окне-списка.

кзс Целочисленная константа типа LONG или ULONG, или метка соответствия, содержащая в трех младших байтах (байты 0, 1 и 2) значения красного, зеленого и синего компонентов цвета, или метка соответствия стандартного для Windows цвета.

Атрибут GRID (PROPLIST:GRID) задает вывод цветной сетки в списке элемента COMBO или LIST. Операторы EQUATE для обозначения стандартных в Windows цветов содержатся в файле EQUATES.CLW. Windows автоматически подбирает для используемого кзс во время выполнения программы видеорежима цвет, наиболее соответствующий заданной комбинации красного, зеленого и синего.

Пример:

WinOne WINDOW,AT(0,0,400,400)

LIST,AT(0,34,366,146),FROM(TreeDemo),USE(?Show),HVSCROLL,GRID(COLOR:Red)|

FORMAT('80L*IT~First Name~*80L~Last Name~16C~Initials~')

END

 

HIDE (установить, что поле не выводится при раскрытии окна)

HIDE

Атрибут HIDE (PROP:HIDE) задает, что когда окно WINDOW или APPLICATION раскрывается в первый раз, данное поле не прорисовывается. Для того, чтобы отобразить это поле нужно использовать оператор UNHIDE. В отчетах устанавливает, что поле не будет выведено на печать пока не выполнится оператор UNHIDE, снимающий с поля запрет вывода. Может использоваться PROP:HIDE со встроенной переменной TARGET, чтобы скрыть/показать текущее окно.

Смотри также: HIDE

HLP (установить идентификатор диалоговой справки)

HLP(идентификатор справки)

HLP Задает идентификатор интерактивной справки для структур APPLICATION, WINDOW или управляющего поля.

идентификатор справки Строковая константа, указывающая “ключ”, используемый для обращения к системе справки. Это может быть или ключевое слово системы справки, или “контекстная строка”.

Атрибут HLP (PROP:Hlp) задает идентификатор интерактивной справки для структур APPLICATION или WINDOW. Каждый раз, когда пользователь нажимает клавишу F1, среда Windows автоматически выводит систему справки, если она доступна.

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

Идентификатор справки может содержать ключевое слово системы справки или “строку контекста”.

· Ключевое слово системы справки это слово или фраза, которая высвечивается в списке окна Help Search. Если, когда пользователь нажимает F1, это ключевое слово относится только к одному разделу файла подсказок, то он открывается на этом разделе; если относится к нескольким разделам, то пользователю раскрывается диалоговое окно.

· “Контекстная строка” отличается в идентификаторе справки символом тильда (~), за которым следует уникальная последовательность символов (не допускается наличие в ней пробелов), связанная точно с одним разделом справки. При нажатии пользователем клавиши F1 система справки раскрывается на конкретном разделе, связанном с “контекстной строкой”. Если тильда пропущена, то подразумевается, что идентификатор справки должен быть ключевым словом справочной системы.

Пример:

! Окно с подсказкой по контекстной строке:

MainWin APPLICATION('My Application'),SYSTEM,MAX,ICON('MyIcon.ICO'),STATUS,HLP('~App')

MENUBAR

MENU('&File'),USE(?FileMenu)

ITEM('&Open...'),USE(?OpenFile),HLP('~OpenFileHelp')

END

END

END

!Окно с ключевым словом справочной системы:

Win2 WINDOW,HLP('Window One Help')

ENTRY(@s30),USE(SomeVariable),HLP('~Entry1Help') !контекстная строка помощи

ENTRY(@s30),USE(SomeVariable),HLP('Control Two Help') !Ключевое слово помощи

END

 

HSCROLL, VSCROLL, HVSCROLL (установить линейки скроллинга)

HSCROLL

VSCROLL

HVSCROLL

Атрибуты HSCROLL, VSCROLL, HVSCROLL задают наличие линеек скроллинга на структрурах APPLICATION или WINDOW, а также у поля типа COMBO, LIST, IMAGE, или TEXT. HSCROLL (PROP:HSCROLL) добавляет к полю снизу линейку горизонтального скроллинга, VSCROLL (PROP:VSCROLL) добавляет к полю справа линейку вертикального скроллинга, а HVSCROLL (PROP:HVSCROLL) - обе.

Атрибут HSCROLL также употребляется для элемента управления SHEET. Он определяет вывод листов в один ряд, а не в несколько рядов, не взирая на то, как много этих листов. Для перелистывания на каждом краю листа присоединяются кнопки скроллинга вправо и влево (или вверх и вниз). PROP:BrokenTabs может быть установлено в FALSE, чтобы выключить эффект “изломанных страниц”.

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

Когда линейка вертикального скроллинга добавляется к окну списка с атрибутом IMM, то она всегда присутствует на экране, даже если список не заполнен. Когда пользователь щелкает на линейке скроллинга, то генерируется событие, но содержимое списка не перемещается, (эту задачу должна выполнять сама прикладная программа). Для того, чтобы определить положение бегунка на линейке скроллинга, можно проверить значение свойства PROP:VscrollPos (от 0 - верх и до 100 - низ).

Атрибуты HSCROLL, VSCROLL и HVSCROLL кроме того допустимы для элемента SPIN и задают отличающиеся от используемого по умолчанию расположения кнопок прокрутки списка (одна над другой, указывающие вверх или вниз).

Атрибутом HSCROLL кнопки располагаются рядом, указывая влево и вправо. Атрибутом VSCROLL кнопки располагаются одна над другой, указывая вверх и вниз, а HVSCROLL размещает кнопки рядом, указывая вверх и вниз.

 

Пример:

! Окно с линейкой горизонтального скроллинга:

Win1 WINDOW,HSCROLL,RESIZE

END

! Окно с линейкой вертикального скроллинга:

Win2 WINDOW,VSCROLL,RESIZE

END

! Окно с обеими линейками:

Win2 WINDOW,HVSCROLL,RESIZE

END

 

ICON (установить пиктограмму)

ICON( файл )

ICON Задает пиктограмму, которая должна выводиться APPLICATION, WINDOW или для поля.

файл Строковая константа, указывающее имя файла (.ICO, .GIF, .JPG, .PCX) или мнемоническое имя стандартной пиктограммы Windows, подлежащей выводу. Файл изображение автоматически включается в программу в качестве ресурса.

Атрибут ICON (PROP:ICON) задает пиктограмму, которая должна выводиться для APPLICATION, WINDOW или поля.

На APPLICATION или WINDOW атрибут ICON кроме того, задает наличие управляющего поля минимизации окна для чего в качестве параметра должно использоваться имя файла .ICO. Кнопка минимизации выводится в верхнем правом углу в виде знака подчеркивания. Когда пользователь щелкнет кнопкой мыши, указав курсором на это кнопку, окно свертывается до пиктограммы, не останавливая выполнения процесса в этом окне. Если минимизируется окно APPLICATION или не MDI окно, то пиктограмма, задаваемая параметром файл высвечивается на поверхности системного “рабочего стола”; если минимизируется окно с атрибутом MDI, то пиктограмма высвечивается в пределах окна APPLICATION.

На полях типа BUTTON, RADIO или CHECK пиктограмма, заданная параметром файл, высвечивается на поверхности кнопки. Для полей типа RADIO и CHECK атрибут ICON создает фиксирующиеся нажимные кнопки, которые выглядят нажатыми в состоянии “включено” и отпущенными в состоянии “выключено”.

В файле EQUATES.CLW содержатся операторы EQUATE для стандартных в Windows пиктограмм. Ниже представлены часть из них (полный список смотри в файле EQUATES.CLW).

ICON:None Нет иконки

ICON:Application

ICON:Question ?

ICON:Exclamation !

ICON:Asterisk *

ICON:VCRtop >>|

ICON:VCRrewind <<

ICON:VCRback <

ICON:VCRplay >

ICON:VCRfastforward >>

ICON:VCRbottom |<<

ICON:VCRlocate ?

Если имя файла иконки присвоенного атрибуту PORP:Icon имеет в конце номер, заключенный в квадратные скобки (IconFile.DLL[1]), то это означает, что файл включает несколько иконок, а номер указывает позицию присвоенной иконки (отсчет начинается с нуля). Если спереди имени файла присоединен знак тильды (~) (~IconFile.ICO), то это означает что файл будет присоединен к проекту как ресурс и может не находиться на диске.

Пример:

MDIChild WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL,ICON('MyIcon.ICO')

OPTION('Option'),USE(OptVar)

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1),ICON('Radio1.ICO')

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),ICON('Radio2.GIF')

END

CHECK('&A'),AT(0,120,20,20),USE(?C7),ICON(ICON:Asterisk)

BUTTON('&1'),AT(120,0,20,20),USE(?B7),ICON(ICON:Question)

END

Смотри также: ICONIZE, MAX, MAXIMIZE, IMM

 

ICONIZE (установить, что в момент раскрытия выводится пиктограмма)

ICONIZE

Атрибут ICONIZE (PROP:ICONIZE) указывает, что WINDOW или APPLICATION раскрывается минимизированным до пиктограммы, заданной атрибутом ICON. Если минимизируется окно APPLICATION или не MDI окно, то пиктограмма, задаваемая параметром файл атрибута ICON высвечивается на поверхности системного “рабочего стола”; если минимизируется окно с атрибутом MDI, то пиктограмма высвечивается в пределах окна APPLICATION.

Вместе со встроенной переменной SYSTEM используемой в качестве цели, PROP:ICONIZE возвращает 1, если ярлык Windows (PIF) установлен таким образом, чтобы приложение запускалось свернутом в значок.

Пример:

! Окно с кнопкой минимизации, раскрывающееся в виде пиктограммы:

Win2 WINDOW,ICON('MyIcon.ICO'),ICONIZE

END

Смотри также: ICON, IMM

 

IMM (немедленная генерация события)

IMM

Атрибут IMM (PROP:IMM) задает немедленную генерацию события.

Использование в окнах

Атрибут IMM для структур WINDOW и APPLICATION задает, что, как только пользователь начинает изменять размеры окна или перемещать его, немедленно происходит генерация события. Перед выполнением действия на экране генерируется одно из следующих событий:

EVENT:Move

EVENT:Size

EVENT:Restore

EVENT:Maximize

EVENT:Iconize

Если участок программы, обрабатывающий эти события выполнит оператор CYCLE, то действие не выполняется. Тем самым можно не позволить пользователю переместить окно или изменить его размеры. Как только действие выполнено, генерируется одно из следующих событий:

EVENT:Moved

EVENT:Sized

EVENT:Restored

EVENT:Maximized

EVENT:Iconized

Несколько генерируемых после выполнения действия событий обусловлены тем, что некоторые действия имеют множественные результаты. Например, если пользователь щелкнул мышью на кнопке максимизации, генерируется событие EVENT:Maximize. Если при обработке этого события не было выполнения оператора CYCLE, то действие выполняется, затем генерируются события EVENT:Maximized, EVENT:Moved и EVENT:Sized. Это происходит потому, что окно приняло максимальные размеры, что также подразумевает его перемещение и изменение размеров.

Использование в управляющих объектах

Для объекта типа REGION с атрибутом IMM события генерируются как только курсор мыши входит в пределы объекта (EVENT:MouseIn), перемещается внутри (EVENT:MouseMove) или покидает пределы области (EVENT:MouseOut), заданной атрибутом AT. Точное положение курсора мыши можно определить с помощью процедур MOUSEX и MOUSEY.

Для поля BUTTON атрибут IMM означает, что событие генерируется, когда нажимается левая кнопка мыши, а не когда она отпускается. Событие EVENT:Accepted генерируется непрерывно на протяжении всего времени, в течение которого пользователь удерживает кнопку нажатой. Атрибуты DELAY и REPEAT для BUTTON могут использоваться для изменения количества генераций события, установленного по умолчанию.

Для полей COMBO и LIST атрибут IMM указывает, что событие генерируется немедленно и всякий раз когда пользователь нажимает любую клавишу или комбинацию клавиш (обычно используется для повторного построения очереди). Это означает что все клавиши неявно “горячие” для объекта. Когда пользователь нажимает печатный символ, генерируется событие EVENT:NewSelection.

Для полей ENTRY или SPIN событие EVENT:NewSelection генерируется как только изменилось содержимое этих полей или изменилась позиция курсора. Чтобы определить, что содержимое поля каким-нибудь образом изменилось, необходимо сохранить предыдущее значение, чтобы сравнить его с текущим (вероятно используя PROP:ScreenText).

Для объекта SHEET, событие EVENT:NewSelection генерируется как только пользователь щелкает мышью на листе (даже когда этот лист выбран текущим). Это используется когда имеется несколько закладок в одном и том же окне.

Пример:

Win2 WINDOW('Some Window'),AT(58,11,174,166),MDI,DOUBLE,MAX,IMM

LIST,AT(109,48,50,50),USE(?List),FROM('Que'),IMM

BUTTON('&Ok'),AT(111,108,,),USE(?Ok)

BUTTON('&Cancel'),AT(111,130,,),USE(?Cancel)

END

CODE

OPEN(Win2)

ACCEPT

CASE EVENT()

OF EVENT:Move ! не дать пользователю переместить окно

CYCLE

OF EVENT:Maximized ! При максимизации

?List{PROP:Height} = 100 ! изменить размер списка

OF EVENT:Restored ! При восстановлении из пиктограммы

?List{PROP:Height} = 50 ! изменить размер списка

END

END

Смотри также: RESIZE, MAX, ICON, DELAY, REPEAT

 

INS, OVR (установить режим ввода)

INS

OVR

Атрибуты INS и OVR (PROP:INS и PROP:OVR) задают режим ввода данных в поля типа ENTRY или TEXT, когда для окна установлен атрибут MASK. INS устанавливает режим вставки, тогда как OVR устанавливает режим забивки. Эти режимы активны только для окон с атрибутом MASK.

JOIN (установить объединение кнопок прокрутки на листе)

JOIN

Атрибут JOIN (PROP:JOIN) указывает, что листы в SHEET выводится в один ряд, а не в несколько, не взирая на то, сколько листов всего. Для перелистывания на правом (или верхнем) краю листа присоединяются кнопки скроллинга вправо и влево (или вверх и вниз).

 

KEY (установить клавишу выполнения элемента)

KEY(код клавиши)

KEY Задает “горячую” клавишу для элемента управления.

код клавиши Код клавиши, принятый в Clarion или мнемоническая метка соответствия кода клавиши.

Атрибут KEY (PROP:KEY) задает “горячую” клавишу, по которой фокус немедленно переключается на этот элемент или выполняются связанные с ним действия.

Фокус переключается на следующие элементы управления: COMBO, CUSTOM, ENTRY, GROUP, LIST, OPTION, PROMPT, SPIN, TEXT.

На следующие элементы переключается фокус и выполняются связанные с ним действия: BUTTON, CHECK, CUSTOM, RADIO, MENU, ITEM.

Пример:

MainWin APPLICATION('My Application'),SYSTEM,MAX,ICON('MyIcon.ICO'),STATUS

MENUBAR

MENU('&Edit'),USE(?EditMenu)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut),DISABLE

ITEM('&Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy),DISABLE

ITEM('&Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste),DISABLE

END

END

TOOLBAR

COMBO(@S8),AT(120,120,20,20),USE(?C1),FROM(Q1:F2),KEY(F1Key)

LIST,AT(120,0,20,20),USE(?L1),FROM(Que1),KEY(F2Key)

SPIN(@N8.2),AT(280,0,20,20),USE(SpinVar1),FROM(Q),KEY(F3Key)

TEXT,AT(20,0,40,40),USE(E2),KEY(F4Key)

PROMPT('Enter &Data in E2:'),AT(10,200,20,20),USE(?P2),KEY(F5Key)

ENTRY(@S8),AT(100,200,20,20),USE(E2),KEY(F6Key)

BUTTON('&1'),AT(120,0,20,20),USE(?B7),KEY(F7Key)

CHECK('&A'),AT(0,120,20,20),USE(?C7),KEY(F8Key)

OPTION('Option'),USE(OptVar),KEY(F9Key)

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1),KEY(F10Key)

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),KEY(F11Key)

END

END

END

 

LANDSCAPE (выбор ориентации страницы)

LANDSCAPE

Присутствие атрибута LANDSCAPE (PROP:LANDSCAPE) в структуре REPORT означает, что по умолчанию вывод документа на печать будет производится в “альбомном” режиме. Если атрибут LANDSCAPE отсутствует, то по умолчанию вывод документа на печать будет производится в “портретном” режиме.

Пример:

Report REPORT,PRE('Rpt'),LANDSCAPE ! Режим по умолчанию “ альбомный”

! Структура документа

END

 

LAYOUT (установить ориентацию окна)

LAYOUT ( стиль )

стиль Байтовое значение означающее какую ориентацию имеют оконные объекты и последовательность полей установленое по умолчанию – слева направо или справа налево.

Атрибут LAYOUT (PROP:LAYOUT) в окне указывает ориентацию оконных объектов и последовательность полей. Стиль (1) по существу “переворачивает” отображение оконных объктов по типу зеркала указанное в форматере окна. Навигация в поле становиться по умолчанию справа налево.

Стиль (0) придерживается оригинального расположения указанном в форматере окна. Навигация по полю становится слева направо.

Установка LAYOUT для окна приложения установит этот режим по умолчанию для всех дочерних окон (не имеющих атрибута LAYOUT).

Выравнивание, указанное в строке формата для колонок списка (listbox) всегда указывается поверх того, что указано атрибутом LAYOUT, (т.е. "слева" означает "слева", а не "возле", и "справа" означает "справа", а не "дальше"). Порядок колонок, первоначальные координаты и направление всегда следуют установкам LAYOUT.

Пример:

AppFrame APPLICATION('Example Application - BROWSES (ABC Templates)'),|

AT(,,548,344),FONT('MS Sans Serif',8,,),LAYOUT(1), |

CENTER,ICON('LOG1.ICO'),STATUS(-1,80,120,45),SYSTEM,MAX,RESIZE

!Установить все окна в приложении в стиле справа налево

 

LEFT, RIGHT, ABOVE, BELOW (установить положение листов (TAB))

LEFT( [ширина] )

RIGHT( [ширина] )

ABOVE( [ширина] )

BELOW( [ширина] )

ширина Целочисленная константа определяющая ширину листа. Задается в условных единицах. Атрибуту LEFT соответствует PROP:LeftOffset (эквивалентно {PROP:LEFT,2}). Атрибуту RIGHT - PROP:RightOffset (эквивалентно {PROP:RIGHT,2}). Атрибуту ABOVE - PROP:AboveSize (эквивалентно {PROP:ABOVE,2}). Атрибуту BELOW - PROP:BelowSize (эквивалентно {PROP:BELOW,2}).

Атрибуты LEFT, RIGHT, ABOVE и BELOW элемента управления SHEET задают расположение составляющих ее листов. Атрибут LEFT (PROP:LEFT) определяет, что листы раполагаются друг за другом влево, RIGHT - со сдвигом вправо (PROP:RIGHT), ABOVE - со сдвигом вверх (расположение по умолчанию - (PROP:ABOVE)), а BELOW - со сдвигом вниз (PROP:BELOW).

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

Пример:

MDIChild WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL

SHEET,AT(0,0,320,175),USE(SelectedTab),BELOW ! Разместить листы вниз

TAB('Tab One'),USE(?TabOne)

OPTION('Option 1'),USE(OptVar1),KEY(F10Key),HLP('Option1Help')

RADIO('Radio 1'),AT(20,0,20,20),USE(?R1)

RADIO('Radio 2'),AT(40,0,20,20),USE(?R2)

END

PROMPT('Enter Data:'),AT(100,100,20,20),USE(?P1)

ENTRY(@S8),AT(100,140,32,20),USE(E1)

PROMPT('Enter More Data:'),AT(100,200,20,20),USE(?P2)

ENTRY(@S8),AT(100,240,32,20),USE(E2)

END

TAB('Tab Two'),USE(?TabTwo)

PROMPT('Enter Data:'),AT(100,100,20,20),USE(?P3)

ENTRY(@S8),AT(100,140,32,20),USE(E3)

PROMPT('Enter More Data:'),AT(100,200,20,20),USE(?P4)

ENTRY(@S8),AT(100,240,32,20),USE(E4)

END

END

BUTTON('Ok'),AT(100,180,20,20),USE(?Ok)

BUTTON('Cancel'),AT(200,180,20,20),USE(?Cancel)

END

 

LEFT, RIGHT, CENTER, DECIMAL (установить выравнивание)

LEFT( [смещение] )

RIGHT( [смещение] )

CENTER( [смещение] )

DECIMAL( [смещение] )

смещение Целочисленная константа, задающая величину смещения от точки выравнивания. Величина задается в условных единицах (если в отчете не заданы атрибуты THOUS, MM и POINTS). Атрибуту LEFT соответствует PROP:LeftOffset (эквивалентно {PROP:LEFT,2}). Атрибуту RIGHT - PROP:RightOffset (эквивалентно {PROP:RIGHT,2}). Атрибуту CENTER - PROP:CenterOffset (эквивалентно {PROP:CENTER,2}). Атрибуту DECIMAL - PROP:DecimalOffset (эквивалентно {PROP:DECIMAL,2}).

Атрибуты LEFT, RIGHT, CENTER и DECIMAL задают выравнивание отображаемых данных. LEFT указывает выравнивание на левый край (PROP:LEFT), RIGHT – задает выравнивание по правому краю (PROP:RIGHT), CENTER – центрирование (PROP:CENTER), а DECIMAL задает выравнивание числовых данных по десятичной точке (PROP:DECIMAL).

Для атрибута LEFT смещение задает количество отступов слева. Для атрибута RIGHT смещение задает количество отступов справа. Для атрибута CENTER смещение задает значение смещения от центра (отрицательное значение – левое смещение). Для атрибута DECIMAL смещение задает отступы десятичной точки справа.

Использование в окнах

Для полей BUTTON, CHECK и RADIO допустимы только атрибуты LEFT или RIGHT (без параметра смещение).

Поля допускающие атрибуты LEFT(смещение), RIGHT(смещение), CENTER(смещение) или DECIMAL(смещение): COMBO, ENTRY, LIST, SPIN, STRING.

Для поля TEXT допустимы только атрибуты LEFT(смещение), RIGHT(смещение), или CENTER(смещение).

Использование в отчетах

Для полей BUTTON, CHECK и RADIO допустимы только атрибуты LEFT и RIGHT (без параметра смещение): CHECK, GROUP, OPTION, RADIO.

Поля допускающие атрибуты LEFT(смещение), RIGHT(смещение), CENTER(смещение) и DECIMAL(смещение): LIST, STRING.

Для поля TEXT допустимы только атрибуты LEFT(смещение), RIGHT(смещение), и CENTER(без параметра смещение).

Пример:

Rpt REPORT,AT(1000,1000,6500,9000),THOUS

Detail DETAIL,AT(0,0,6500,1000)

LIST,AT(0,20,100,146),FORMAT('800L'),FROM(Fname),USE(?Show2),LEFT(100)

END

END

WinOne WINDOW,AT(0,0,160,400)

COMBO(@S8),AT(120,120,20,20),USE(?C1),FROM(Q1:F2),RIGHT(4)

LIST,AT(120,0,20,20),USE(?L1),FROM(Que1),CENTER

SPIN(@N8.2),AT(280,0,20,20),USE(SpinVar1),FROM(Q),DECIMAL(8)

TEXT,AT(20,0,40,40),USE(E2),LEFT(8)

ENTRY(@S8),AT(100,200,20,20),USE(E2),LEFT(4)

CHECK('&A'),AT(0,120,20,20),USE(?C7),LEFT

OPTION('Option'),USE(OptVar)

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1),LEFT

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),RIGHT

END

END

 

LINEWIDTH (установить толщину линий экранных элементов)

LINEWIDTH( толщина )

LINEWIDTH Задает толщину элемента LINE или толщину контура элементов BOX и ELLIPSE.

толщина Положительная целочисленная константа задает толщину линии в пикселах.

Атрибут LINEWIDTH (PROP:LINEWIDTH) указывает толщину элемента LINE, а для элементов BOX и ELLIPSE - толщину контура.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

LINE,AT(105,78,-49,0),USE(?Line1),LINEWIDTH(10)!линия толщиной 10 пикселей

BOX,AT(182,27,50,50),USE(?Box1),LINEWIDTH(3) !Box с границей 3 пикселя

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

END

window WINDOW('Caption'),AT(,,260,100),GRAY

LINE,AT(105,78,-49,0),USE(?Line1),LINEWIDTH(3) !линия толщиной 3 пикселя

BOX,AT(182,27,50,50),USE(?Box1),LINEWIDTH(3) !Box с границей 3 пикселя

END

LINK (создать элемент управления OLE - связь с объектом в файле)

LINK( имя файла )

LINK Задает создание для элемента управления OLE связи с объектом в файле данных, характерном для прикладной программы - сервера.

имя файла Строковая константа, содержащая имя файла.

Атрибут LINK (PROP:LINK, только для записи) задает создание для элемента управления OLE связи с объектом в файле данных, характерном для прикладной программы - сервера. Значение параметра имя файла должно представлять собой полное имя файла, включая путь, если только он не находится в том же каталоге, что и прикладная программа - сервер.

Пример:

WinOne WINDOW,AT(0,0,200,200)

OLE,AT(10,10,160,100),USE(?OLEObject),LINK('Book1.XLS') ! Таблица Excel

MENUBAR

MENU('&Clarion App')

ITEM('&Deactivate Object'),USE(?DeactOLE)

END

END

END

END

 

MARK (установить режим множественного выбора)

MARK(признак)

MARK Включает режим выбора нескольких элементов.

признак Метка поля из структуры QUEUE.

Атрибут MARK (PROP:MARK, только для записи) включает режим выбора нескольких элементов из списка поля LIST или COMBO. Когда выбирается какой-либо элемент из списка, соответствующий ему признак устанавливается в значение “истина” (1). Каждый помеченный элемент списка автоматически выделяется. Изменение значения поля - признака также изменяет изображение соответствующего элемента списка.

Если для поля LIST или COMBO указан атрибут MARK, то нельзя задавать атрибут IMM.

Пример:

Que1 QUEUE

MarkFlag BYTE

F1 LONG

F2 STRING(8)

END

WinOne WINDOW,AT(0,0,160,400),SYSTEM

LIST,AT(120,0,20,20),USE(?L1),FROM(Que1.F1),MARK(Que1.MarkFlag)

COMBO(@S8),AT(120,120,,),USE(?C1),FROM(Que1.F2),MARK(Que1.MarkFlag)

END

CODE

DO LoadQue !Загрузить Que1 с данными

OPEN(WinOne)

ACCEPT

CASE EVENT()

OF EVENT:CloseWindow

BREAK

END

END

LOOP X# = 1 to RECORDS(Que1) !Цикл по записям очереди

GET(Que1,X#)

IF Que1.MarkFlag ! Если пользователь пометил элемент

DO ProcessMarked ! то обработать его

END

END

 

MASK (задает режим редактирования поля данных ввода)

MASK

Атрибут MASK (PROP:MASK) задает шаблон режима ввода в поле для всех управляющих объектов в окне (когда размещен в структуре окна). Переключение атрибута PROP:MASK для окна влияет только на объекты созданные после открытия, на существующие объекты переключение влияния не оказывает.

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

Если MASK опущен, допускается свободный ввод. Свободный ввод означает, что пользовательские данные форматируются в соответствии с шаблоном только после ввода. Это дает возможность пользователю вводить данные по своему выбору, а после ввода они автоматически форматируются в соответствии с управляющим форматом. Если формат пользовательских типов данных отличается от шаблона представления данных, то библиотечные процедуры пытаются определить формат, который использовал пользователь, и преобразовать данные к шаблону представления данных. Например, если пользователь ввел “January 1, 1995” с помощью шаблона @D1, функции библиотеки реального времени форматируют пользовательский ввод к виду “1/1/1995”. Это действие выполняется только после, того как пользователь введет данные и перейдет к другому управляющему шаблону. Если процедура библиотеки реального времени не может определить, какой формат использовал пользователь, то она не будет обновлять USE - переменную. Затем система выдает сигнал и производит возврат пользователя на тот же самый шаблон, где были введены данные, для обеспечения повторной попытки ввода данных.

Пример:

!Окно с шаблоном ввода

Win2 WINDOW,MASK

END

!окно с полями с шаблоном ввода

Win2 WINDOW,MASK

COMBO(@P(###) ###-####P),AT(120,120,20,20),USE(Phone),FROM(Q1:F2)

SPIN(@N8.2),AT(280,0,20,20),USE(SpinVar1),FROM(Q)

ENTRY(@D2),AT(100,200,20,20),USE(DateField)

END

 

MAX (установить наличие кнопки максимизации окна или итоговый максимум)

MAX( [ переменая ] )

MAX Задает наличие кнопки максимизации размеров окна APPLICATION или окна, описываемого структурой WINDOW или находит максимальное среди значений USE-переменных элементов типа STRING в отчетах .

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

Атрибут MAX (PROP:MAX) Задает наличие кнопки максимизации размеров окна APPLICATION или WINDOW или подсчитывает максимальное среди значений USE-переменных элементов типа STRING в отчетах.

Использование в окнах

Кнопка максимизации выводится в верхнем правом углу в виде указывающего вверх треугольника. Когда пользователь щелкнет кнопкой мыши, указав курсором на эту кнопку, окно APPLICATION или не MDI-окно расширяется так, чтобы занимать весь экран монитора; MDI-окно расширяется таким образом, чтобы занимать все окно APPLICATION. Кнопка максимизации в окне, расширенном до максимальных размеров, выглядит в виде двух треугольников друг над другом, указывающих верхний - вверх, а нижний - вниз. Повторный щелчок мышью на такой кнопке, - и окно возвращается к своему предыдущему размеру, а кнопка выводится в виде одного треугольника, указывающего вверх.

Использование в отчетах

Атрибут MAX инициирует вывод на печать максимального значения, которого к данному моменту достигла USE-переменная поля STRING. Если атрибут TALLY не указан, то подсчет ведется следующим образом:

  • MAX-поле структуры DETAIL оценивается всякий раз, когда DETAIL выводится на печать оператором PRINT. Этим обеспечивается “текущее” максимальное значение.
  • MAX-поле структуры FOOTER раздела документа (FOOTER внутри BREAK) оценивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из структуры BREAK, в которую (BREAK) входит STRING-поле. Этим обеспечивается получение максимального значения переменной в разделе документа.
  • MAX-поле структуры FOOTER страницы документа оценивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из любой BREAK. Этим обеспечивается получение максимального значения переменной в странице документа.
  • Бессмысленно помещать MAX-поле в структуру HEADER, поскольку в тот момент, когда HEADER выводится на печать, ни одной DETAIL еще не напечатано.

Значение MAX обнуляется только тогда, когда вместе с MAX указан один из атрибутов RESET или PAGE.

Пример:

! Окно с кнопкой максимизации:

Win2 WINDOW,MAX

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Maximum:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(Pre:F1),MAX(LocalVar),RESET(Break2)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Grand Maximum:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(LocalVar),MAX,TALLY(?BreakTwo)

END

END

END

Смотри также: ICONIZE, ICON, MAXIMIXE, IMM, TALLY, RESET, PAGE

 

MAXIMIZE (установить раскрытие окна максимального размера)

MAXIMIZE

Атрибут MAXIMIZE (PROP:Maximize) указывает, что окно раскрывается увеличенным до максимально возможного размера. Будучи увеличенным до максимальных размеров, окно APPLICATION или не MDI-окно расширяется так, чтобы занимать весь экран монитора; MDI-окно расширяется таким образом, чтобы занимать все окно APPLICATION.

Вместе со встроенной переменной SYSTEM используемой в качестве цели, PROP:MAXIMIZE возвращает 1, если ярлык Windows (PIF) установлен таким образом, чтобы приложение запускалось в максимальном размере.

Пример:

! Окно с кнопкой макимизации, раскрывающееся максимального размера:

Win2 WINDOW,MAX,MAXIMIZE

END

Смотри также: MAX, IMM

 

MDI (установить для окна тип MDI)

MDI

Атрибут MDI (PROP:MDI, только для чтения) задает структуру WINDOW, которая описывает окно “порожденное” по отношению к окну APPLICATION. Порожденные MDI-окна располагаются в пределах окна APPLICATION - они могут перемещаться только в пределах границ окна APPLICATION. Порожденные MDI-окна автоматически перемещаются при перемещении окна APPLICATION и могут быть скрыты совсем при минимизации порождающего окна. Структуру WINDOW с атрибутом MDI нельзя открыть, пока не открыта порождающая их структура APPLICATION.

Немодальные окна

Порожденные MDI-окна являются немодальными; пользователь в любое время может переключиться на верхнее окно в другом исполняемом процессе внутри этой же прикладной программы или на любую другую выполняемую в среде Windows программу. Порожденное MDI-окно не должно быть в том же самом процессе, что и окно всего приложения. Поэтому, любое порожденное MDI-окно, к которому обращаются непосредственно из окна приложения должно располагаться в отдельной процедуре, так что для инициирования нового процесса можно использовать процедуру START. После того как запущен новый процесс, в нем можно открыть несколько порожденных MDI-окон.

Окна модальные для приложения

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

Пример:

Win2 WINDOW,MDI !Порожденное MDI-окно

END

Смотри также: MODAL, THREAD

 

MIN (установить итоговый минимум)

MIN( [ переменная ] )

MIN Находит максимальное к данному моменту среди значений USE-переменных элементов типа STRING.

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

Атрибут MIN (PROP:MIN) инициирует вывод на печать минимального значения, которого к данному моменту достигла USE-переменная поля STRING. Если атрибут TALLY не указан, то подсчет ведется следующим образом:

MIN-поле структуры DETAIL оценивается всякий раз, когда DETAIL выводится на печать оператором PRINT. Этим обеспечивается “текущее” минимальное значение.

MIN-поле структуры FOOTER раздела документа (FOOTER внутри BREAK) оценивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из структуры BREAK, в которую (BREAK) входит STRING-поле. Этим обеспечивается получение минимального значения переменной в разделе документа.

MIN-поле структуры FOOTER страницы документа оценивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из любой BREAK. Этим обеспечивается получение минимального значения переменной в странице документа (или к этому времени).

Бессмысленно помещать MIN-поле в структуру HEADER, поскольку в тот момент, когда HEADER выводится на печать, ни одной DETAIL еще не напечатано.

.

Значение MIN обнуляется только тогда, когда вместе с MIN указан один из атрибутов RESET или PAGE.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Minimum:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(Pre:F1),MIN(LocalVar),RESET(Break2)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Grand Minimum:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(LocalVar),MIN,TALLY(?BreakTwo)

END

END

END

 

MODAL (установить системную модальность окна)

MODAL

Модальность не распространяется на 32-битные приложения и не поддерживается этой версией Clarion. Win32 API от Microsoft не поддерживает системную модальность окна.

Окна модальные для приложения

Окно без атрибута MODAL может быть модальным относительно прикладной программы или немодальным вообще. Модальным относительно прикладной программы является окно без атрибута MDI, раскрытое в MDI-программе. Модальное по отношению к прикладной программе не позволяет пользователю переключиться на любое другой процесс в прикладной программе, но не запрещает переключиться на другую программу, выполняющуюся в это же время в среде Windows.

Немодальные окна

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

Пример:

Win2 WINDOW,MODAL !Модальное окно для системы

END

Смотри также: MDI, THREAD

 

MSG (установить сообщение на линейке состояния)

MSG( текст )

MSG Задает текст, который следует вывести в линейке состояния.

текст Строковая константа, содержащая сообщение, которое следует вывести на линейке состояния.

Атрибут MSG (PROP:Msg) задает текст, который следует вывести в первой зоне линейки состояния.

В управляющих объектах MSG указывает текст, подлежащий выводу в первой области строки состояния, когда на поле переключен фокус ввода. Если поле имеет непостоянный (неустойчивый) фокус(имеет SKIN атрибут, или размещено в инструментальной панели или в окне с атрибутом TOOLBOX), сообщение отображается, когда курсор мыши позиционируется над полем.

В структурах APPLICATION или WINDOW, MSG указывает текст выводящийся в первой зоне линейки состояния, в то время, когда фокус ввода переключен на поле, не имеющее своего собственного атрибута MSG.

Пример:

MainWin APPLICATION('My Application'),SYSTEM,MAX,ICON('MyIcon.ICO'),STATUS

MENUBAR

MENU('&File'),USE(?FileMenu)

ITEM('&Open...'),USE(?OpenFile),MSG('Open a file')

ITEM('&Close'),USE(?CloseFile),DISABLE,MSG('Close the open file')

ITEM(),SEPARATOR

ITEM('E&xit'),USE(?MainExit),MSG('Exit the program')

END

END

END

WinOne WINDOW,AT(0,0,160,400),MSG('Enter Data') ! Сообщние по умолчанию

COMBO(@S8),AT(120,120,20,20),USE(?C1),FROM(Q1:F2),MSG('Enter or Select')

TEXT,AT(20,0,40,40),USE(E2) ! Сообщние по умолчанию

ENTRY(@S8),AT(100,200,20,20),USE(E2) ! Сообщние по умолчанию

CHECK('&A'),AT(0,120,20,20),USE(?C7),MSG('On or Off')

OPTION('Option 1'),USE(OptVar),MSG('Pick One or Two')

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1)

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2)

END

END

Смотри также: STATUS

 

NOBAR (отсутствие полосы - курсора)

NOBAR

Атрибут NOBAR (PROP:NOBAR) указывает, что выбранный в данный момент элемент выделяется, только когда на окно списка переключен фокус ввода.

 

NOCASE (не учитывается регистр в отчетах в BREAK)

NOCASE

Атрибут NOCASE (PROP:NOCASE) структуры BREAK в объявлении REPORT указывает, что при сравнении изменения переменной (в групповом BREAK) не учитывается регистр (верхний/нижний) кодировки ASCII. Все символы в поле группы и сравниваемой величине перед сравнением преобразуются в верхний регистр (прописные). Это преобразование регистра не влияет на регистр данных. Атрибут NOCASE не имеет эффекта в неалфавитных символах.

Пример:

Report REPORT

BREAK(BreakVariable),NOCASE !Регистр не учитывается

HEADER

STRING(@n4),USE(BreakVariable)

END

Detail DETAIL

STRING(@n4),USE(SomeField)

END

END

END

Смотри также: BREAK

 

NOMERGE (установить поведение слияния)

NOMERGE

Атрибут NOMERGE (PROP:NOMERGE) означает, что линейка меню или панель инструментов окна WINDOW не должны объединяться с глобальным меню или глобальной панелью инструментов соответственно.

В операторе MENUBAR структуры APPLICATION атрибут NOMERGE означает, что линейка меню локальная и должна высвечиваться, только когда нет открытых “порожденных” MDI-окон. Таким образом в этом случае глобального меню нет. Без атрибута NOMERGE линейка меню или панель инструментов MDI-окна автоматически объединяется с глобальным меню или глобальной панелью инструментов, а затем высвечивается в окне APPLICATION или панеле инструментов.

Если же атрибут NOMERGE указан, то меню или панель инструментов окна WINDOW замещают глобальное меню или глобальную панель инструментов. Во то время, когда на окно WINDOW переключен фокус, выводимое меню или панель инструментов является собственным меню или панелью инструментов окна. Однако и в этом случае они выводятся в окне APPLICATION.

Линейка спускающегося меню или инструментальная панель заданные для окна без атрибута MDI, никогда не объединяются с глобальными - они выводятся в самом окне.

Пример:

! APPLICATION окно с локальными линейками меню и инструментов:

MainWin APPLICATION('My Application'),SYSTEM,MAX,ICON('MyIcon.ICO'),STATUS

MENUBAR,NOMERGE

ITEM('E&xit'),USE(?MainExit)

END

TOOLBAR,NOMERGE

BUTTON('Exit'),USE(?MainExitButton)

END

END

! MDI-окно со своими собственными линейками меню и инструментов, замещающими

! соответствующие элементы окна APPLICATION:

MDIChild WINDOW('Dialog Window'),MDI,SYSTEM,MAX,STATUS

MENUBAR,NOMERGE

MENU('Edit'),USE(?EditMenu)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut)

ITEM('Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy)

ITEM('Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste)

END

END

TOOLBAR,NOMERGE

BUTTON('Cut'),USE(?CutButton),STD(STD:Cut)

BUTTON('Copy'),USE(?CopyButton),STD(STD:Copy)

BUTTON('Paste'),USE(?PasteButton),STD(STD:Paste)

END

TEXT,HVSCROLL,USE(Pre:Field),MSG('Enter some text here')

BUTTON('&OK'),USE(?Exit),DEFAULT

END

Смотри также: MENUBAR, TOOLBAR

 

NOSHEET (задатьплавающийлист)

NOSHEET

Атрибут NOSHEET (PROP:NOSHEET) структуры SHEET указывает, что листы выводятся неупорядоченными. Тем самым создается эффект “плавающих” листов.

ВА 7 УПРАВЛЯЮЩИЕ

OPEN (открыть из файла объект для поля OLE )

OPEN( объект )

OPEN Указывает, что для поля OLE необходимо открыть объект из специального файла (OLE Compound Storage).

объект Строковая константа, содержащая имя файла и объекта в нем, который следует открыть.

Атрибут OPEN (PROP:OPEN, только для чтения) указывает, что необходимо открыть для поля OLE сохраненный в специальном файле объект. При открытии объекта восстанавливается сохраненный вариант значений свойств контейнера, поэтому нет необходимости их задавать вновь. Синтаксис параметра объект должен иметь вид: ИмяФайла\!ИмяОбъекта.

Пример:

WinOne WINDOW,AT(0,0,200,200)

OLE,AT(10,10,160,100),USE(?OLEObject),OPEN('SavFile.OLE\!MyObject')

MENUBAR

MENU('&Clarion App')

ITEM('&Deactivate Object'),USE(?DeactOLE)

END

END

END

END

 

PAGE (установить сброс страничных итогов)

PAGE

Атрибут PAGE (PROP:PAGE) определяет, что при переходе на новую страницу производится сброс (обнуление) итогового значения CNT, SUM, AVE, MIN или MAX.

 

PAGEAFTER (затем - переход на новую страницу)

PAGEAFTER( [новая страница] )

PAGEAFTER Указывает на то, что сначала структура будет напечатана, а затем выполнится переход на новую страницу.

новая страница Целочисленная константа, константное выражение для указания номера станицы, который будет напечатан на следующей странице (PROP:PageAfterNum, эквивалентно {PROP:PageAfter,2}). Если значение равно нулю (0) или пропущено, то принудительного переполнения страницы не произойдет. Если оно равно минус единице (-1), то при переполнении номер страницы увеличится.

Атрибут PAGEAFTER (PROP:PAGEAFTER) указывает, что одна из структур DETAIL, HEADER раздела или FOOTER раздела (HEADER и FOOTER - внутри BREAK) – после того, как будет напечатана - инициирует переход на новую страницу. То есть, сначала будет напечатана структура, у которой есть атрибут PAGEAFTER, сразу за ней - страничный FOOTER, а уж затем - FORM и страничный HEADER.

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

Пример:

CustRpt REPORT

HEADER

! элементы структуры

END

Break1 BREAK(SomeVariable)

HEADER

! элементы структуры

END

CustDetail DETAIL

! элементы структуры

END

FOOTER,PAGEAFTER(-1) ! FOOTER раздела инициирует переход на

! новую страницу

! элементы структуры

END

END

FOOTER

! элементы структуры

END

END

Смотри также: PROP:NextPageNo

 

PAGEBEFORE (сначала - переход на новую страницу)

PAGEBEFORE( [ новая страница ] )

PAGEBEFORE Указывает на то, что сначала произойдет переход на новую страницу, а затем структура будет напечатана.

новая страница Целочисленная константа, константное выражение для указания номера станицы, который будет напечатан на следующей странице (PROP:PageBeforNum, эквивалетно {PROP:PageBefore,2}). Если значение равно нулю или пропущено, то принудительного переполнения страницы не произойдет. Если оно равно минус единице (-1), то при переполнении номер страницы увеличится.

Атрибут PAGEBEFORE (PROP:PAGEBEFORE) указывает, что после того, как произойдет переход на новую страницу, будет напечатана одна из структур DETAIL, HEADER раздела или FOOTER раздела (HEADER и FOOTER - внутри BREAK). То есть, сначала будет напечатан страничный FOOTER, затем - FORM и страничный HEADER. Структура, у которой есть атрибут PAGEBEFORE, будет напечатана только после завершения этих, связанных с переходом на новую страницу, действий.

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

Пример:

CustRpt REPORT

HEADER

! элементы структуры

END

Break1 BREAK(SomeVariable)

HEADER,PAGEBEFORE(-1) ! HEADER раздела инициирует переход на новую страницу

! элементы структуры

END

CustDetail DETAIL

! элементы структуры

END

FOOTER

! элементы структуры

END

END

FOOTER

! элементы структуры

END

END

Смотри также: PROP:NextPageNo

 

PAGENO (установить печать номера страницы)

PAGENO( [переменная] )

PAGENO Рассчитывает номер страницы содержащийся в USE-переменной поля STRING.

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

Атрибут PAGENO (PROP:PAGENO) определяет, что STRING-поле будет выводить на печать номер страницы.

Смотри также: PROP:NextPageNo

 

PALETTE (установить аппаратное количество цветов)

PALETTE(цвета)

PALETTE Указывает аппаратное количество цветов, которыми отображаются различные части окна.

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

Атрибут PALETTE (PROP:Palette) структуры APPLICATION или WINDOW определяет сколько цветов в аппаратной палитре следует использовать для данного окна, когда оно является фоновым. Этот атрибут применим только для аппаратных графических режимов, в которых используется палитра и имеются в наличии свободные цвета (не зарезервированные системой) - практически это означает режим с 256 цветами. Этот атрибут включает использование частичного набора цветов для вывода графики. При 24-битовом представлении цвета (16.7М) аппаратная палитра не используется. Не рекомендуется использовать значение атрибута PALETTE больше 256.

Значение, возвращаемое свойством PROP:PALETTE, это число реально используемых цветов (необязательно число запрашиваемых). Поскольку системой резервируется 20 цветов в 256-цветном режиме, то сразу после установки PROP:PALETTE = 256, это свойство обычно возвращает значение 236.

Пример:

WinOne WINDOW,AT(0,0,160,400),PALETTE(26) ! Отобразить 26 цветов

IMAGE,AT(120,120,20,20),USE(ImageField)

END

Смотри также: IMAGE

 

PAPER (установить размер бумаги для отчета)

PAPER( [тип] [,ширина] [,высота])

PAPER Определяет размер листа бумаги для отчета.

тип Целочисленная константа или мнемоническая метка соответствия, задающая стандартный в Windows размер бумаги. Мнемонические метки соответствия содержатся в файле EQUATES.CLW.

ширина Целочисленная константа или константное выражение, которое задает ширину листа бумаги (PROPPRINT:paperwidth, эквивалентно {PROPPRINT:PAPER,2}).

высота Целочисленая константа или константное выражение, которое задает высоту листа бумаги (PROPPRINT:paperheight, эквивалентно {PROPPRINT:PAPER,3}).

.

Атрибут PAPER (PROPPRINT:PAPER) в структуре REPORT определяет размеры листа бумаги для отчета. Если в качестве типа бумаги выбрано свойство PAPER:User, то требуются параметры высота и ширина. Не все принтеры поддерживают любые размеры бумаги.

По умолчанию величины параметров ширина и высота всегда задаются в единицах 1/1000, независимо от присутствия или отсутствия атрибутов THOUS, MM или POINTS.

Пример:

CustRpt1 REPORT,AT(1000,1000,6500,9000),THOUS,PAPER(PAPER:User,8500,7000)

! Печать на бумаге 8.5 x 7 дюймов

! объявления элементов отчета

END

CustRpt2 REPORT,AT(72,72,468,648),POINTS,PAPER(PAPER:A4)

! Печать на бумаге формата A4

! объявления элементов отчета

END

Смотри также: PROP:AUTOPAPER

 

PASSWORD (установить неотображаемое поле)

PASSWORD

Атрибут PASSWORD (PROP:PASSWORD) устанавливает, что вводимые в поле ENTRY данные не отображаются. Когда пользователь вводит данные, для каждого из вводимых символов в поле выводится звездочка (*). Возможности CUT и COPY, предоставляемые Windows, непригодны, когда атрибут PASSWORD активен.

 

PREVIEW (направить вывод документа в метафайлы)

PREVIEW(очередь)

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

очередь Метка структуры QUEUE или QUEUE-элемента для хранения имен метафайлов.

Атрибут PREVIEW (PROP:PREVIEW, только для записи) структуры REPORT направляет созданный документ в метафайлы Windows (.WMF) - каждую страницу документа в отдельный файл. PREVIEW указывает имя очереди, в которой будут храниться имена метафайлов. Имена метафайлов - внутренние имена, временно создаваемые Clarion-библиотекой - представляют собой полную спецификацию файла (длиной до 64 символов, включая устройство и путь), если только вы не используете PROP:TempNameFunc, чтобы назвать файлы так, как вы сами захотите. Метафайлы удаляются с диска при закрытии структуры REPORT оператором CLOSE. Чтобы избежать физического удаления файлов с диска, удалите их имена из очереди.

Для просмотра документа нужно создать окно с полем IMAGE и установить свойство этого поля - {PROP:text}, используя очередь, хранящий имена файлов. Это дает возможность пользователю перед выводом документа на печать просмотреть его на экране компьютера. Доступное только во время исполнения свойство {PROP:FlushPreview}, будучи установленным в значение ON, “сбрасывает” метафайлы на принтер.

Пример:

SomeReport PROCEDURE

WMFQue QUEUE ! Список хранения .WMF метафайлов

PageImage STRING(64)

END

NextEntry BYTE(1) ! Счетчик элементов списка

Report REPORT,PREVIEW(WMFQue.PageImage) ! REPORT с PREVIEW-атрибутом

DetailOne DETAIL

! Поля документа

END

END

ViewReport WINDOW('View Report'),AT(0,0,320,200),MDI,MAX,HVSCROLL

IMAGE(''),AT(0,0,320,180),USE(?ImageField)

BUTTON('View Next Page'),AT(0,180,60,20),USE(?NextPage),DEFAULT

BUTTON('Print Report'),AT(80,180,60,20),USE(?PrintReport)

BUTTON('Exit Without Printing'),AT(160,180,60,20),USE(?ExitReport)

END

CODE

OPEN(Report)

SET(SomeFile) ! Процедура создания документа

LOOP

NEXT(SomeFile)

IF ERRORCODE() THEN BREAK.

PRINT(DetailOne)

END

ENDPAGE(Report)

OPEN(ViewReport) ! Открыть окно просмотра документа

GET(WMFQue,NextEntry) ! Прочесть первый элемент списка

?ImageField{PROP:text} = WMFQue.PageImage ! Прочесть первую страницу

ACCEPT

CASE ACCEPTED()

OF ?NextPage

NextEntry += 1 ! Увеличить счетчик элементов списка

IF NextEntry > RECORDS(WMFQue) ! Проверка на конец документа

CYCLE

END

GET(WMFQue,NextEntry) ! Прочесть следующий элемент списка

?ImageField{PROP:text} = WMFQue.PageImage! Прочесть следующую страницу

DISPLAY ! и вывести ее на экран

OF ?PrintReport

Report{PROP:flushpreview} = TRUE ! “Сбросить” файлы на принтер

BREAK ! и выйти из процедуры

OF ?ExitReport

BREAK ! Выйти из процедуры

END

END

CLOSE(ViewReport) ! Закрыть окно

FREE(WMFQue) ! Освободить очередь

CLOSE(Report) ! Закрыть REPORT (удаляя .WMF файлы)

RETURN ! и вернуться в точку вызова

Смотри также: ENDPAGE, PAGENO, PROP:NextPageNo

 

RANGE (установить границы диапазона)

RANGE(нижний предел,верхний предел)

RANGE Задает допустимый диапазон значений данных, которые пользователь может выбрать в поле SPIN или диапазон значений, отображаемый в поле PROGRESS.

нижний предел Числовая константа, которая указывает нижнюю границу (включительно) диапазона допустимых значений (PROP:RANGELow, эквивалетно {PROP:Range,1}).

верхний предел Числовая константа, которая указывает верхнюю границу (включительно) диапазона допустимых значений (PROP:RANGEHigh, эквивалетно {PROP:Range,2}).

Атрибут RANGE (PROP:RANGE) задает допустимый диапазон значений данных, которые пользователь может выбрать в поле SPIN. А также он определяет диапазон значений, который отображается в поле PROGRESS. Этот атрибут работает совместно с атрибутом STEP, обеспечивая пользователя в поле SPIN значениями для выбора.

PROP:RangeHigh возвращает "+Бесконечность" если не установлен RANGE. PROP:RangeLow возвращает "-Бесконечность", если не установлен RANGE.

Атрибуты PROP:RangeLow и PROP:RangeHigh также применимы для объектов LIST и COMBO с вертикальными полосами прокрутки (Только для чтения). PROP:RangeLow возвращает нижний предел возможных значений PROP:VScrollPos, а PROP:RangeHigh возвращает верхний предел. Описания пределов и границ для PROP:VScrollPos справедливы, если число записей в списке просмотра меньше или равно количеству видимых строк (т.е. для загруженной страницы просмотра).

Пример:

WinOne WINDOW,AT(0,0,160,400)

SPIN(@N4.2),AT(280,0,20,20),USE(SpinVar1),RANGE(.05,9.95),STEP(.05)

SPIN(@n3),AT(280,0,20,20),USE(SpinVar2),RANGE(5,995),STEP(5)

END

 

READONLY (установить поле только для вывода данных)

READONLY

Атрибут READONLY (PROP:READONLY) указывает, что в поле типа COMBO, ENTRY, SPIN или TEXT данные только выводятся. С помощью мыши на поле можно переключить фокус, но вводить данные нельзя. Если пользователь попытается изменить отображаемые данные, то звуковой сигнал предупредит его о невозможности ввода данных в это поле.

 

REPEAT (установить коэффициент повтора действия кнопки)

REPEAT( продолжительность )

REPEAT Задает коэффициент генерации события.

продолжительность Целочисленная константа, указывающая коэффициент в сотых долях секунды.

Атрибут REPEAT (PROP:REPEAT) задает коэффициент генерации события для автоматически повторяющихся кнопок. Для поля BUTTON с атрибутом IMM это коэффициент генерации для EVENT:Accepted. Для поля SPIN это коэффициент генерации для EVENT:NewSelection, создаваемого с помощью spin-кнопок.

Присвоение нуля (0) свойству PROP:REPEAT сбрасывает настройки в умолчальные, любое другое устанавливает коэффициент для объекта.

Пример:

MDIChild WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL

BUTTON('Press Me'),AT(10,10,40,20),USE(?PressMe),IMM,REPEAT(100) !1 раз в сек.

SPIN(@n3),AT(60,10,40,10),USE(SpinVar),RANGE(0,999),REPEAT(100) !1 раз в сек.

END

CODE

OPEN(MDIChild)

?PressMe{PROP:Delay} = 50 !Установить задержку в 1/2 секунды

?SpinVar{PROP:Delay} = 50 !Установить задержку в 1/2 секунды

?PressMe{PROP:Repeat} = 5 !Установить время повторения в 5 сотых секунды

?SpinVar{PROP:Repeat} = 5 !Установить время повторения в 5 сотых секунды

Смотри также: IMM, DELAY

 

REQ (установить обязательное поле)

REQ

Атрибут REQ (PROP:REQ) указывает, что поле ENTRY, TEXT, COMBO или SPIN нельзя оставить пустым или нулевым. Значения этих полей с атрибутом REQ, не проверяются до тех пор, пока не будет нажата кнопка BUTTON, имеющая атрибут REQ, или не произойдет обращение к процедуре INCOMPLETE().

Когда нажата кнопка BUTTON, имеющая атрибут REQ, или произошло обращение к процедуре INCOMPLETE(), проверяются все поля с атрибутом REQ, чтобы убедиться в том, что все они содержат данные. Фокус ввода переключается на первое выявленное при этой проверке пустое поле.

Смотри также: INCOMPLETE, BUTTON

 

RESET (установить сброс итогов)

RESET(подраздел)

RESET Сбрасывает в ноль (0) значение CNT, SUM, AVE, MIN или MAX.

подраздел Метка BREAK-структуры.

Атрибут RESET (PROP:RESET) определяет раздел документа, в котором производится сброс (обнуление) итогового значения CNT, SUM, AVE, MIN или MAX. PROP:RESET возвращает ноль (0), если не присутствует, в противном случае - глубину вложенности подраздела.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(Pre:Key1)

HEADER,AT(0,0,6500,1000)

STRING('Group Head'),AT(3000,500,1500,500),FONT('Arial',18)

END

Detail DETAIL,AT(0,0,6500,1000)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000)

STRING('Group Total:'),AT(5500,500,1500,500)

STRING(@N$11.2),AT(6000,500,500,500),USE(Pre:F1),SUM,RESET(Break1)

END

END

END

 

RESIZE (переменная высота элемента TEXT)

RESIZE

Атрибут RESIZE (PROP:RESIZE) указывает, что высота поля TEXT изменяется в соответствии количеством данных, которое в нем следует напечатать. Максимальная высота определяется атрибутом AT.

Параметр высота в атрибуте AT структур DETAIL, HEADER или FOOTER, содержащий поле TEXT не должен быть установлен так (оставьте по умолчанию), чтобы атрибут RESIZE смог иметь какой-либо эффект.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Detail DETAIL,AT(0,0,6500,) !Высота Detail по умолчанию

STRING(@N$11.2),AT(500,500,500,),USE(Pre:F1)

TEXT,AT(500,1000,500,5000),USE(Pre:Memo1),RESIZE !Высота печати вплоть до 5"

END

END

 

RIGHT (установить положение меню)

RIGHT

Атрибут RIGHT (PROP:Right) указывает, что меню помещается на правый край линейки меню.

 

ROUND (установить скругление углов у поля BOX)

ROUND

Атрибут ROUND (PROP:ROUND) указывает, что поле BOX имеет скругленные углы.

 

RTF (объявить поле TEXT как RichEdit)

RTF( назначение )

RTF Объявляет поле TEXT с атрибутом RTF.

назначение Байтовая величина или метка соответствия, указывающая, что указанное поле TEXT будет сохранено в поле (TEXT:FIELD или 0) или в файле (TEXT:FILE или 1).

Атрибут RTF объявляет поле TEXT как поле с атрибутами Rich Text Control. Чтобы манипулировать текстом внутри текста Rich, генерируется необходимый код.

Реализация текста Rich в Clarion позволяет сохранять rich текст в поле или отдельном текстовом файле. Минимальный размер назначаемого поля равен 256 символам. Это необходимо для хранения заголовка текста rich. Если поле содержит много форматирующей информации, то вам потребуется поле большего размера.

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

 

SCROLL (установить прокручивающееся поле)

SCROLL

Атрибут SCROLL (PROP:SCROLL) указывает, что, когда происходит скроллинг окна, поле перемещается вместе с окном. Это позволяет создавать “виртуальные” окна, размером больше чем физический экран.

Наличие атрибута SCROLL означает, что положение поля зафиксировано относительно левого верхнего угла виртуального окна, независимо от того, находится это место в поле зрения или нет. Это значит, что по мере скроллинга окна поле появляется на экране.

Если атрибут SCROLL опущен, то поле фиксируется в окне относительно верхнего левого угла видимой части окна. Это означает, что поле сохраняет положение на экране, в то время, когда остальные части окна перемещаются. Это полезно для объектов, которые должны всегда оставаться в поле зрения пользователя (как например кнопки OK и Cancel).

Сочетание в одном окне объектов, имеющих атрибут SCROLL и не имеющих его, может привести к наложению изображения нескольких объектов. Это произойдет вследствие того, что объекты с атрибутом SCROLL перемещаются, а не имеющие этого атрибута остаются на месте. Ситуация наложения объектов является временной и дальнейший скроллинг устраняет ее. Кроме того, наложения при скроллинге можно избежать продуманно размещая поля в окне. Например можно разместить все поля без атрибута SCROLL в нижней части окна, а затем над ними разместить все поля с атрибутом SCROLL располагая их выше и левее или правее. Это создаст окно, которое служит для горизонтального скроллинга (WINDOW должно иметь атрибут HSCROLL, а не VSCROLL или HVSCROLL).

 

SEPARATOR (установить в меню разделительную линию)

SEPARATOR

Атрибут SEPARATOR указывает, что пункт меню является разделительной линией, которая служит для группировки пунктов внутри меню. Для данного пункта может задаваться атрибут USE.

Пример:

ITEM,SEPARATOR,USE(?FileSeprator1)

 

SINGLE (поле TEXT для ввода в одну строку)

SINGLE

Атрибут SINGLE (PROP:SINGLE) указывает, что данные в этот элемент вводятся в одну строку. Это позволяет использовать элемент управления TEXT вместо ENTRY в языках, в которых текст принято записывать справа налево (такие как иврит и арабские языки).

 

SKIP (установить пропуск поля при выборе клавишей Tab)

SKIP

Атрибут SKIP (PROP:SKIP) указывает, что пользователь может обратиться к объекту только с помощью мыши или клавиш ускоренного доступа, но не клавишей Tab. Поле, которое подразумевает ввод в него данных, сохраняет фокус ввода только на протяжении ввода данных и не сохраняет фокус после его окончания. На поля, которые не подразумевают ввода данных фокус не переключается. Такое поведение демонстируют объекты размещенные в панелях управления и инструментов.

Когда курсор мыши располагается в границах объекта, имеющего атрибут SKIP, в строке состояния высвечивается текст, заданный атрибутом MSG этого объекта.

Атрибут SKIP в отчетах указывает, что поле типа STRING или TEXT печатается только если соответствующая ему USE-переменная содержит данные. Если она данных не содержит, то это поле не печатается, а все остальные поля “подтягиваются” вверх, чтобы предотвратить появление пустого места. Наиболее полезно при печати этикеток и адресов. Атрибут SKIP игнорируется ядром печати для полей STRING или TEXT, если верхний или нижний край поля перекрывает другое поле не использующее атрибута SKIP ( или использует SKIP, но содержит данные для печати).

Пример:

CustRpt REPORT,AT(1000,1000,6000,9000),THOUS

Detail DETAIL,AT(0,0,2000,1000) !detail фиксированной высоты

STRING(@s35),AT(250,250,500,),USE(Pre:Name)

STRING(@s35),AT(250,350,500,),USE(Pre:Address1)

STRING(@s35),AT(250,450,500,),USE(Pre:Address2),SKIP !Не печатать если пусто

STRING(@s35),AT(250,550,500,),USE(CityStateZip) !и подтянуть это поле вверх

END

END

 

SMOOTH (установить плавное приращение индикатора степени выполнения)

SMOOTH

Атрибут SMOOTH (PROP:SMOOTH) активирует плавное приращение индикатора степени выполнения (progress) вместо стандартного “блочного” формата. Допустим только для объекта PROGRESS.

 

SPREAD (установить равномерные промежутки между листами)

SPREAD

Атрибут SPREAD (PROP:SPREAD) указывает, что листы TAB в структуре SHEET располагаются через равный промежуток друг от друга.

 

STATUS (установить наличие линейки состояния)

STATUS( [ширина] )

STATUS Задает наличие в окне линейки состояния.

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

Атрибут STATUS (PROP:Status) указывает наличие линейки состояния в основании окна APPLICATION или WINDOW. Линейка состояния для MDI-окна всегда высвечивается внизу окна APPLICATION. Для окна без атрибута MDI линейка состояния высвечивается внизу самого окна. Если в структуре APPLICATION или WINDOW отсутствует атрибут STATUS, то линейка состояния для такого окна не выводится.

Линейку состояния можно с помощью параметра ширина разделить на ряд областей. Размер каждой области задается в условных единицах, если только атрибутом THOUS, MM или POINTS не задана другая единица измерения. Отрицательное значение означает, что область расширяемая, но имеет минимальную ширину, указанную абсолютной величиной параметра. Если параметр ширина не указан, то создается линейка состояния из одной расширяемой области без ограничения минимального размера, что соответствует записи STATUS(-1).

PROP:STATUS содержит ширину каждой области в отдельном элементе массива. Значение ноль (0) обязательно должно быть последним элементом для завершения массива.

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

Текст может быть размещен (или получен) во время работы программы в любой зоне линейки состояния присвоением свойству PROP:StatusText. Это свойство является массивом, включающем в себя текст каждой области линейки состояния. Значение ноль (0) обязательно должно быть последним элементом для завершения массива. Текст отображается на линейке состояния до тех пор, пока не будет замещен другим текстом.

Пример:

! Окно APPLICATION с линейкой состояния из одной области:

MainWin APPLICATION,STATUS

END

!Окно с двумя областями в линейке состояния:

Win1 WINDOW,STATUS(160,160)

END

CODE

OPEN(Win1)

Win1{PROP:STATUS,3} = 160 !Добавить область в линейку состояния

Win1{PROP:STATUS,4} = 0 !и завершить массив

Win1{PROP:StatusText,3} = 'Hello Zone 3' !Поместить текст в новую область

Смотри также: MSG

 

STD (установить стандартное действие)

STD(действие)

STD Задает стандартное в Windows действие.

действие Целочисленная константа или мнемоническое имя, указывающее идентификатор стандартного действия в Windows.

Атрибут STD (PROP:STD) указывает, что поле выполняет некоторое стандартное в Windows действие. Это действие автоматически выполняется библиотечной процедурой и для этого поля не генерируется никаких событий (т.е. объект не получает события EVENT:Accepted).

Операторы EQUATE для мнемонических имен, обозначающих стандартные в Windows действия, содержатся в файле EQUATES.CLW. Неполный перечень этих операторов (полный список см. в файле EQUATES.CLW ):

STD:WindowList Список открытых MDI окон

STD:TileWindow Расположить окна рядом

STD:CascadeWindow Расположить окна каскадом

STD:ArrangeIcons Упорядочить пиктограммы

STD:HelpIndex Оглавление справочной системы

STD:HelpSearch Окно поиска в справочной системе

Пример:

MDIChild WINDOW('Child One'),MDI,SYSTEM,MAX

MENUBAR

MENU('Edit'),USE(?EditMenu)

ITEM('Undo'),USE(?UndoText),KEY(CtrlZ),STD(STD:Undo)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut)

ITEM('Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy)

ITEM('Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste)

END

END

TOOLBAR

BUTTON('Cut'),USE(?CutButton),ICON(ICON:Cut),STD(STD:Cut)

BUTTON('Copy'),USE(?CopyButton),ICON(ICON:Copy),STD(STD:Copy)

BUTTON('Paste'),USE(?PasteButton),ICON(ICON:Paste),STD(STD:Paste)

END

END

 

STEP (установить приращение значения в поле SPIN)

STEP(приращение)

STEP Задает приращение (или уменьшения) текущего значения в поле SPIN для атрибута RANGE.

приращение Числовая константа, указывающая величину приращения (или уменьшения).

Атрибут STEP (PROP:STEP) задает величину на которую увеличивается или уменьшается значение поля SPIN в пределах диапазона допустимых значений. По умолчанию значение приращения равно 1.0

Пример:

WinOne WINDOW,AT(0,0,160,400)

SPIN(@N4.2),AT(280,0,20,20),USE(SpinVar1),RANGE(.05,9.95),STEP(.05)

SPIN(@N3),AT(280,0,20,20),USE(SpinVar2),RANGE(5,995),STEP(5)

SPIN(@T3),AT(280,0,20,20),USE(SpinVar3),RANGE(1,8640000),STEP(6000)

END

 

STRETCH (растягивание объекта OLE)

STRETCH

Атрибут STRETCH (PROP:STRETCH, только для записи) указывает, что объект OLE растягивается таким образом, чтобы заполнять всю область, определенную атрибутом AT поля-контейнера. При этом пропорции объекта не сохраняются.

 

SUM (установить итоговое значение)

SUM( [ переменная ] )

SUM Находит сумму значений USE-переменных элементов типа STRING.

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

Атрибут SUM (PROP:SUM) инициирует вывод на печать суммы значений, принимаемых USE-переменной поля STRING. Если атрибут TALLY не указан, то подсчет ведется следующим образом:

• SUM-поле структуры DETAIL увеличивается всякий раз, когда DETAIL выводится на печать оператором PRINT. Этим обеспечивается “текущее” итоговое значение.

SUM-поле структуры FOOTER раздела документа (FOOTER внутри BREAK) увеличивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из структуры BREAK, в которую (BREAK) входит STRING-поле. Этим обеспечивается получение суммы значений переменной в разделе документа.

SUM-поле структуры FOOTER страницы документа увеличивается всякий раз, когда оператором PRINT выводится на печать любая DETAIL из любой BREAK. Этим обеспечивается получение суммы значений переменной в странице документа.

Бессмысленно помещать SUM-поле в структуру HEADER, поскольку в тот момент, когда HEADER выводится на печать, ни одной DETAIL еще не напечатано.

Значение SUM обнуляется только тогда, когда вместе с SUM указан один из атрибутов RESET или PAGE.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Total:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(Pre:F1),SUM(LocalVar),RESET(Break2)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Grand Total:'),AT(5500,500)

STRING(@N$11.2),AT(6000,500),USE(LocalVar),SUM,TALLY(?BreakTwo)

END

END

END

 

SYSTEM (установить наличие системного меню)

SYSTEM

Атрибут SYSTEM (PROP:System) задает наличие в окне APPLICATION или WINDOW системного меню Windows (иначе называемого управляющим меню). Это меню содержит стандартные для Windows пункты, как-то Close, Minimize, Maximize (данное окно) и Switch To (переключиться на другое окно). Реальное доступность этих пунктов для данного окна зависит от значений атрибутов, указанных для него.

Пример:

! Окно APPLICATION с системным меню:

MainWin APPLICATION,SYSTEM

END

! Окно WINDOW с системным меню:

Win1 WINDOW,SYSTEM

END

 

TALLY (установить общее число вычислений)

TALLY( точки )

TALLY Указывает, когда производить вычисление AVE, CNT, MAX, MIN и SUM.

точки Разделенные запятыми имена структур DETAIL и/или BREAK для которых вычисляются итоговые результаты.

Атрибут TALLY (PROP:TALLY) задает, когда производить вычисление AVE, CNT,MAX, MIN и SUM. Соответствующие вычисления производятся всякий раз, когда печатается какая либо из перечисленных в списке точки структура DETAIL или для структуры BREAK происходит изменение контролируемого значения.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Break1 BREAK(LocalVar),USE(?BreakOne)

Break2 BREAK(Pre:Key1),USE(?BreakTwo)

HEADER,AT(0,0,6500,1000),USE(?GroupHead)

STRING('Group Head'),AT(3000,500,1500,500),FONT('Arial',18)

END

Detail DETAIL,AT(0,0,6500,1000),USE(?DetailOne)

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1)

END

END

FOOTER,AT(0,0,6500,1000),USE(?BreakOneGroupFoot)

STRING('Group Total:'),AT(5500,500,1500,500)

STRING(@N$11.2),AT(6000,500,500,500),USE(Pre:F1),CNT,TALLY(Break2)

END

END

END

CODE

OPENCustRpt)

CustRpt$?Pre:F1{PROP:Tally} = ?BreakOne ! Изменить подсчет на Break1

 

THOUS, MM, POINTS (выбор единицы измерений координат документа)

THOUS

MM

POINTS

Атрибуты THOUS, MM, POINTS указывают в каких единицах измерения будет производиться отсчет координат при размещении полей структуры REPORT. Используя динамические свойства, эти единицы измерения координат также могут быть применены в структуре WINDOW.

THOUS (PROP:THOUS) устанавливает единицу измерения в одну тысячную долю дюйма, MM (PROP:MM) устанавливает единицу измерения в один миллиметр, POINTS (PROP:POINTS) устанавливает единицу измерения в один пункт (как по вертикали, так и по горизонтали 72 пункта составляют один дюйм).

Если ни один из атрибутов не присутствует, то по умолчанию измерения производятся в условных единицах. За условные единицы принимаются одна четверть усредненной ширины символа и одна восьмая его усредненной высоты. Ясно, что величина условной единицы зависит от установленного для документа шрифта по умолчанию. За основу измерений берется либо шрифт, указанный FONT-атрибутом документа, либо системный шрифт по умолчанию, указанный Windows.

 

TILED (установить подложку окна в виде повторяющегося изображения)

TILED

Атрибут TILED (PROP:TILED) обозначает, что изображение показанное в объекте IMAGE, окне или панели управления в качестве фона (указанного в атрибуте WALLPAPER), отображается в заданном по умолчанию размере и многократно повторяется для полной заливки клиентской области окна, панели управления или зоны указанной атрибутом AT объекта IMAGE.

Пример:

WinOne WINDOW,AT(,,380,200),MDI

IMAGE('MyWall.GIF'),AT(0,0,380,200),TILED

END

MDIChild WINDOW('Child One'),MDI,SYSTEM,MAX

MENUBAR

MENU('Edit'),USE(?EditMenu)

ITEM('Undo'),USE(?UndoText),KEY(CtrlZ),STD(STD:Undo)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut)

ITEM('Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy)

ITEM('Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste)

END

END

TOOLBAR,USE(?Toolbar),WALLPAPER('MyWall.GIF'),TILED

BUTTON('Cut'),USE(?CutButton),ICON(ICON:Cut),STD(STD:Cut),FLAT

BUTTON('Copy'),USE(?CopyButton),ICON(ICON:Copy),STD(STD:Copy),FLAT

BUTTON('Paste'),USE(?PasteButton),ICON(ICON:Paste),STD(STD:Paste),FLAT

END

END

WinOne WINDOW,AT(,,380,200),MDI,WALLPAPER('MyWall.GIF'),TILED

END

Смотри также: CENTERED, WALLPAPER

 

TIMER (установить генерацию перидических событий)

TIMER(интервал)

TIMER Задает генерацию периодических событий.

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

Атрибут TIMER (PROP:Timer) устанавливает генерацию периодических событий (EVENT:Timer) по истечении заданного параметром интервал времени. Процедура FOCUS() возвращает номер управляющего поля, на которое переключен фокус ввода.

Если окно, имеющее атрибут TIMER не в фокусе, когда происходит EVENT:Timer, окно, которое имеет фокус, получает EVENT:Suspend раньше,чем окно с атрибутом TIMER получает EVENT:Timer. После того, как произойдет EVENT:Suspend в окне, имеющем фокус, перед всеми событиями, генерируемыми в в этом окне, генерируется событие EVENT:Resume; последнее (EVENT:Resume) не порождается, пока не завершится какое- либо событие, происходящее в этом окне (окно в ожидании и таймерные события продолжают обрабатываться до тех пор пока существует активный процесс в окне с фокусом).

Значение таймера имеет тип UINT. Clarion IDE ограничивает значение таймера до 65365. Если требуется большая величина, то необходимо использовать оператор присвоения свойству.

Пример:

RunClock PROCEDURE

ShowTime LONG

TimerValue UNSIGNED

! Окно генерацией периодического события через каждую секунду:

Win1 WINDOW,TIMER(100)

STRING(@T4),USE(ShowTime)

END

CODE

OPEN(Win1)

!Вы можете также установить TIMER динамически подобно этому:

!TimerValue = 100000 !задержка через 1000 секунд

!Win1{PROP:TIMER} = TimerValue

ShowTime = CLOCK()

ACCEPT

CASE EVENT()

OF EVENT:Timer

ShowTime = CLOCK()

DISPLAY

END

END

CLOSE(Win1)

Смотри также: Event:Timer

TIP (установить текст “всплывающей” подсказки)

TIP( строка )

TIP Указывает, что строка выводится как “всплывающая” подсказка, когда курсор мыши задерживается на экранном объекте.

строка Строковая константа, которая задает выводимый текст и то, как этот текст форматирован (одной или несколькью строками).

Атрибут TIP (PROP:Tip) какого-либо экранного объекта, задает текст, который выводится как “всплывающая” подсказка, когда курсор мыши задерживается на этом объекте. Хотя явного ограничения на длину строки нет, строка (или любая одиночная строка в мультистроковой подсказке) должна все же помещаться на экране.

Существуют соглашения для мультистроковых подсказок для TIP() и его свойства – {PROP:Tip}=:

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

'Line1'& CHR(10)&'Line2' !CHR(10) = Line Feed

'Line1<13,10>Line2' !<13,10> = Carriage Return, Line Feed

'Line1<10>Line2' !<10> = Line Feed

Хотя этот атрибут допустим для любого экранного объекта, на который может переключаться фокус, чаще всего он используется с кнопками BUTTON, имеющими атрибут ICON и располагающимися на панели инструментов. Текст “всплывающей” подсказки позволяет пользователю быстро определить назначение кнопки, не обращаясь к системе диалоговой помощи.

Автоматический вывод текста, задаваемого атрибутом TIP, для любого отдельного экранного объекта можно отменить, установив PROP:NoTips, необъявленное свойство в единицу (1). Можно отменить автоматический вывод подсказки и для всего приложения, установив в единицу свойство PROP:NoTips для встроенной переменной SYSTEM.

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

Пример:

Win WINDOW,AT(0,0,160,400)

TOOLBAR

BUTTON('E&xit'),USE(?MainExitButton),ICON(ICON:hand),TIP('Exit Window')

BUTTON('&Open'),USE(?OpenButton),ICON(ICON:Open),TIP('Open'<10>'a File')!мультистроковая

!подсказка

END

COMBO(@S8),AT(120,120,20,20),USE(?C1),FROM(Q1:F2)

ENTRY(@S8),AT(100,200,20,20),USE(E2)

END

 

TOGETHER (установить, что печать идет на одной странице)

TOGETHER

Атрибут TOGETHER (PROP:Together) устанавливает, что вывод на печать структуры DETAIL, или HEADER (раздела), или FOOTER (раздела) (HEADER и FOOTER внутри BREAK) будет производиться только на одну страницу, а не автоматически разделяться при нехватке пространтсва. Обычно используется для структур с несколькими строками, которые необходимо печатать вместе, как почтовую этикетку.

Пример:

CustRpt REPORT

TitlePage DETAIL !Титульная страница структуры detail

!элементы структуры

END

CustDetail DETAIL,TOGETHER !Печатать все элементы detail вместе

! элементы структуры

END

FOOTER

! элементы структуры

END

END

 

TOOLBOX (установить поведение TOOLBOX)

TOOLBOX

Атрибут TOOLBOX (PROP:Toolbox) указывает, что окно “всегда сверху” и может быть прижато к краю, если также присутствует атрибут DOCK. Ни само окно, ни объекты в нем не удерживают фокус ввода. В этом случае поведение объектов в окне выглядит как если бы все они имели атрибут SKIP.

Обычно окно с атрибутом TOOLBOX раскрывается в своем собственном исполняемом процессе, чтобы обеспечить набор инструментов для активного окна. Когда курсор мыши указывает на объект, значение атрибута MSG этого объекта выводится в строке состояния.

Пример:

PROGRAM

MAP

UseTools

Tools

END

MainWin APPLICATION('My Application')

MENUBAR

MENU('File'),USE(?FileMenu)

ITEM('E&xit'),USE(?MainExit),LAST

END

MENU('Edit'),USE(?EditMenu)

ITEM('Use Tools'),USE(?UseTools)

END

END

END

Pre:Field STRING(400)

UseToolsThread BYTE

ToolsThread BYTE

CODE

OPEN(MainWin)

ACCEPT

CASE ACCEPTED()

OF ?MainExit

BREAK

OF ?UseTools

UseToolsThread = START(UseTools)

END

END

UseTools PROCEDURE ! Процедура, использующая панель инструментов

MDIChild WINDOW('Use Tools Window'),MDI

TEXT,HVSCROLL,USE(Pre:Field)

BUTTON('&OK'),USE(?Exit),DEFAULT

END

CODE

OPEN(MDIChild) ! Открыть окно

DISPLAY ! и вывести данные

ToolsThread = START(Tools) ! Открыть панель инструментов

ACCEPT

CASE EVENT() ! Проверить определенные пользователем события

OF 401h ! для объектов на панели инструментов

!присоединить дату к концу поля

Pre:Field = CLIP(PRE:Field) & ' ' & FORMAT(TODAY(),@D1)

OF 402h

!присоединить время к концу поля

Pre:Field = CLIP(PRE:Field) & ' ' & FORMAT(CLOCK(),@T1)

END

CASE ACCEPTED()

OF ?Exit

POST(400h,,ToolsThread) ! Дать сигнал закрыть панель инструментов

BREAK

END

END

CLOSE(MDIChild)

Tools PROCEDURE ! Процедура обработки панели инструментов

Win1 WINDOW('Tools'),TOOLBOX

BUTTON('Date'),USE(?Button1)

BUTTON('Time'),USE(?Button2)

END

CODE

OPEN(Win1)

ACCEPT

IF EVENT() = 400h THEN BREAK. ! Проверить сигнал закрыть панель инструментов

CASE ACCEPTED()

OF ?Button1

POST(401h,,UseToolsThread) ! Дать сигнал поставить дату

OF ?Button2

POST(402h,,UseToolsThread) ! Дать сигнал поставить время

END

END

CLOSE(Win1)

Смотри также: DOCK

 

TRN (установить вывод элемента на прозрачном фоне)

TRN

Атрибут TRN (PROP:TRN) элемента управления указывает, что символы выводятся на “прозрачном” фоне, не изменяя общего фона, на котором располагается поле. На экран или отчет выводятся только точки, необходимые для формирования символа. Это позволяет выводить строку поверх поля IMAGE, не нарушая фонового изображения.

Пример:

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

FORM,AT(0,0,6500,9000)

IMAGE('PIC.BMP'),USE(?I1)AT(0,0,6500,9000) !Картинка во всю страницу

! Строка на прозрачном фоне:

STRING('String Constant'),AT(10,0,20,20),USE(?S1),TRN

END

END

WinOne WINDOW,AT(0,0,160,400)

IMAGE('PIC.BMP'),USE(?I1),FULL ! Картинка во все окно

! Строка на прозрачном фоне

STRING('String Constant'),AT(10,0,20,20),USE(?S1),TRN

END

 

UP, DOWN (установить ориентацию ярлычков листов)

UP

DOWN

Атрибуты UP (PROP:UP) и DOWN (PROP:DOWN) элемента управления SHEET задают ориентацию заголовка элемента TAB. UP указывает, что значение параметра текст на листах выводится вертикально для чтения снизу вверх, тогда как DOWN определяет, что текст читается сверху вниз. Если указаны и UP, и DOWN, то текст выводится “вверх ногами” (PROP:UpsideDown).

Пример:

MDIChild WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL

SHEET,AT(0,0,320,175),USE(SelectedTab),RIGHT,DOWN !Страницы выводятся справа

!сверху вниз

TAB('Tab One'),USE(?TabOne)

PROMPT('Enter Data:'),AT(100,100,20,20),USE(?P1)

ENTRY(@S8),AT(100,140,32,20),USE(E1)

PROMPT('Enter More Data:'),AT(100,200,20,20),USE(?P2)

ENTRY(@S8),AT(100,240,32,20),USE(E2)

END

PROMPT('Enter Data:'),AT(100,100,20,20),USE(?P3)

ENTRY(@S8),AT(100,140,32,20),USE(E3)

PROMPT('Enter More Data:'),AT(100,200,20,20),USE(?P4)

ENTRY(@S8),AT(100,240,32,20),USE(E4)

END

BUTTON('Ok'),AT(100,180,20,20),USE(?Ok)

BUTTON('Cancel'),AT(200,180,20,20),USE(?Cancel)

END

 

USE (задать для поля метку соответствия или переменную)

USE( | метка | [,номер] [,метка соответствия] )

| переменная |

USE Задает переменную или метку соответствия поля.

метка Мнемоническая метка соответствия, предназначенная для того, чтобы ссылаться на это поле в исполняемых операторах. Она должна начинаться со знака вопроса (?) и удовлетворять всем требованиям допустимой метки Clarion.

переменная Переменная, принимающая введенное в поле значение. Если не задан параметр метка соответствия, то метка этой переменной (со знаком вопроса спереди - ?VariableLabel) становится меткой соответствия для объекта.

номер Целочисленная константа, которая указывает номер присваиваемый компилятором метке соответствия для этого поля (PROP:Feq, эквивалетно {PROP:USE,2}) .

метка соответствия

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

Атрибут USE (PROP:USE) задает для поля или структуры переменную или метку соответствия.

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

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

Для двух или более полей с одинаковым значением атрибута USE в одном окне APPLICATION или WINDOW создадутся одинаковые метки соответствия полей; когда компилятор обнаруживает такую ситуацию, он удаляет для всех этих полей метки соответствия. Предупреждая возникновение неоднозначности относительно того, на какое поле в действительности делается ссылка, компилятор делает невозможными ссылки на эти поля в исполняемых операторах. Однако такой подход позволяет сознательно создавать такую ситуацию для того, чтобы вывести содержимое одной переменной в нескольких полях с разными шаблонами. Вы можете избежать такой ситуации путем использования параметра метка соответствия в этих объектах.

Запись в PROP:USE изменяет значение атрибута USE для присвоенного имени переменной. Чтение возвращает значение текущей USE-переменной. PROP:Feq устанавливает и возвращает номер для объекта.

Использование в окнах

Для некоторых полей в качестве параметра атрибута USE допускается только метка соответствия, но не имя переменной. Это такие поля как: PROMPT, IMAGE, LINE, BOX, ELLIPSE, GROUP, RADIO, REGION, MENU, BUTTON или TOOLBAR. Атрибут USE обеспечивает для поля переменную, в которую заносятся введенные пользователем в поле данные. Это относится к следующим полям: ITEM с атрибутом CHECK, и полям ENTRY, OPTION, SPIN, TEXT, LIST, COMBO, CHECK, и CUSTOM.

PROP:ListFeq это эквивалент {PROP:USE,3} и устанавливает метку соответствия поля для выпадающего списка объекта COMBO или объекта LIST с атрибутом DROP. Смотри также: PROP:Selected

PROP:ButtonFeq это эквивалент {PROP:USE,4} и устанавливает метку соответствия поля для кнопки выпадающего списка объекта COMBO (не допустим для объекта выпадающего списка).

Использование в отчетах

Для некоторых полей и структур в качестве параметра атрибута USE допускается только метка соответствия, но не имя переменной. Это такие поля как: IMAGE, LINE, BOX, ELLIPSE, GROUP, RADIO, FORM, BREAK, DETAIL, HEADER и FOOTER.

Атрибут USE обеспечивает для поля переменную, в которую заносятся введенные пользователем в поле данные. Это относится к следующим полям: OPTION, TEXT, LIST, CHECK и CUSTOM. Поле STRING может использоваться либо как метка соответствия поля либо как переменная.

Всем полям и структурам в отчете компилятором автоматически присваивается номер. По умолчанию номера присваиваются в порядке возрастания начиная с единицы (1) всем объектам в отчете. Параметр USE-атрибута номер позволяет указать желаемый номер, который компилятор присвоит полю или структуре. Этот номер становится отправной точкой для последовательного присвоения номеров меткам соответствия тех полей и структур, в USE-атрибутах которых отсутствует параметр номер. Номера таким структурам или полям присваиваются в порядке возрастания (или убывания), начиная с номера установленного последним.

Пример:

MainWin APPLICATION('My Application'),SYSTEM,MAX,ICON('MyIcon.ICO'),STATUS

MENUBAR

MENU('&File'),USE(?FileMenu)

ITEM('&Open...'),USE(?OpenFile)

ITEM('&Close'),USE(?CloseFile),DISABLE

ITEM('E&xit'),USE(?MainExit)

END

END

TOOLBAR,USE(?Toolbar)

BUTTON('Exit'),USE(?MainExitButton)

ENTRY(@S8),AT(100,160,20,20),USE(E2)

ENTRY(@S8),AT(100,200,20,20),USE(E3,100) !номер поля 100

ENTRY(@S8),AT(100,240,20,20),USE(E2,,?Number2:E2) !

END

END

CustRpt REPORT,AT(1000,1000,6500,9000),THOUS

Detail DETAIL,AT(0,0,6500,1000),USE(?Detail) !detail линейного пункта

STRING('Group Total:'),AT(5500,500,1500,500),USE(?Constant) !метка соответсвия поля

STRING(@N$11.2),AT(6000,1500,500,500),USE(Pre:F1) !USE-переменной

END

END

CODE

OPEN(MainWin)

DISABLE(?E2) !Затушевать первое вводимое поле

DISABLE(100) !Затушевать второе вводимое поле

DISABLE(?Number2:E2) !Затушевать третье вводимое поле

PrintRpt(CustRpt,?Detail) !Передать отчет и метку соответствия detail печатающей процедуре

ACCEPT

END

PrintRpt PROCEDURE(RptToPrint,DetailNumber)

CODE

OPEN(RptToPrint) !Открыть переданный отчет

PRINT(RptToPrint,DetailNumber) !Напечатать эту detail

CLOSE(RptToPrint) !Закрыть переданный отчет

Смотри также: Метки соответствия полей

 

VALUE (значение, присваиваемое USE-переменной для RADIO или CHECK)

VALUE( | строка | )

| истинное значение , ложное значение |

VALUE Задает значение, присваиваемое USE-переменной структуры OPTION, когда пользователь включает данную кнопку RADIO или значения, назначаемые USE-переменной элемента CHECK, во включенном и выключенном состоянии.

строка Строковая константа, содержащая значение, присваиваемое USE-переменной структуры OPTION.

истинное значение Строковая константа, содержащая значение, назначаемое USE-переменной элемента CHECK, во включенном состоянии (PROP:TrueValue, эквивалентно {PROP:Value,1}).

ложное значение Строковая константа, содержащая значение, назначаемое USE-переменной элемента CHECK, в выключенном состоянии (PROP:FalseValue, эквивалентно {PROP:Value,2}).

Атрибут VALUE (PROP:VALUE) в структуре OPTION задает значение, которое автоматически присваивается USE-переменной этой структуры, когда пользователь включает данную кнопку RADIO. В этом случае значение этого атрибута используется вместо параметра текст кнопки RADIO.

В элементе управления CHECK этот атрибут автоматически задает значения, назначаемые USE-переменной элемента CHECK, во включенном и выключенном состоянии. Они переопределяют используемые по умолчанию ноль и единицу.

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

Свойство PROP:VALUE может также быть использовано в объектах ENTRY, SPIN или COMBO, чтобы запросить величину, которая должна быть установлена в USE-переменную процедурой UPDATE (или когда объект теряет фокус) без реального модифицирования USE-переменной. Если это произойдет, то сгенерируется событие EVENT:Rejected.

 

Пример:

Win WINDOW,AT(0,0,180,400)

OPTION('Option 1'),USE(OptVar1),MSG('Pick One or Two')

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1),VALUE('10') ! В OptVar1 заносится 10

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),VALUE('20') ! В OptVar1 заносится 20

END

OPTION('Option 2'),USE(OptVar2),MSG('Pick One or Two')

RADIO('Radio 1'),AT(120,0,20,20),USE(?R1),VALUE('10') ! В OptVar2 заносится '10'

RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),VALUE('20') ! В OptVar2 заносится '20'

END

CHECK('Check 1'),AT(160,0),USE(Check1),VALUE('T','F')

END

 

VERTICAL (установить вертикальное положение индикатора степени выполнения)

VERTICAL

Атрибут VERTICAL (PROP:Vertical) позволяет объекту индикатора степени выполения (progress) отображаться по мере выполнения снизу вверх. Если индикатор находится в горизонтальном положении (слева направо), то вы должны его соответственно переместить. Допустим только для объекта PROGRESS.

VCR (установить кнопки управления как у видеомагнитофона)

VCR( [поле] )

VCR Устанавливает для поля типа LIST или COMBO кнопки управления списком, подобные клавишам управления видеомагнитофоном.

поле Метка соответствия поля, которая задает поле типа ENTRY, которое используется для ввода поискового значения - локатора поля типа LIST или COMBO (PROP:VcrFeq, эквивалентно {PROP:VCR,2}). Объект ENTRY в структуре WINDOW должен объявляться впереди объектов LIST или COMBO.

Атрибут VCR (PROP:VCR) задает для поля типа LIST или COMBO кнопки управления списком, подобные клавишам управления видеомагнитофоном. Кнопки в стиле управления видеомагнитофоном влияют на прокрутку данных в окне списка LIST или COMBO. Семь кнопок, высвечиваемых атрибутом VCR:

|< На начало списка (EVENT:ScrollTop)

<< На страницу вверх (EVENT:PageUp)

< На строку вверх (EVENT:ScrollUp)

? Определить место (EVENT:Locate)

> На строку вниз (EVENT:ScrollDown)

>> На страницу вниз (EVENT:PageDown)

>| На конец списка (EVENT:ScrollBottom)

Параметр поле именует поле, которое получает фокус, когда пользователь нажимает кнопку ?. Когда пользователь вводит данные в поле локатора, списки LIST или COMBO “прокручиваются” к ближайшему подходящему вхождению. Если ни один параметр поле не задан, кнопка ? все равно появляется, но ничего не делает. Чтобы она даже не появлялась, вы можете установить значение PROP:VCR на TRUE вместо того, чтобы добавлять атрибут VCR в список управляющих полей LIST или COMBO.

Пример:

MDIC WINDOW('Child One'),AT(0,0,320,200),MDI,MAX,HVSCROLL

LIST,AT(140,0,20,20),USE(?L1),FROM(Que),HVSCROLL

ENTRY(@S8),AT(100,200,20,20),USE(E2) ! Поле локатора для L2

LIST,AT(140,100,20,20),USE(?L2),FROM(Que),HVSCROLL,VCR(?E2) ! VCR с активным

!локатором

END

CODE

OPEN(MDIC)

?L1{PROP:VCR} = TRUE ! кнопки VCR без ?

ACCEPT

END

 

WALLPAPER (установить изображение фона)

WALLPAPER(изображение)

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

изображение Символьная константа, содержащая имя файла, содержащего изображение.

Атрибут WALLPAPER (PROP:WALLPAPER) определяет отображаемое в качестве фона инструментальной панели или клиентской области окна изображение. Изображение масштабируется (растягивается) для полной заливки панели или окна, если только не заданы атрибуты TILED и CENTERED.

Пример:

MDIChild WINDOW('Child One'),MDI,SYSTEM,MAX

MENUBAR

MENU('Edit'),USE(?EditMenu)

ITEM('Undo'),USE(?UndoText),KEY(CtrlZ),STD(STD:Undo)

ITEM('Cu&t'),USE(?CutText),KEY(CtrlX),STD(STD:Cut)

ITEM('Copy'),USE(?CopyText),KEY(CtrlC),STD(STD:Copy)

ITEM('Paste'),USE(?PasteText),KEY(CtrlV),STD(STD:Paste)

END

END

TOOLBAR,USE(?Toolbar),WALLPAPER('MyWall.GIF')

BUTTON('Cut'),USE(?CutButton),ICON(ICON:Cut),STD(STD:Cut),FLAT

BUTTON('Copy'),USE(?CopyButton),ICON(ICON:Copy),STD(STD:Copy),FLAT

BUTTON('Paste'),USE(?PasteButton),ICON(ICON:Paste),STD(STD:Paste),FLAT

END

END

WinOne WINDOW,AT(,,380,200),MDI,WALLPAPER('MyWin.GIF')

END

Смотри также: CENTERED, TILED

 

WITHNEXT (предотвратить отрыв от последующих)

WITHNEXT( [сородичи] )

WITHNEXT Указывает, что структура будет всегда напечатана на той же странице,что и последующие, выведенные на печать оператором PRINT, структуры.

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

Атрибут WITHNEXT (PROP:WITHNEXT) указывает, что одна из структур DETAIL, HEADER раздела или FOOTER раздела (HEADER и FOOTER - внутри BREAK) будет всегда напечатана на одной странице вместе с указанным числом последующих, выведенных на печать оператором PRINT, структур. Тем самым гарантируется, что структура никогда не будет напечатана на странице отдельно, в отрыве от последующего текста. Отрыв от последующего текста означает, что, например, верхний колонтитул раздела или первый экземпляр DETAIL из группы текстуально объединенных экземпляров напечатан на одной странице, а связанный с ним последующий текст выведен на другую страницу.

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

Пример:

CustRpt REPORT

Break1 BREAK(SomeVariable)

HEADER,WITHNEXT(2) ! Всегда печатается с 2 сородичами

! элементы структуры

END

CustDetail DETAIL,WITHNEXT() ! Всегда печатается с 1 сородичем

! элементы структуры

END

FOOTER

! элементы структуры

END

END

END

 

WITHPRIOR (предотвратить отрыв от предыдущих)

WITHPRIOR( [сородичи] )

WITHPRIOR Указывает, что структура будет всегда напечатана на той же странице, что и предыдущие, выведенные на печать оператором PRINT, структуры.

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

Атрибут WITHPRIOR (PROP:WITHPRIOR) указывает, что одна из структур DETAIL, HEADER раздела или FOOTER раздела (HEADER и FOOTER - внутри BREAK) будет всегда напечатана на одной странице вместе с указанным числом предшествующих, выведенных на печать оператором PRINT, структур. Тем самым гарантируется, что структура никогда не будет напечатана на странице отдельно, в отрыве от предшествующего текста. Отрыв от предшествующего текста означает, что, например, нижний колонтитул раздела или последний экземпляр DETAIL из группы текстуально объединенных экземпляров напечатан на новой странице, а связанный с ним предшествующий текст выведен на предыдущей странице.

Если указан, параметр сородичи определяет сколько предшествующих структур должно быть напечатано на странице. При подсчете учитываются те предшествующие структуры, которые поступают из одной и той же, или из вложенной в нее, BREAK-структуры. Эти структуры должны быть связаны текстуально. Если структуры - не из той же, или вложенной в нее, BREAK-структуры, то они выводятся на печать, но не учитываются при подсчете числа сородичей.

Пример:

CustRpt REPORT

Break1 BREAK(SomeVariable)

HEADER

! элементы структуры

END

CustDetail DETAIL,WITHPRIOR() ! Всегда печатается с 1 сородичем

! элементы структуры

END

FOOTER,WITHPRIOR(2) ! Всегда печатается с 2 сородичами

! элементы структуры

END

END

END

 

WIZARD (установить SHEET без листов)

WIZARD

Атрибут WIZARD (PROP:WIZARD) указывает, что все листы данного набора сразу не выводятся. Это позволяет программе управлять переходом пользователя от листа к листу в заданном порядке (обычно с помощью кнопок “Next” и “Previous”).

 

ZOOM (пропорциональное изменение размеров объекта OLE)

Атрибут ZOOM (PROP:ZOOM, только для записи) указывает, что объект OLE пропорционально изменяет размеры, указанные атрибутом AT заполняя пространство элемента-контейнера.


Знаете ли Вы, что Polymorphism, полиморфизм в объектно-ориентированном программировании - это способность объекта выбирать правильный метод в зависимости от типа данных, полученных в сообщении.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution