Домой Классы Статические функции Перечисления (ENUM) Записи (RECORD)

{Form|_containing_controls}


(включая защищенные члены)

CLASS {Form|_containing_controls} , UNTESTED, DESTRUCTORS :


Класс формы. Предназначен для создания ваших наследников, в которых определяется состав компонентов формы и переопределяются методы для организации обработки событий формы и её компонентов. В визуальной библиотеке AL-IV, все визуальные компоненты размещаются в колонках, а колонки - на форме. Более вложенные иерархии не допускаются, исключая слишком сложные конфигурации формы, которые не могут быть нормально отображены на маленьких экранах.


IMPORT : {Configuration} , {String_functions} .


----------------------------------------------------- 'создание / закрытие'

STR Alias|_form

Строковое "прозвище" формы. Может быть полезно для различения форм оператором CASE.


{Control} Child|ren|_controls[] , READ

Список дочерних контролов формы (не колонок, а именно всех контролов на всех колонках).


INT Handle|_native , READ

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


{Screen} Screen_|object_ , INIT

Ссылка на объект класса {Screen} (который должен быть единственным в приложении).



METHOD modal|_dialog_dummy ==> BOOL , CALLBACK


Возвращает TRUE для класса-наследника {Dialog}, который создан для реализации модальных форм.

BOOL in_construct|_LOCAL



METHOD Close|_form_ignored_if_a_child_modal_form_is_active


Закрывает форму. Если форма главная, приложение завершается (корректный способ).


------------------------------------------------ 'нативный дескриптор окна'

INT local_window_handle


 

METHOD Window_handle ==> INT , DEPRECATED('Platform dependent')


Дескриптор окна формы. Не путайте его с дескриптором нативного объекта формы. Данный дескриптор окна используется в ОС Windows (MS) для идентификации окон.


METHOD Show_application_button|_for_the_form (
     
BOOL Value|_show ) , DEPRECATED('Platform dependent')



------------------------------------------------------ 'заголовок, границы'

STR local_caption|_set_last



METHOD Caption|_form ==> STR


Строка заголовка формы.


METHOD Set_caption ( STR V|alue_caption ) , SETTER FOR Caption


Смена заголовка формы.

BOOL No_frame|_was_set , READ

Установка (или снятие) для формы режима "без рамки". Эта опция зависит от целевой платформы и может быть просто проигнорирована.


 

METHOD Set_no_frame (
     
BOOL Value_no_frame|_flag ) , DEPRECATED('Platform dependent')


BOOL No_borders , READ

Установка (или снятие) для формы режима "без границы". Эта опция зависит от целевой платформы и может быть просто проигнорирована.


 

METHOD Set_no_borders|_around_columns (
     
BOOL No_b|orders_flag_affecting_only_columns_created_after_this_call ) , DEPRECATED('Platform dependent')



METHOD Start_move|_form_dragging_it_by_mouse , DEPRECATED('Platform dependent')


Перевод формы в режим "перемещения" по экрану с помощью мыши. Эта операция очень зависит от платформы (используется только в Windows). Вызывайте метод только в ответ на событие mouse_down.


METHOD Set_alpha|_transparency_0opaque_1invisible (
     
REAL Tran|sparency_value_0_to_1 ) , DEPRECATED('Platform dependent')


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

BOOL Custom_colors , READ

Установка цветов формы.


INT Custom_foreground|_color , READ


INT Custom_background|_color , READ


  

METHOD Set_colors ( INT Fore_color , INT Back_color )



FUNCTION Set_autoscroll|_for_all_forms_created_later (
     
BOOL Autoscroll )



-------------------------------------------------------- 'позиция и размер'

{rect} local_form_bounds


  

METHOD Bounds|_of_form_in_points ==> {rect}


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


METHOD Set_bounds ( {rect} V|alue_new_bounds )



METHOD Left|_position_points ==> REAL


Левая координата формы на всем доступном экране. В некоторых случаях координаты могут быть отрицательными.


METHOD Set_left ( REAL L|eft_points ) , SETTER FOR Left


Установка левой координаты формы.


METHOD Top|_position_points ==> REAL


Верхняя координата формы . В некоторых случаях координаты могут быть отрицательными.


METHOD Set_top|_position ( REAL T|op_points ) , SETTER FOR Top


Установка верхней координаты формы.


ENUMERATION {positioning} :

        'KEEP_ON_SCREEN|_AND_SAME_DISPLAY' ,

        'CENTER_ON_SCREEN|_IGNORE_L_T_VALUES' ,

        'POSITION_AS_IS|_BY_L_T_VALUES' .


Возможные опции позиционирования.


METHOD Set_position (
     
REAL L|eft_position ,
     
REAL T|op_position ,
     
{positioning} Options|_positions )


Установка левой верхней координаты формы на экране.


FUN Exclude_taskbar (
     
{rect} R|ectagle ) ==> {rect} , DEPRECATED('Platform dependent')


REAL want_width|_to_set


REAL want_height|_to_set


 

METHOD Width|_points ==> REAL


Ширина формы.


METHOD Set_width ( REAL W|idth_points ) , SETTER FOR Width


Установка ширины формы.


METHOD Height|_points ==> REAL


Высота формы.


METHOD Set_height ( REAL H|eight_points ) , SETTER FOR Height


Установка высоты формы.


ENUMERATION {sizing|_options} :

        'FIT_TO_DISPLAY' ,

        'FIT_TO_DESKTOP' ,

        'SIZE_AS_IS|_BY_W_H_VALUES' .


Возможные опции изменения размера формы.


METHOD Set_size|_of_form (
     
REAL Set_width|_points_if_negative_dont_change ,
     
REAL Set_height|_points_if_negative_dont_change ,
     
{sizing} Options|_sizing )


Установка размера формы.


METHOD Stay_on_top|_of_Z_order ( BOOL Top|most_form )


Установка для формы режима "поверх всех".


METHOD Set_size_min|imal (
     
REAL Width|_max_640_pixels ,
     
REAL Height|_max_480_pixels ) , DEPRECATED('Platform dependent')



------------------------------------------ 'store monitors local (for C&S)'

{rect} local_monitors[]



------------------------------------------------------- 'клиентский размер'


METHOD Client_width ==> REAL


Ширины клиентской области формы.


METHOD Client_height ==> REAL


Высота клиентской области формы.


METHOD Client_pos|ition ==> {point}


Верхняя левая координата клиентской области формы относительно всей формы.


METHOD Set_client_size (
     
REAL W|idth_points ,
     
REAL H|eight_pointts ,
     
{sizing} Options|_sizing )


Установка размера формы на основе желаемого размера клиентской области формы.


------------- 'перетаскивание файлов, запуск другого экземпляра приложения'


METHOD command|_handling_see_parameters , CALLBACK


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


METHOD accept|_files_drop ==> BOOL , CALLBACK


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


----------------------------------------------------------- 'события формы'

Переопределение метода 'command' позволяет обрабатывать события запуска других экземпляров приложения. При этом список параметров запущенного экземпляра становится доступен через функции Count_param, Parameter из {System_functions}. Стобы событие command работало, и обеспечивался единственный экземпляр приложения, следует вместо класса {Screen} в функции Main визуального приложения использовать класс {Single_instance}.

Переопределение метода 'accept' позволяет обрабатывать события бросания файлов на форму (в результате перетаскивания мышью). Если ваш 'accept' возвращает TRUE, набор файлов считается допустимым и последующее отпускание клавиши мыши модет приводить к срабатыванию события 'command' для обработки собственно бросания списка файловс на форму. Сам список файлов доступен через функции Count_param и Parameter класса {System_functions} (при этом параметр с индексом 0 не используется).

{Control} sender_|for_event_or_NONE_if_sender_is_a_column_or_a_form_



METHOD sender|_control_NONE_if_form_itself_or_menu ==> {Control}


Отправитель события. Обычно это контрол формы. Если NONE, то отправитель либо сама форма, либо пункт меню.


METHOD sender_alias|_useful_in_CASEs ==> STR


Строковый идентификатор (alias) отправителя события. В случае контрола - это его Alias. В случае пункта меню - его идентификатоо (до двоеточия). Если отправитель - сама форма, строка пустая.


--------------------------------------------------- 'activate / deactivate'


METHOD activated|_form_event , CALLBACK


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


METHOD deactivated|_form_event , CALLBACK , UNCOOKED


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


--------------------------------------------------- 'отображение / скрытие'

BOOL local_form_visible


 

METHOD Visible|_form ==> BOOL


TRUE если форма видимая.


METHOD Hidden|_form ==> BOOL



METHOD Show|_form


Отображает форму.


METHOD Hide|_form


Скрывает форму.


METHOD shown|_form_event , CALLBACK


Метод для переопределения, вызвается для обработки события отображения формы. Такое событие может быть вызвано не сразу после вызова метода Show (это зависит от платформы и ОС), но некоторые операции срабатывают только когда форма уже действительно отображена на экране.


ENUMERATION {reason_closing} :

        'USER|_CLOSES_FORM' ,

        'PROGRAM|_CLOSES_FORM' ,

        'SHUTDOWN|_SYSTEM_OR_USER_LOGOFF' .


Возможные причины закрытия формы.

{reason_closing} reason_closing|_LOCAL


BOOL Do_not_close|_even_on_shutdown|_preventing_system_to_restart_or_shutdown



METHOD closing|_form_event ==> {action} , CALLBACK


События, вызываемое перед закрытием формы. Теоретически, можно отказаться от закрытия формы, возвратив {action}.'DECLINE'. Но не во всех случаях это обязяно сработать. Например, в слкчае принудительного завершения работы такой ответ будет проигнорирован.

BOOL is_closed

TRUE если форма видимая.


 

METHOD closed|_form_event , CALLBACK


BOOL Closed|_do_not_try_show_it_again , READ

TRUE если форма закрыта. После закрытия формы ее нельзя больше отобразить.



------------------------------------------------------ 'сообщения / вопрос'


METHOD message|_show ( STR Text|_show ) , PUBLIC


Метод для отображения некоторого текстового сообщения, обычно в отдельном диалоговом окне.


METHOD ask|_question_yes_no ( STR A|nswer_text ) ==> BOOL , PUBLIC


Метод для задания вопроса, имеющего 2 возможных ответа (Да / Нет) и ожидания ответа от пользователя.


--------------------------------------------- 'child modal dialog (single)'

{Form} current_modal_dialog_|child_to_this_form_



METHOD Current_modal_dialog ==> {Form}


Возвращает текуший подчиненный модальный диалог. Только один модальный диалог может быть активным для формы.


-------------------------------------------------------------------- 'меню'

Для создания и вызова всплывающего меню используется метод Popup_menu. Его единственный параметр - это строка, состоящая из определний пунктов меню, разделённых символами конца строки. Удобно использовать задание многострочной строчной константы с перфиксным символом @. В этом случае символ возврата каретки добавляется автоматически, если строка завершается строчным литералом. Для организации вложенных меню, следом за пунктом, являющимся родительским, должна быть отдельно расположена строка, содержащая только символ "(". Аналогично, строка ")" завершает уровень. Каждая строка, соответствующая пункту меню, может (и должна) начинаться с префикса вида "ИДЕНТИФИКАТОР:" (двоеточие отделяет назначенный пункту меню синоним от текста пункта меню, следующего за двоеточием). Так же, возможно указание вместе с синонимом дополнительных атрибутов через запятую: disabled, checked. Например:

  Popup_menu(@
  "COPY,disabled:	&Copy	[Ctrl-C]"
  "CUT,disabled:	C&ut	[Ctrl-X]"
  "PASTE:		&Paste	[Ctrl-V]"
  "-"
  "Mode..."
  "("
    "AUTO,checked:	&Auto"
    "Manual:		&Manual"
  ")"
  "EXIT:		&Exit")

Отдельная строка "-" создаёт визуальный разделитель групп (обычно отображается как горизонтальная линия в меню). Одиночный символ "&" в определении пункта меню задаёт символ-ускоритель для быстрого выбора элемента (нажатием ALt+следующий символ). Но в некоторых средах этот символ просто игнорируется (Java). Для использования самого символа '&' в тексте меню, его следует удвоить. Для обработки пунктов меню следует переопределить обработчик menu:
OVERRIDE menu(STR Alias) : ...

STR menu_alias|_or_column_alias_returned_as_sender_alias

Текстовая метка пункта меню, который активирован (в методе menu_item). Когда меню определяется в виде набора строк текста, часть строки до символа ':' определяет его метку (но если строка, соответсвующая пункту меню, не содержит символ ':', то вся строка пункта меню считается одновременно и его "меткой").



METHOD menu_item|_click , CALLBACK


Событие, которое вызывается, когда пользователь "кликает" пункт меню. Используйти CASE по переменной menu_alias для переключения между ветвями, обслуживающими различные пункты меню. Или, можно использовать функцию sender_alias, которая в случае события menu_item возвращает значение переменной menu_item.


METHOD popup_menu|_show ( STR Menu|_definition )


Метод для отображения меню. Строковый параметр Menu определяется как набор строк, разделенных символами #NL. Каждая строка относится к отдельному пункту меню и имеет форму:
МЕТКА[,disabled][,checked]:ТЕКСТ где МЕТКА - это текстовая метка, используемая для ссылки на пункт меню;
,disabled - это необязательная строка, которая означает, что пункт меню выглядит "серым" и недоступен для клика по нему;
,checked - необязательная строка текста, означающая, что пункт меню имеет визуальный флажок в состоянии "отмечено";
Так же, специальные строки '(' и ')' используются для организации вложенных подменю.
E.g.: "File"#NL"("#NL"O:Open"#NL"C:Close"#NL")"#NL"View"#NL"("#NL"All"#NL")"#NL

BOOL tracking_menu_sel|ection


 

METHOD Track_submenu_items_select|ion ( BOOL Track|_submenu )



---------------------------------------------------- 'управление колонками'

INT columns|_handles[]


STR aliases|_columns[]


BOOL aligns|_labels_in_columns[]


    

ENUMERATION {layout|_on_form} :

        'CENTER||CLIENT|_ALIGNED' ,

        'LEFT|_ALIGNED' ,

        'RIGHT|_ALIGNED' ,

        'TOP|_ALIGNED' ,

        'BOTTOM|_ALIGNED' .


Доступные выравнивания для колонок.


METHOD Column_layout|_by_its_alias (
     
STR Alias|_of_column ) ==> {layout}



STRUCTURE {sizes_col|umn}

      REAL Width|_points

      REAL Label|_width_points

      BOOL Align_right|_labels

      STR Nested_in|_parent_column_alias .


Доступные выравнивания для колонок.


FUNCTION DEFAULT_SIZES|_FOR_COLUMN ==> {sizes_col}


Размеры для колонки по умолчанию, для передачи в качестве третьего параметра в вызове new_column - то же, что и просто передать генератор новой структуры типа {sizes_col} без присваивания каких-либо значений ее полям. Например:
new_column(..., ..., {sizes_col})


METHOD Columns_count ==> INT


Общее количество колонок на форме.


METHOD Column_alias|_by_index (
     
INT Index|_of_column INDEXING STR ) ==> STR



METHOD new_column (
     
STR Alias|_of_column ,
     
{layout} Layout|_column ,
     
{sizes_col} Sizes|_column )


Создание колонки.


METHOD initial_column|_called_internally , CALLBACK



METHOD Column_handle ( STR Alias|_of_column ) ==> INT


STR Current_column|_alias , READ

Текущая колонка (используется как неявный параметр в некоторых операциях с колонками).



METHOD Set_current_column (
     
STR Alias|_column ) , SETTER FOR Current_column


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


-------------------------------- 'align TOP/BOTTOM aligned column controls'

         

ENUMERATION {controls_layout|_mainly_for_horizontal_columns} :

        'CONTROLS_LEFT||CONTROLS_DEFAULT' ,

        'CONTROLS_RIGHT|_ALIGNED' ,

        'CONTROLS_CENTER|_ALIGNED' ,

        'CONTROLS_JUSTIFY||CONTROLS_JUSTIFIED' ,

        'CONTROLS_LEFT_LAST_RIGHT' ,

        'CONTROLS_TOP_TO_BOTTOM' ,

        'CONTROLS_VERTICAL_2|_COLUMNS' ,

        'CONTROLS_LEFT_LABELS_ABOVE' .



METHOD Current_column_layout ==> {controls_layout}



METHOD Column_controls_layout (
     
STR Alias|_of_column ) ==> {controls_layout}



METHOD Set_column_controls_layout ( {controls_layout} CL|ayout_set )



METHOD Column_uses_margins ( STR Alias|_of_column ) ==> BOOL



METHOD Set_column_margins ( STR Alias|_column , BOOL Use_margins )



METHOD column_hidden|_dummy (
     
STR Alias|_of_column_dummy ) ==> BOOL , CALLBACK


Метод для переопределения, используется как обработчик события, которое вызыввается для каждой колонки, чтобы определить, является ли она скрытой на фориме. В отличие от контролов, нет необходимости предварительно задавать список колонок, которые могут становиться скрытыми: опрос происходит последовательно для каждой колонки на форме, в обработчике события Any_change. Если событие не переопределено, или не прописан ответ для какой-либо колонки, то такая колонка остается видимой всегда.


METHOD Column_width|_by_alias ( STR Col|umn_alias ) ==> REAL


Ширина колонки.


METHOD Set_column_width|_use_only_for_LEFT_RIGHT_aligned (
     
REAL New_width )


Установка ширина колонки. Эта операция применима только для колонок, выровненных влево ('LEFT'), вправо ('RIGHT') или по центру ('CENTER'), и не применима к колонкам, выровненных по верхнему ('TOP') или нижнему ('BOTTOM') краю.


METHOD Set_column_width_by_alias|_use_only_for_LEFT_RIGHT_aligned (
     
STR Col|umn_alias ,
     
REAL New_width )



METHOD Set_column_label_width ( REAL L|abel_widht )


Установка ширина метки текущей колонки. В каждой строке колонки (кроме выровненных вверх - 'TOP' или вниз - 'BOTTOM') может размещаться контрол и его метка (где метка также является контролом класса {Label}). Но контрол-метка, размещаемая слева от контрола, должна по размеру вписываться в заданную этим методом ширину метки колонки, иначе она размещается в отдельной строке, выше контрола, к которому она относится. Контрол, расширенный вниз (Set_anchor_bottom(TRUE)) всегда размещается в отдельной строке. Всегда возможно форсировать размещение метки в отдеьной строке (например, добавив после метки еще одноу - пустую - метку). Если ширина метки колонки задана равной -1, то в колонке метки всегда размещаются в отдельных строках.


METHOD Column_height|_by_alias ( STR Col|umn_alias ) ==> REAL


Высота текущей колонки.


METHOD Set_column_height|_use_only_for_BOTTOM_TOP_aligned (
     
REAL New_height )


Установка высоты колонки. Эта операция применима только к колонкам, выровненным вверх ('TOP') или вниз ('BOTTOM').


METHOD Set_column_height_by_alias|_use_only_for_BOTTOM_TOP_aligned (
     
STR Col|umn_alias ,
     
REAL New_height )



METHOD Set_column_auto_arrange|_controls (
     
BOOL Enable|_auto_arrange_TRUE_is_default )


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


FUN Set_default_font|_for_all_forms_created_later (
     
{Screen} Screen|_holder ,
     
STR Face|_font ,
     
REAL Size|_font )



METHOD Set_column_font|_default_for_controls (
     
STR Face|_font ,
     
REAL Size|_font ,
     
STR Styles|_font )


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


---------------------------------------- 'configuration for mobile devices'


ENUMERATION {mobile_config|uration} :

        'SINGLE_TOP_BOTTOM' ,

        'ALL_TOP_BOTTOM|_VISIBLE_SWIPE_IF_NEEDED' .


Доступные опции видимости колонок для случая мобильных устройств. 'SINGLE_TOP_BOTTOM' означает, что одновременно может быть отображаена только одна выровненная по верхнему и / или нижнему краю "колонка", и свайпом по такой колонке вниз/вверх пользователь может выбрать, какие именно колонки следует отображить. Опция 'ALL_TOP_BOTTOM' означает, что отображаются все выровненные вверх/вниз колонки, но если при этом форма не вмиещается по вертикали, то свайпингом вверх-вниз форму можно скроллировать, чтобы увидеть невидимые в данный момент ее участки (паннинг).


METHOD Mobile_configuration|_of_form ==> {mobile_config}


Возвращается для формы мобильная конфигурация для колонок, выровненных вверх ('TOP') или вниз ('BOTTOM').


METHOD Set_mobile_configuration|_of_form (
     
{mobile_config} MC|onfiguration_to_set )


Установка для формы мобильной конфигурация для колонок, выровненных вверх ('TOP') или вниз ('BOTTOM').


------------------------------------------- 'активный визуальный компонент'


METHOD Get_active|_control ==> {Control}


Возвращает активный контрол формы (находящийся в фокусе ввода).


METHOD Set_active|_control (
     
{Control} C|ontrol_to_activate ) , SETTER FOR Get_active


Устанавливает активный контрол формы (переводит его в фокус ввода с клавиатуры).


----------------------------------------------------- 'события компонентов'

 

METHOD click|_by_mouse_or_finger , CALLBACK


Метод для переопределения в программируемом классе формы. Позволяет обработать событие "клика" по контролу (выполненного кнопкой мыши, клавиатуры, человеческим голосом или другим устройством или методом). Как и для большинства событий, относящихся к контролам, используейте sender и sender_alias для определения того, какой именно контрол инициировал это событие.


METHOD mouse_move|d , CALLBACK


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


METHOD mouse_down , CALLBACK


Метод для переопределения с целью обработки событий нажатия мыши (или других указывающих устройств). Для получения координат курсора мыши используйте метод mouse, для уточнения того, какая кнопка "мыши" была нажата - метод mouse_button.


METHOD mouse_up|pered , CALLBACK


Подобно предыдущему, но для обработки событий отпускания кнопки мыши.


METHOD mouse_double_click|ed , CALLBACK


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


METHOD mouse_wheel|_rotated ==> BOOL


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


METHOD enter|_to_control , CALLBACK


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


METHOD leave|_control , CALLBACK


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


METHOD paint|_picture , CALLBACK


Подобно предыдущим, но для обработки событий рисования контролов (актуально только при наличии контролов класса {Paintbox} или его наследников на форме). Используйте метод отправителя Canvas для получения компонента для рисования в процессе обработки этого события.


METHOD paint_item|_or_subitem , CALLBACK



------------------------------------------------ 'default / cancel buttons'

{Button} Default_button , READ

Текущая кнопка по умолчанию на форме (класса {Button}). Только одна кнопка может быть сделана "кнопкой по умолчанию" на форме. Такая кнопка может быть нажата клавишей ENTER (в случае, если клавиша ENTER не обрабатывается текушим активным контролм для других целей - например, в {Memo} клавиша ENTER может вставлять симолы #NL в текст).



METHOD Set_default|_button (
     
{Button} Def|ault_button_set ) , SETTER FOR Default_button


Установка текущей кнопки по умолчанию на форме.

{Button} Cancel_button , READ

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



METHOD Set_cancel|_button (
     
{Button} Canc|el_button_set ) , SETTER FOR Cancel_button


Установка текущей кнопки отмены на форме.


------------------------------------- 'данные о состоянии указателя (мыши)'


METHOD Get_popup_point ==> {Geometry}.{point}


Возвращает текущие координаты на форме для точки всплытия меню. В зависимости от обрабатываемого события, возвращаются либо точные координаты на форме (при событиях mouse_down, mouse_up, mouse_double_click), либо нижняя левая точка активированного контрола.


METHOD mouse_button|_clicked ==> {button}


Возвращает кнопку мыши, соответствующую обрабатываемому событию мыши.


METHOD mouse|_click_point ==> {point}


Возвращает координаты мыши на форме (в поинтах), при обрабатке событию мыши.


FUNCTION Mouse_cur|sor_position_current ==> {point}


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


FUNCTION Set_mouse_cur|sor_position (
     
{point} New|_position ) , DEPRECATED('Platform dependent')


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


FUNCTION Mouse_pressed|_button (
     
{button} Button|_to_check ) ==> BOOL


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


METHOD vertical_wheel|_pages ==> REAL


Возвращает значение вертикальной прокрутки колеса мыши (актуально при обработке события mouse_wheel). Это вещественное значение со знаком (знак определяет направление прокрутки), которое соответсвует количеству "прокруток", в Windows прокрутка имеет обычно значение 120 (градусов?), и соответствует в настройках колеса мышы обычно 3 строкам текста условно.


METHOD horizontal_wheel|_shift_DUMMY ==> REAL


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


ENUMERATION {button|_mouse} :

        'NO_B|UTTON' ,

        'LMB|_LEFT_MOUSE_BUTTON' ,

        'RMB|_RIGHT_MOUSE_BUTTON' ,

        'MMB|_MIDDLE_MOUSE_BUTTON' ,

        'XB1|_MOUSE_BUTTON' ,

        'XB2|_MOUSE_BUTTON' .


Доступные кнопки мыши.


-------------------------------------------------------------- 'клавиатура'


ENUMERATION {action|_accept_by_default} :

        'ACCEPT|ED_KEY' ,

        'DECLINE|D_KEY' .


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


STRUCTURE {key_info|rmation}

      INT Special|_key_pressed

      STR Char|_pressed

      BOOL Right|_key_ctrl_alt

      BOOL Caps|_lock_key_is_fixed_down||Capital|s

      BOOL Shift|_pressed

      BOOL Ctrl||Control|_pressed

      BOOL Alt|_pressed

      BOOL Win|_pressed

      BOOL Ignore|_do_not_handle .


Данные о нажатии (или отпускании) клавиши на клавиатуре сохраняются в такой структуре, в поле объекта формы Key.

{key_info} Key|_information_LOCAL

Информацио о кнопке клавиатуры (нажатой или отпущенной). Актуальна в процессе обработки событий клавиатуры.



METHOD key_down ==> {action} , CALLBACK


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


METHOD key_up|_release ==> {action} , CALLBACK


Метод для переопределения с целью обработки событий отпускания клавиш на клавиатуре.


METHOD key_press ==> {action} , CALLBACK


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


--------------------------------------- 'Keyboard (w\o events if possible)'


FUNCTION Global_key|_pressed ( INT Key|_of_state ) ==> BOOL


Возвращает TRUE, если указанная клавиша Key была нажата, но не была еще отпущена. Данный метод может быть вызван при обработке любых событий, а не только в обработчиках событий клавиатуры.


----------------------------------------------------------------- 'таймеры'


METHOD timer|_tick_dummy , CALLBACK


Метод для переопределения с целью обработки событий таймера. Как обычно для событий, используйте свойства формы sender или sender_alias для определения того, какой таймер сработал. События таймера обрабатываются вглавном потоке.


------------------------------------------------------- 'события изменений'


METHOD moved|_form_on_screen , CALLBACK


Метод для переопределения с целью обработки событий перемещения формы (пользователем или по какой-либо другой причине) на экране.


METHOD resize|d_control_or_form , CALLBACK


Метод для переопределения с целью обработки событий изменения размеров формы (пользователем или еще по какой-либо причине).


METHOD value_change|d_edit_memo_checkbox_datepicker , CALLBACK


Метод для переопределения с целью обработки событий изменения каких-либо данных в контроле (текста, состояния "отмечен" и т.п.)


METHOD Notify_value_change (
     
{Control} C|ontrol_value_changed_of ) , CALLBACK


Метод для внутренней инициации события value_change (обеспечивает гарантию вызова Any_change по окончании обработки).

INT count_sel_change|_times_called



FUNCTION Notify_sel_change|d_LOCAL_called_from_AL4_form (
     
{Form} Form|_working ) , CALLBACK


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


METHOD selection_change|d_edit_memo_combo_listview_listbox


Метод для переопределения с целью обработки событий изменения области выделения и вызова Any_change по окончании.

BOOL any_change_handling|_LOCAL



METHOD In_any_change|_handler ==> BOOL


Возвращает TRUE, если метод Any_change уже вызван.

INT level_event|_handling_LOCAL


{event} level_inc_on_event_kind , DEBUG


BOOL need_any_change



METHOD Any_change


Метод для обработки события любых изменений в состоянии контролов формы. Именно в нем вызываются методы disabled, hidden и column_hidden для определения того, в каком состоянии (скрыто / недоступно) должны находиться контролы и колонки.

INT suspended_count


BOOL any_change_while_suspended


BOOL adjust_horizontal_controls|_sizes


  

METHOD do_suspend_layout



METHOD Suspend_layout , PUSH


Приостанавливает любые операции переразмещения контролов и колонок на форме. Должен использоваться в заголовке блока PUSH. Метод resume_layout вызывается автоматически (и гарантированно) по окончании работы такого блока.


METHOD resume_layout , POP


Возобновление операций переразмещения контролов и колонок. Этот метод вызывается автоматически по окончании работы блока PUSH, в заголовке которого был вызыван метод Suspend_layout.


METHOD do_resume_layout , CALLBACK



------------------------------- 'события для скрытия / запрета компонентов'

{Control} grayable|_controls_add_here_to_make_it_disabled_in_event_below[]

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



METHOD disabled|_control ==> BOOL , CALLBACK


Метод для переопределения с целью определить для контролов из списка grayable[] условия, при которых они являются недоступными. Не имеет смысл прописывать такие условия для контролов, которые не были добавлены в список grayable[].

{Control} can_hide|_controls_add_here_to_make_hidden_in_event_below[]

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



METHOD hidden|_control ==> BOOL , CALLBACK


Метод для переопределения с целью определить для контролов из списка can_hide[] условия, при которых они являются скрытыми.


METHOD scrolled|_scrollable_control , CALLBACK


Метод для переопределения с целью обработки событий скроллирования содержимого контролов.


-------------------------------------------------- 'long operations dialog'

BOOL Can_stop_long_operation|_set_to_FALSE_to_prevent_dialog_show_and_stop_operation


INT In_long_operation|_level



ENUMERATION {event|_kind} :

        'CLICK|_BY_MOUSE_OR_KEY' ,

        'CLOSING|_FORM' ,

        'CLOSED|_FORM' ,

        'ACTIVATED|_OR_DEACTIVATED' ,

        'GET_INFO' ,

        'VALUE_CHANGE' ,

        'SELECTION_CHANGE' ,

        'RESIZE|_FORM_OR_CONTROL' ,

        'MOVED|_FORM' ,

        'SHOWN|_FORM' ,

        'MOUSE_MOVE' ,

        'MOUSE_DOWN' ,

        'MOUSE_UP' ,

        'MOUSE_DOUBLE_CLICK' ,

        'MOUSE_WHEEL' ,

        'KEY_DOWN' ,

        'KEY_UP|_EVENT' ,

        'KEY_PRESS' ,

        'TIMER|_TICK' ,

        'ANIMATION|_CONTROL' ,

        'MENU|_ITEM_CLICK' ,

        'BEFORE_PAINT' ,

        'PAINT|_CONTROL' ,

        'AFTER_PAINT' ,

        'KEYBOARD_FOCUS' ,

        'SCROLLED|_CONTROL' ,

        'COMMAND|_PARAMETERS' .


Перечисление со списком возможных событий.

{event} Current_event|_kind_to_use_in_long_operation_dialog_in_default_description

Текущее (последнее) обрабатываемое событие.


STR Alias_current_event

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



METHOD Long_operation|_create_if_not_created ==> {Long_operation} , CALLBACK


Метод для доступа к и/или созданию экземпляра класса {Long_operation. Это специальная форма, которая всплывает, когда обнаруживается длинная операция.

{Control} stack_senders[]

Внутренний метод для организации работы с событиями формы.


{event} stack_kinds[]


  

METHOD operation_started|_called_automatically_to_begin_possible_long_operation (
     
{event} Kind|_event ,
     
{Object} Sender|_initiating_operation ) , CALLBACK



METHOD operation_ended|_called_automatically_to_close_long_operation_dialog (
     
{event} Kind|_event_DUMMY ) , CALLBACK


Еще один внутренний метод для организации работы с событиями формы.


METHOD timer_deactivated ( {Timer} T|imer_object_dummy ) , CALLBACK



METHOD enable|_form_this_is_platform_dependent_function (
     
BOOL E|nable_or_disable_when_FALSE )


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


--------------------------------------------------- 'save / restore bounds'

BOOL loaded_bounds|_LOCAL



METHOD Save_bounds (
     
STR App|lication_name ,
     
STR Section|_name ,
     
STR What|_to_save_Left_Top_Width_Height_by_1st_letters )


Сохраняет границы формы в хранилище конфигурации (класса {Configuration}). Необходимо задать непустое имя приложения (App), необязательное имя секции (Section) и перечень сторон для сохранения (W - ширина, H - высота, L - левая сторона, T - верхняя сторона, * или пустая строка в What - все границы).


METHOD Restore_bounds (
     
STR App|lication_name ,
     
STR Section|_name ,
     
STR What|_to_load_Left_Top_Width_Height_by_1st_letters )


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


ENUMERATION {state|_of_form} :

        'NORMAL|_STATE' ,

        'MINIMIZED|_STATE' ,

        'MAXIMIZED|_STATE' .


Возможные состяния формы.

{state} local_form_state


 

METHOD State|_normal_minimized_maximized ==> {state}


Возвращает текущее состояние формы.


METHOD Set_state ( {state} Value|_to_set ) , SETTER FOR State



------------------------------------------------------- 'queue of messages'

INT in_process_count|er

Процессирует все очтавшиеся в очереди события.


 

METHOD Process|_all_messages || Process_all_events



------------------------------------------------ 'for {Dialog} inheritance'

{Form} parent_form_|local_used_with_modal_form_only_

Родительская форма для диалога.


BOOL Ready|_answered , READ

TRUE, если для диалога уже был получен ответ от пользователя.


STR Answer|_set_in_result , READ

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


  

METHOD ready|_answer_modal_call_in_modal_dialogs_to_set_result_and_hide (
     
STR Result_to_set ) , CALLBACK


Метод для вызова из кода диалога для указания ответа на диалог и завершения его работы.


METHOD Show_modal ( {Form} Parent|_form_or_dialog ) ==> STR


Метод для показа модального диалога (форма должна быть унаследована от {Dialog}).


METHOD Get_info|_for_some_controls , CALLBACK



METHOD version_layout|_specially_for_multi_configurations_in_visual_form_designer ==> STR , CALLBACK



--------------------------------------- 'adjusting columns size / position'

      

STRUCTURE {i_rect|angle}

      INT Left|_position

      INT Top|_position

      INT W|idth_size_horizontal

      INT H|eight_size_vertical .



FUN Do_adjust_columns (
     
{Form} F|orm_object ,
     
INT W|idth_client_in_pixels ,
     
INT H|eight_client_in_pixels ) , CALLBACK



STRUCTURE {c_rep|osition_control}

      {Control} Control_|to_reposition_

      {point} Loc|ation

      REAL W|idth_control

      REAL H|eight_control

      BOOL Top_same|_with_next_control .



FUN Do_adjust_controls (
     
{Form} F|orm_object ,
     
INT CH|andle_column ) , CALLBACK



FUN do_adjust_controls (
     
{Form} F|orm_object ,
     
INT CH|andle_column ) ==> BOOL



METHOD Invalidate



---------------------- 'especially for Free Pascal to call from {AL4_form}'

  

FUN do_ask|_question (
     
{Form} Parent_f|orm ,
     
STR Text|_question ,
     
BOOL Ask|_y_n_otherwise_just_OK_button ) ==> BOOL , CALLBACK



METHOD Make_tool_window ( BOOL Yes|_make_tool_window )


END