Мнемонические имена свойств атрибутов
Каждый из атрибутов, задающий мнемонические имена свойств во время исполнения программы, имеет собственное описание (
PROP:атрибут) и все они содержатся в файле PRORERTY.CLW. Кроме того, в этом файле содержатся мнемонические имена стандартных значений, используемых для некоторых из этих свойств. Некоторые свойства допускают только чтение и их значения нельзя изменить, другие допускают только запись в них значения, нельзя определить их текущее значение. Эти ограничения называется применяемыми.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(),@D
2) !Поместить дату во вторую секцию:?CtlCode{PROP:ALRT,1} = F10Key
!Назначить Ctl:Code горячую клавишу F10?CtlCode{PROP:Text} = '@N
4' !Изменить шаблон вводимого поля?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
(установить печать страницы без страничного 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 !
Перед событием alertCYCLE
!Назначает стандартное поведение мыши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, но которая открывается после того, как уже открыто окно APPLICAT
ION.Параметры ширина и высота задают размер “клиентской области” или “рабочего пространства” в окне 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 !1
1 дюйм отступа по периметру
!
страницы размера 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
переменная Имя числовой переменной, куда заносится промежуточное значение вычисляемого среднего. Позволяет создавать обобщенные итоги по таким полям. Значение в переменной модифицируется непосредственно “ядром печати”, поэтому его можно использовать только в структурах отчета.
Атрибут
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, позволяющую ввести прописные буквы в середине слова (позволяя ввести имя типа “McDowel
l”,) или нажав клавишу 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 !
Окно центрируется относительно окна APPLICATIONEND
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
Указать цвет отображаемый на экране или печатаемый в отчете (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: красный=000000
FFh, зеленый = 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)
!
!
Синий фон, зеленый передний план для активизируемых полей, и красный фон для них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 (PROP:COLUMN) задает размеры выделенной полосы-курсора в окне списка или комбинированном окне списка с несколькими столбцами выводимых данных. PROP:Column возвращает ноль (0) если выключен, в противном случае возвращает номер текущего выделенного столбца.COMPATIBILITY(установить режим совместимости объекта OLE)
COMPATIBILITY(
режим )COMPATIBILITY
режим Целочисленная константа для значения установки.
Атрибут
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 Стрелки в направлении запад – восток
Пример
:!
окно с курсором customWinTwo 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-beamREGION,AT(100,100,20,20)
END
установить экранную кнопку для клавиши 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(затушевать объект) (установить, что 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(указывает положение прижатия 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(?Button
1) !Прижато к верху при открытии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') !
Таблица ExcelMENUBAR
MENU('&Clarion App')
ITEM('&Deactivate Object'),USE(?DeactOLE)
END
END
END
END
установить для окна тип рамки)
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 является многоцелевым хранилищем, используемом для хранения сгененированных отчетов в файле 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)
!
Цвет рамки активного окна WindowsBOX,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
Задает шрифт, используемый для 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 (
PROPLIST:Item). Эти свойства исключают необходимость в создании новой строки форматирования только для того, чтобы изменить одно свойство отдельного поля в окне списка.Все эти свойства представляют собой массивы, для которых, чтобы явно указать на какое поле окна списка или поля COMBO это свойство влияет, следом за мнемоническим именем свойства нужно явно указать номер элемента массива, отделив его запятой. Все они содержат пустую строку (‘’), если пропущены и единицу (1) – если присутствуют.
Пример
:PROGRAM
MAP
DisplayList PROCEDURE
PrintList PROCEDURE
RandomAlphaData PROCEDURE(*STRING)
END
TreeDemo QUEUE !
Очередь списка данных для FROMFName STRING(20)
ColorNFG LONG(COLOR:White) !
Обычный передний цвет для FNameColorNBG LONG(COLOR:Maroon) !
Обычный цвет фон FNameColorSFG LONG(COLOR:Yellow) !
Активный передний цвет для FNameColorSBG LONG(COLOR:Blue) !
Цвет активного цвета для FNameIconField 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) !
Печатаемый передний цвет для FNameColorSBG1 LONG(COLOR:White) !
Печатаемый фон для FNameLName STRING(20)
ColorNFG2 LONG
ColorNBG2 LONG
ColorSFG2 LONG(COLOR:Black) !
Печатаемый передний цвет для LNameColorSBG2 LONG(COLOR:White) !
Печатаемый фон для LNameInit STRING(4)
ColorNFG3 LONG
ColorNBG3 LONG
ColorSFG3 LONG(COLOR:Black) !
Печатаемый передний цвет для Init
ColorSBG3 LONG(COLOR:White) !
Печатаемый фон для InitWage REAL
ColorNFG4 LONG
ColorNBG4 LONG
ColorSFG4 LONG(COLOR:Black) !
Печатаемый передний цвет для WageColorSBG4 LONG(COLOR:White) !
Печатаемый фон для WageEND
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)
() свойства стилейСледующие свойства используются для устанавки множества стилей доступных для колонок с модификатором
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, но могут быть использованы для динамического изменения вида объектов 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
() Свойства, связанные с действиями мышью в окне списка
С помощью следующих свойств можно получить положение курсора мыши внутри поля 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, чтобы скрыть/показать текущее окно.Смотри также:
HIDEHLP (установить идентификатор диалоговой справки)
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 задают наличие линеек скроллинга на структрурах 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
Задает пиктограмму, которая должна выводиться 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 (PROP:LANDSCAPE) в структуре REPORT означает, что по умолчанию вывод документа на печать будет производится в “альбомном” режиме. Если атрибут LANDSCAPE отсутствует, то по умолчанию вывод документа на печать будет производится в “портретном” режиме.Пример
:Report REPORT,PRE('Rpt'),LANDSCAPE !
Режим по умолчанию “ альбомный”!
Структура документаEND
(установить ориентацию окна)
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') !
Таблица ExcelMENUBAR
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 (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
обнуляется только тогда, когда вместе с 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:M
DI, только для чтения) задает структуру 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) указывает, что выбранный в данный момент элемент выделяется, только когда на окно списка переключен фокус ввода.(не учитывается регистр в отчетах в 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 (PROP:NOSHEET) структуры SHEET указывает, что листы выводятся неупорядоченными. Тем самым создается эффект “плавающих” листов.ВА
7 УПРАВЛЯЮЩИЕOPEN (открыть из файла объект для поля OLE )
OPEN(
объект )OPEN
объект Строковая константа, содержащая имя файла и объекта в нем, который следует открыть.
Атрибут
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
очередь Метка структуры 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
нижний предел Числовая константа, которая указывает нижнюю границу (включительно) диапазона допустимых значений (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
переменная высота элемента 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 имеет скругленные углы.(объявить поле TEXT как RichEdit)
RTF(
назначение )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)
(поле 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
(PROP:SMOOTH) активирует плавное приращение индикатора степени выполнения (progress) вместо стандартного “блочного” формата. Допустим только для объекта PROGRESS.EAD (установить равномерные промежутки между листами)
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
•
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:TimerTIP (установить текст “всплывающей” подсказки)
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 (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 (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:SelectedPROP: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) !
номер поля 100ENTRY(@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:E
2) !Затушевать третье вводимое полеPrintRpt(CustRpt,?Detail
) !Передать отчет и метку соответствия detail печатающей процедуреACCEPT
END
PrintRpt PROCEDURE(RptToPrint,DetailNumber)
CODE
OPEN(RptToPrint
) !Открыть переданный отчетPRINT(RptToPrint,DetailNumber) !
Напечатать эту detailCLOSE(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 заносится 10RADIO('Radio 2'),AT(140,0,20,20),USE(?R2),VALUE('20') !
В OptVar1 заносится 20END
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 (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) !
Поле локатора для L2LIST,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-структуры. Эти структуры должны быть связаны текстуально. Если структуры - не из той же, или вложенной в нее, BREA
K-структуры, то они выводятся на печать, но не учитываются при подсчете числа сородичей.Пример
: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
установить SHEET без листов)
WIZARD
Атрибут
WIZARD (PROP:WIZARD) указывает, что все листы данного набора сразу не выводятся. Это позволяет программе управлять переходом пользователя от листа к листу в заданном порядке (обычно с помощью кнопок “Next” и “Previous”).
ZOOM (пропорциональное изменение размеров объекта OLE)
Атрибут
ZOOM (PROP:ZOOM, только для записи) указывает, что объект OLE пропорционально изменяет размеры, указанные атрибутом AT заполняя пространство элемента-контейнера.