МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка игровой программы Морской бой

    Палитры компонентов Standard

    Этот компонент представляет главное меню формы и наследует все методы

    и свойства TMenu. Особенность его в том, что в нем реализован сложный

    механизм объединения меню. Это необходимо по следующим причинам:

    1. Если в приложении имеется несколько форм со своими меню, то для

    упрощения работы целесообразно соединить их в одно и управлять меню из

    главной формы.

    2. Объединение меню нужно при работе с интерфейсом MDI и его подокнами.

    3. Механизм объединения меню используется серверами OLE, запускаемыми по

    месту нахождения объекта OLE. Загружаясь, сервер дописывает

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

    Для того чтобы реализовать объединение меню, у тех форм, меню которых

    будут присоединены к главному, необходимо установить в True свойство: (Рb)

    property AutoMerge: Boolean.

    При этом у главного меню оно должно оставаться равным False, иначе

    главное меню будет вообще невидимым. Объединение будет происходить

    автоматически при активизации новых форм или серверов OLE. Кроме

    автоматического режима, объединение меню можно выполнить при вызове метода:

    procedure Merge(Menu: TMainMenu).

    Присоединяемое меню при необходимости может быть легко отсоединено

    вызовом метода: procedure Unmerge(Menu: TMainMenu).

    При установленном в True свойстве AutoMerge ссылка на присоединенное

    меню будет сохраняться в специальном поле компонента и отсоединяться в

    нужных случаях автоматически (например, при закрытии формы, которой оно

    принадлежит).

    Объединение меню происходит по специальным правилам, в основе которых

    лежит использование группового индекса (свойства Group Index) каждого

    объекта TMenuItem.

    У пунктов меню одного уровня, в частности всех подменю верхнего уровня

    в главном меню, свойство GroupIndex является неубывающим, т. е. у

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

    Это требование отслеживается как на этапе разработки, так и на этапе

    исполнения. Например, пусть пункты меню имеют индексы 0, 3, 4, 5, 6. Если

    включить пункт меню с индексом 5 между пунктами с индексами 0 и 3, то 3 и 4

    будут изменены на 5. А вот изменить большее значение Х на меньшее Y, если

    впереди есть пункты с индексом, большим Y, невозможно. Если в этом примере

    попытаться изменить индекс 6 на 4, то это приведет к возникновению

    исключительной ситуации EMenuError.

    Для обычных форм объединение происходит только на верхнем уровне в

    главном меню во время их активизации. В объединенном меню все подменю будут

    располагаться по возрастанию номера группового индекса, при этом:

    1. если в присоединяемом меню есть пункты с таким же групповым индексом,

    что и в исходном, то все их множество заменяет все множество таких

    пунктов в исходном меню;

    2. все пункты присоединяемого меню, групповой индекс которых не

    встречается в исходном, добавляются к нему и вставляются на

    соответствующие их индексу места.

    К окнам интерфейса MDI все сказанное относится только при запуске

    приложения. Если в формах приложения со стилем fsMDIChild есть свои главные

    меню, то в этот момент они автоматически сольются с главным меню формы

    fsMDIForm независимо от состояния AutoMerge.

    На уровне работы с серверами OLE предусмотрены дополнительные

    возможности по объединению меню. Если в компонент TOLEContainer загружен

    объект OLE, то в конец подменю Edit обычно добавляется подменю, из которого

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

    активизации сервера он может не только вставлять свои подменю в главное, но

    и добавлять новые пункты к уже существующим подменю.

    Три метода TMainMenu используются для работы с меню OLE:

    1. procedure PopulateOle2Menu(SharedMenu: HMenu; Groups: array of

    Integer; var Widths: array of Longint);

    2. procedure GetOle2AcceleratorTable(var hAccel : THandle; var numAccels:

    Word; Groups: array of Integer) ;

    3. procedure Set01e2MenuHandle(Handle: HMENU);

    1.2.2. Компонент TLabel

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

    метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно,

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

    строчку кода.

    Этот компонент доступен из модуля STDCTRLS, и находится на странице

    Палитры компонентов Standard.

    Компонент представляет собой статический текст. С помощью этого

    компонента на рабочей поверхности формы можно отобразить информацию,

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

    другую важную функцию — если в составе текста TLabel есть символы-

    акселераторы, информация об их нажатии может передаваться от TLabel другому

    элементу управления.

    Свойства компонента приведены в табл.1:

    Таблица 1

    Свойства компонента TLabel

    |Свойство |Описание |

    |(Pb) property Caption: TCaption; |Содержит строку с выводимым текстом. |

    |TCaption = string[255]; | |

    |(Pb) property Alignment: |Устанавливает правило выравнивания |

    |TAlignment; |текста — по правому, левому краю или по|

    | |центру клиентской области. |

    |(Pb) property AutoSize: Boolean; |В случае True происходит автоматическое|

    | |приведение размеров компонента к |

    | |размерам текста и высоте шрифта. |

    | | |

    | | |

    | |Продолжение табл.1 |

    |(Pb) property ShowAccelChar: |Показывает, отображается ли в TLabel |

    |Boolean; |акселератор (символ, перед которым |

    | |стоит знак амперсанда — '&'). Если оно |

    | |равно False, амперсанд никак не |

    | |интерпретируется. В случае True |

    | |акселератор выделяется в строке |

    | |подчеркиванием и нажатие клавиш |

    | |+ приводит к передаче |

    | |фокуса окну FocusControl (т.к. TLabel |

    | |сам не является оконным компонентом). |

    |(Pb) property FocusControl: |Определяет оконный компонент, которому |

    |TWinControl; |посылаются сообщения о вводе |

    | |акселератора. |

    |(Pb) property Transparent: |Прозрачность фона компонента. Если |

    |Boolean; |свойство установлено в True, то при |

    | |перерисовке элемента управления не |

    | |происходит закрашивание клиентской |

    | |области. В противном случае — |

    | |происходит закрашивание кистью bsSolid |

    | |и цветом Color. |

    |(Pb) property WordMrap: Boolean; |Определяет возможность разрыва слов в |

    | |случае, если длина выводимого текста |

    | |превышает ширину компонента. |

    1.2.3. Компонент TPanel

    TPanel - управляющий элемент, похожий на TGroupBox, используется в

    декоративных целях. Чтобы использовать TPanel, просто поместите его на

    форму и затем положите другие компоненты на него. Теперь при перемещении

    TPanel будут передвигаться и эти компоненты. TPanel используется также для

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

    Этот компонент доступен из модуля EXTCTRLS, и находится на странице

    Палитры компонентов Standard.

    Этот компонент — является несущей конструкцией для размещения других

    элементов управления. В отличие от простой рамки (TBevel) панель сама

    является оконным элементом управления и родителем для всех размещенных на

    ней компонентов. Часто ее используют для создания панелей инструментов,

    строк состояния и т. п.

    За внешнее оформление панели отвечают свойства:

    (Pb) property Bevel Inner: TPanelBevel;

    (Рb) property BevelOuter: TPanelBevel;

    TPanelBevel = (bvNone, bvLowered, bvRaised) ;

    (Pb) property BevelWidth: TBevelWidth;

    TBevelWidth = 1..Maxint;

    (Pb) property BorderWidth: TBorderWidth;

    TBorderWidth = 0..Maxint ;

    На границах панели размещаются две специальные окаймляющие рамки

    (bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серого

    цветов они имитируют трехмерность — приподнятость (bvRaised) или утоп-

    ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная —

    BevelOuter — расположена прямо по периметру панели, вторая — Bevellnner —

    внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми

    (bvNone), приподнятыми или утопленными.

    Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели

    "ров" или "вал".

    Иллюзию трехмерности может подчеркнуть также стиль обрамления

    компонента:

    (Pb) property BorderStyle: TBorderStyle;

    TBorderStyle = bsNone .. bsSingle;

    Значение bsSingle означает, что панель будет окаймлена черной линией

    единичной толщины (по периметру, снаружи от обеих рамок).

    Выравнивание текста заголовка панели определяется при помощи свойства:

    (Pb) property Alignment: TAlignment;

    Свойство (Pb) property Locked: boolean; предназначено для определения

    способа взаимодействия панели с размещенными на ней объектами OLE. Если оно

    равно True, последние при активизации сервера OLE "по месту'" не могут

    заместить панель.

    В обработчике события: (Pb) property OnResize: TNotifyEvent; может

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

    1.2.4. Компонент TBitBtn

    TBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку

    (glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK и

    др), при выборе которых кнопка принимает соответствующий вид. Кроме того,

    нажатие кнопки на модальном окне (Form2.ShowModal) приводит к закрытию окна

    с соответствующим модальным результатом (Form2.ModalResult).

    Этот компонент доступен из модуля BUTTONS, и находится на странице

    Палитры компонентов Additional.

    Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму и

    имеет рад дополнительных удобств в использовании. В Delphi уже определены

    стандартные виды кнопок:

    (Pb) property Kind: TBitBtnKind;

    TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose,

    bkAbort, bkRetry, bklgnore, bkAll);

    Для каждой из них определены: передаваемый форме результат

    (ModalResult):

    BitBtnModalResults: array[TBitBtnKind] of TModalResult =

    (0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll);

    а также название и картинки для разных состояний. Достаточно установить

    значение свойства Kind, и кнопка сразу приобретет нужный вид. Более того,

    некоторые из видов кнопок при нажатии сразу совершают определенные

    действия. Так, bkHelp осуществляет инициализацию системы помощи со своим

    (или ближайшим ненулевым родительским) контекстом. Кнопка вида bkClose

    закрывает форму, которой она принадлежит, вызывая ее метод Close.

    Кнопка будет отнесена к виду bkCustom, если она:

    1. назначена Default, но при этом не принадлежит множеству [bkOk, bkYes];

    2. назначена Cancel, но не принадлежит множеству [bkCancel, bkNo];

    3. у нее изменена пиктограмма;

    4. модальный результат не соответствует определенному для этого вида

    кнопок.

    За внешний вид этой кнопки отвечают свойства, рассмотренные ниже.

    Стиль изображения кнопок в зависимости от операционной системы задается

    свойством:

    (Pb) property Style: TButtonStyle;

    TButtonStyle = (bsAutoDetect, bsWin31, bsNew);

    Стиль bsNew соответствует Windows 95. В любом случае корректным будет

    применение стиля bsAutoDetect, который сам распознает версию системы.

    Пиктограмма кнопки, которая вместе с текстом видна на ее поверхности,

    определяется свойством:

    (Pb) property Glyph: TBitmap;

    Для создания эффекта нажатия картинка должна немного изменяться в

    зависимости от состояния; кроме того, отдельная картинка нужна для

    неактивного состояния (когда нажатие не воспринимается). В свойстве Glyph

    должна быть одна битовая карта, но она может содержать картинки сразу для

    нескольких состояний кнопки (максимум четыре). Они интерпретируются как

    соответствующие нормальному (отжатому), запрещенному (неактивному),

    нажатому и утопленному состояниям (последнее применяется только для кнопок

    TSpeedButton). Для этого картинки должны быть расположены подряд вплотную

    по горизонтали. Например, при размере картинок 16х16 нужна объединенная

    битовая карта 64х16. Если каждая из картинок квадратная и ширина общей

    картинки нацело делится на высоту, то при присвоении ее свойству Glyph

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

    свойством:

    (Pb) property NumGlyphs: TNumGlyphs ;

    TNumGlyphs = 1..4;

    При отрисовке в зависимости от состояния из большой битовой карты

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

    Три свойства отвечают за расположение текста и картинки на поверхности

    кнопки:

    (Pb) property Layout: TButtonLayout;

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

    одним из четырех:

    TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom);

    Расстояние от соответствующего способу выравнивания края кнопки до

    пиктограммы описывается свойством:

    (Pb) property Margin: Integer;

    Промежуток между пиктограммой и текстом равен:

    (Pb) property Spacing: Integer;

    Если свойства Margin, Spacing или оба не заданы (по умолчанию равны

    -1), значения этих промежутков выбираются системой. Кнопка также имеет

    метод Click и свойства Caption, ModalResult, Default и Cancel. Статус

    Default получают кнопки видов bkOk, bkYes, a Cancel — кнопки видов

    bkCancel, bkNo.

    1.2.5. Компонент TSpeedButton

    TSpeedButton - кнопка для создания панели быстрого доступа к командам

    (SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi.

    Обычно на данную кнопку помещается только картинка (glyph).

    Этот компонент доступен из модуля BUTTONS, и находится на странице

    Палитры компонентов Additional.

    Эта кнопка с изображением может иметь как зависимую, так и независимую

    фиксацию. Она удобна для применения в составе панелей инструментов.

    Поведение этих кнопок во многом определяется свойством:

    (Pb) property Grouplndex: Integer;

    Если Grouplndex равен нулю, у кнопки вообще нет фиксации в нажатом

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

    родительскому элементу. Кнопки в группе (то есть с одинаковым ненулевым

    значением Grouplndex) имеют зависимую фиксацию. Она также зависит от

    свойства:

    (Pb) property AllowAlIUp: Boolean;

    которое описывает поведение кнопок в группе, а именно: могут ли все кнопки

    одновременно быть отжаты. Если AllowAlIUp равно False (по умолчанию),

    нажатую кнопку в группе можно отпустить, лишь нажав другую. Если AllowAlIUp

    равно True, кнопку можно отпустить повторным нажатием.

    Если необходимо фиксировать одну кнопку TSpeedButton, ей нужно

    присвоить уникальный групповой индекс, а AllowAlIUp установить в True.

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

    значением этого свойства, при нажатии кнопки и изменении Grouplndex

    свойство AllowAlIUp "рассылается" (присваивается) остальным кнопкам с тем

    же значением Grouplndex. В группе не может быть нажато более одной кнопки.

    Определяет, нажата ли кнопка, свойство:

    (Pb) property Down: Boolean;

    Это свойство может изменяться как системой, так и программистом.

    Например, если при запуске программы необходимо, чтобы одна из кнопок уже

    была нажатой, ее свойство Down устанавливают в True.

    Текст кнопки определяет свойство Caption. Компонент имеет те же

    правила и свойства рисования картинки, что и TBitBtn. Они описываются

    свойствами Glyph, NumGlyphs, Layout, Margin и Spacing.

    Для имитации щелчка предусмотрен метод Click. Двойной щелчок для

    TSpeedButton возможен только на нажатой кнопке — иначе он интерпретируется

    как обычный. Описывается свойством:

    (Pb) property OnDblClick;

    1.2.6. Компонент TImage

    TImage - отображает графическое изображение на форме. Воспринимает форматы

    BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она

    прикомпилируется к EXE файлу.

    Этот компонент доступен из модуля EXTCTRLS, и находится на странице

    Страницы: 1, 2, 3


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.