Главная страница
Навигация по странице:

  • TObject

  • 18. Многооконные MDI и SDI – приложения

  • 20. Главное меню формы. Слияние меню окон SDI-приложений

  • Инспектора объектов

  • Слияние меню окон SDI -приложений

  • 21.Приложения , управляемые событиями

  • 22. Понятие события. Обработчики событий.

  • 23. Обработка событий от мыши

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

  • Events

  • 1. Задачи проектирования программных систем. Программное обеспечение (ПО)


    Скачать 122.86 Kb.
    Название1. Задачи проектирования программных систем. Программное обеспечение (ПО)
    Дата17.03.2019
    Размер122.86 Kb.
    Формат файлаdocx
    Имя файлаotvety_na_ekzamen_po_prikladnomu_programirovaniyu.docx
    ТипДокументы
    #70653
    страница2 из 5
    1   2   3   4   5

    procedure Button1Click(Sender: TObject);

    Заголовок (объявление) процедуры обработки события OnClick - щелчка по кнопке Button1.

    Параметр с именем Sender принадлежит классу TObject. Параметр Sender вставляется Delphi автоматически, с его помощью подпрограмма Button1Click может определить, какой именно компонент создал событие OnClick

    private

    { Privatedeclarations }

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

    public

    { Public declarations }

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

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

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

    procedure TForm1.Button1Click(Sender: TObject);

    begin



    end;
    Примечание. Текст модуля доступен как Delphi ,так и программисту. Delphi автоматически вставляет в текст модуля описание любого добавленного к форме компонента, а также создает заготовки для обработчиков событии; программист может добавлять свои методы в ранее объявлённые классы и наполнять обработчики событий конкретным содержанием, вставлять собственные переменные, типы, константы и т. д. Совместное с Delphi владение текстом модуля будет вполне успешным, если программист будет соблюдать простое правило, он не должен удалять или изменять строки, которые вставлены не им, а Delphi.

    14. Понятие класса и обьекта в Delphi

    В Delphi класс – это тип данных, а обьект – конкретный существующий в памяти экземпляр класса. Для описания класса используется ключевое слово class. Основные принципы ООП , используемые в Турбо Паскале, сохраняются . Пример обьявления класса :

    TYPE

    TMyClass = CLASS

    ПоляДанных;

    ЗаголовкиМетодов;

    END ;

    Теперь в программу можно ввести новую переменную, представляющую собой обьект – экземпляр класса TMyClass :

    VAR

    MyClass : TMyClass ;

    15. Интегрированная среда разработки Delphi

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

    Палитра компонентов использует постраничную группировку обьектов. На ней находится набор вкладок – Standard, Addithional и т.д.

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

    Отметим, что в состав среды разработки входят некоторые инструментальные средства. Например, встроенный отладчик, внешний отладчик, компилятор командной строки и другие.

    16. Основы визуального программирования

    Проект Delphi – приложения, который помещается в отдельную папку, состоит из трёх основных типов файлов :

    Файлы описания форм – двоичные файлы с расширением DFM, описывающие формы с компонентами.

    Файлы программных модулей – текстовые файлы с расширением PAS , содержащие коды на языке Object Pascal.

    Главный файл проекта – текстовый файл с расширением DPR . Этот файл среда Delphi создаёт и контролирует сама.

    Средствами визуального программирования создаётся интерфейсная часть приложения. Основной визуальный компонент форма (Form) выполняет роль контейнера, который содержит другие компоненты, определяющие функциональность приложения. Примеры стандартных визуальных компонент – MainMenu (главное меню), PopupMenu (контекстное меню), Edit (строка редактирования), Memo (редактор), Button (стандартная кнопка), ListBox (список) и другие.

    17. Разработка приложений для Windows в Delphi

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

    Подготовить обработчик требуемого события можно так :

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

    В инспекторе обьектов перейдите на вкладку Events (События).

    Найдите в списке событий строку с именем нужного события.

    Дважды щелкните на правой части соответствующей строки.

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

    18. Многооконные MDI и SDI – приложения

    Любое сложное Windows-приложение предполагает использование большого количества окон. Их число может доходить до нескольких сотен.

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

    При создании многооконных приложений используются два основных стиля – MDI и SDI.

    MDI (MDI -Multi Document Interface) –предполагает создание главного окна MDI (его обычно называют рамочным), внутри которого по мере надобности появляются дочерние окна.

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

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

    Пример: MS Office.

    Cтиль SDI (SDI - Single Document Interface) в противоположность MDI не накладывает ограничений на положение и размеры вспомогательных форм, каждая из которых при необходимости может иметь свое главное меню.

    В стиле SDI реализована, например, среда Delphi.

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

    Стиль формы задается одним из значений свойства FormStyle.

    TFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop) ;

    property FormStyle: TFormStyle;
    Стиль fsNormal определяет обычную форму, использующуюся для решения самых различных задач, в том числе - для общего управления всей программой (главная форма). fsNormal определяет окно в стиле SDI.

    Стили fsMDIChild и fsMDIForm используются при создании многодокументных приложений в стиле MDI.

    Стиль fsStayOnTop предназначен для окон, которые всегда должны располагаться над всеми другими окнами программы (в терминологии Windows такие окна называются Popup Window, что буквально переводится как окно-поплавок). В момент активизации окна оно обычно становится видимым на экране, даже если перед этим его загораживали другие раскрытые окна.

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

    Как показывает практика, объявление окна со стилевым признаком fsStayOnTop еще не решает проблему создания окна-поплавка. Чтобы создать окно-поплавок, нужно обратиться к API-функции SetWindowPos.

    19. Управление формами

    Для подключения новой формы к проекту достаточно выполнить (File | New | Form).

    Можно выбрать форму из репозитория (File | New | Other) и выбрать нужную разновидность формы.

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

    Самая первая подключенная к проекту форма (стандартное имя формы - Form1) становится главным окном программы. Окно этой формы автоматически появляется на экране в момент старта программы.

    Программист может указать любую форму, окно которой станет главным. Для этого нужно обратиться к опции Project | Options и, раскрыв список Mainform, выбрать нужную форму.

    Чтобы главное окно Form1 знало о существовании другого окна Form2, его надо объявить в разделе Usesсекции Implementation главного модуля Unit1:

    implementation

    uses Unit2;
    Здесь Unit2 – модуль окна Form2.

    Объявление можно сделать автоматически. Для этого нужно активизировать главное окно Form1, щелкнув по нему мышью, после чего обратиться к опции File | uses unit. В появившемся диалоговом окне нужно выбрать модуль (Unit2) и нажать ок.
    Каждое следующее окно становится видно только после обращения к его методу show.

    Form2.Show;

    При вызове метода show второе окно появляется на экране и работает одновременно с первым, поэтому управление сразу передается оператору, стоящему за обращением к этому методу. Такие окна называются немодальными.

    Переход из окна в окно осуществляется щелчками мышки.

    Чтобы программно сделать второе окно активным, надо сделать окно видимым и применить метод SetFocus

    Form2.Show;

    Form2.SetFocus;
    Впрочем работает и если просто выполнить Form2.Show.


    procedure SetFocus;

    Передает фокус ввода форме. Форма при этом должна быть видимой.


    20. Главное меню формы. Слияние меню окон SDI-приложений

    Главное меню формы создается с помощью компоненты класса TMainMenu (панель Standard).

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

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

    Перейдите в окно Инспектора объектов и введите текст опции в свойстве caption, после чего нажмите Enter - опция готова, и можно переходить к следующей.

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

    В названиях опций можно указать символ “&” перед тем символом, который определит клавишу быстрого выбора опции (в терминологии Windows такие клавиши называются акселераторами). Например, опцию Файл можно выбрать сочетанием клавиш Alt+Ф. При создании меню эта опция в строке caption Инспектора объектов содержит текст &Файл.
    Если вы захотите вставить разделительную черту, отделяющую группы подопций, задайте свойство Caption очередного элемента меню равным “-”.
    Для создания разветвленных меню, т. е. таких, у которых подопций вызывают новые списки подопций, щелкните правой кнопкой мыши на подопции и выберите Create Submenu.

    Чтобы не запутаться, можно в Menu Designer изменить свойство Name каждой опции меню, чтобы получилась иерархия.

    type

    TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    N131: TMenuItem;

    N132: TMenuItem;

    N2: TMenuItem;

    N21: TMenuItem;

    N22: TMenuItem;

    N23: TMenuItem;

    Для элемента меню определено единственное событие Onclick, которое возникает при щелчке на опции или при нажатии Enter, если в этот момент данная опция была выбрана (подсвечена).

    Обработчик события становится доступен после двойного щелчка на опции в окне конструктора меню

    Слияние меню окон SDI-приложений

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

    Для этого свойство AutoMerge меню вторичной формы должно иметь значение True. Порядок слияния опций в этом случае устанавливается свойствами Groupindex опций второго меню.

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

    Создайте форму Form1 с меню приведенной выше структуры.

    Создайте форму Form3 с заголовком "Окно № 3". Поместите на неё меню с одним пунктом "Закрыть окно № 3".

    Обработчик щелчка по опции будет иметь вид:

    procedure TForm3.N1Click(Sender: TObject);

    begin

    Form1.MainMenu1.Unmerge(MainMenu1); //восстановление к виду до слияния

    Form3.Close

    end;

    Объявите модули форм друг в друге в разделах Uses секции Implementation.

    В пункте 1-2 меню формы Form1 вставьте подменю, вызывающее окно вторичной формы Form3 в немодальном режиме.
    Обработчик щелчка по опции будет иметь вид:

    procedure TForm1.N12Click(Sender: TObject);

    begin

    Form3.show

    end;

    Чтобы поместить меню формы Form3 на форму Form1 установите свойство AutoMerge меню формы Form3 в True.

    Чтобы слить меню форм Form1 и Form3 установите свойство GroopIndexопции меню формы Form3 в 1.

    Свойство AutoMerge вторичного окна игнорируется, если оно вызывается в модальном режиме, а также если оно является дочерним окном MDI.

    21.Приложения , управляемые событиями

    К событиям ,обрабатываемым формой (компонент типа TForm), являющейся базовым интерфейсным элементом любой программы, относятся, например, события OnActivate, OnCreate, OnClose.

    Событие OnActivate форма получает при её активизации, в частности, когда пользователь нажал кнопку мыши в её рабочей области .

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

    Событие OnClose наступает при закрытии формы.

    Отметим также некоторые события от клавиатуры и мыши :

    Событие OnKeyDown происходит при нажатии на клавиатуре.

    Событие OnKeyUp возникает, когда пользователь отпускает нажатую ранее клавишу.

    Событие OnClick возникает при нажатии кнопки мыши в области компонента.

    Событие OnMouseMove происходит при перемещении мыши.
    22. Понятие события. Обработчики событий.

    Событийное программирование, следующий шаг от алгоритмического программирования.

    Событие – это свойство процедурного типа, т.е. свойство, которое содержит обработчик события.

    Обработчик события – процедура, которая выполняется, когда событие имеет место быть.

    Идентификатор процедуры – обработчика события формируется следующим образом: <Имя компонента ><производная от имени события>.
    TForm1.FormMouseUp

    23. Обработка событий от мыши

    А.Я. Архангельский, стр. 328

    Управление большинством программ в Windows осуществляется с помощью мышки.

    Нам уже известно одно событие, связанное с сигналом от мыши: OnClick.

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

    OnMouseDown и OnMouseUp определяют реакцию программы на соответственно нажатие и отпускание кнопки мыши,

    OnMouseMove - на перемещение указателя мыши над компонентом,

    OnClick и OnDblClick - соответственно на щелчок и двойной щелчок левой кнопки.

    Процедура-обработчик события вставляется в модуль после двойного щелчка по полю справа от имени события в закладке Events Инспектора Объектов.
    Идентификатор процедуры – обработчика события от мыши формируется следующим образом: <Имя компонента (свойство Name)><Имя события без On>.

    Например, Button1Click. TForm1.FormMouseDown
    В качестве параметров обработчиков событий используются переменные следующих типов:

    TMouseButton определяет одну из трех кнопок мыши: левую (mbLeft), правую (mbRigth) и среднюю (mbMiddle).

    TMouseButton= (mbLeft, mbRight, mbMiddle) ;
    TShiftState содержит признаки, уточняющие обстоятельства возникновения события: ssShift - нажата клавиша Shift; ssAlt -нажата клавиша Alt; ssctrl - нажата клавиша Ctrl; ssLeft - нажата левая кнопка мыши; ssRight - нажата правая кнопка; ssMiddle -нажата средняя кнопка; ssDouble - нажаты одновременно левая и правая кнопки.

    TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
    Параметры х и y типа Integer определяют координаты точки чувствительности указателя мыши в момент возникновения события в системе координат клиентской области родительского компонента.
    1   2   3   4   5


    написать администратору сайта