Объектно-ориентированное программирование

Автор работы: Пользователь скрыл имя, 11 Января 2013 в 00:09, курсовая работа

Описание

Цель курсовой работы по «Объектно-ориентированному программированию» заключается в том что бы выполнить теоретическую и практическую часть по отдельным вопросам.
1) Раскрыть понятие библиотеки классов.
2) Разработать приложение позволяющее выполнять функции файлового менеджера.

Работа состоит из  1 файл

Курсовая по Объектно-ориентированному программированию.docx

— 1.03 Мб (Скачать документ)

Класс TForm

TForm является базовым классом для создания окна формы.

По умолчанию каждая новая создаваемая  форма реализуется как потомок  класса TForm. Форма может быть:

  1. главным окном приложения;
  2. диалоговым окном;
  3. дочерним окном MDI-окна.

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

  1. Active - определяет, является ли форма активной.
  2. ActiveControl - определяет элемент управления формы, имеющий фокус ввода.

Например:

if ActiveControl <> nil then

    ActiveControl.Left := ActiveControl.Left + 1;

end;

 

  1. ActiveMDIChild - определяет активное дочернее окно MDI-приложения;
  2. BorderStyle - определяет внешний вид и поведение рамки окна формы;
  3. FormStyle - определяет стиль формы, который указывается одним из следующих значений:
    1. fsNormal - форма определена как простая SDI-форма и не является ни дочерним, ни родительским MDI-окном;
    2. fsMDIChild - форма является дочерним MDI-окном.
    3. fsMDIForm - форма является родительским MDI-окном.
    4. fsStayOnTop- для формы определено поведение "всегда сверху" (она остается сверху всех других форм проекта, для которых не установлен стиль fsStayOnTop).
  4. HelpFile - указывает имя файла, используемого для отображения справки.
  5. Icon - определяет пиктограмму, отображаемую в заголовке окна формы.
  6. MDIChildCount - определяет количество открытых дочерних MDI-форм.
  7. MDIChildren - содержит список всех дочерних MDI-форм.

Например:

{Закрытие всех дочерних MDI-форм}

var   Index1: Integer;

begin

  with MyForm1 do

    for I := MDIChildCount-1 downto 0 do

      MDIChildren[Index1].Close;

end;

 

  1. Menu - определяет главное меню.
  2. Parent - определяет родительское окно. Если форма не имеет родителя, то значение свойства Parent равно nil.
  3. Position - указывает размер и позицию, используемые для первоначального отображения формы.
  4. WindowState - определяет, в каком виде форма появляется на экране: свернутой, полноэкранной или в нормальном представлении.

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

  1. Cascade - упорядочивает все дочерние MDI-формы, располагая их каскадом.
  2. Next - делает активной следующую дочернюю форму (в той последовательности, как они были открыты).
  3. Previous - делает активной предыдущую дочернюю форму.
  4. Tile - упорядочивает все дочерние MDI-формы таким образом, чтобы они все имели одинаковый размер и умещались одновременно в клиентской области родительского окна.

Например:

{Обработчик события для  команды меню Windows | Tile}

procedure TForm1.TileFormsClick(Sender: TObject);

begin

  this.TileMode := tbVertical; 

  this.Tile;

end;

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

Класс TMainMenu

Класс TMainMenu инкапсулирует поведение линейки меню (menu bar) и соответствующих ниспадающих меню (drop-down menus) для окна формы.

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

Процесс создания меню формы очень  прост. Он состоит из трех этапов:

  1. добавления в форму компонента класса TMainMenu;
  2. выполнения на нем двойного щелчка мышью и ввода в открытое далее окно заголовков всех пунктов линейки меню и пунктов ниспадающих меню;
  3. определения кода обработчиков событий для каждого пункта меню.

Если требуется синхронизировать код, выполняемый для пункта меню, с кодом, выполняемым для кнопки на панели управления, то создается  объект "действие типа Taction", который  указывается и для пункта меню, и для кнопки.

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

  1. AutoMerge - определяет возможность слияния меню. Каким образом меню будут объединяться, зависит от значения свойства GroupIndex каждого отдельного пункта меню;
  2. Handle - обеспечивает доступ к дескриптору меню. Это свойство используется для функций Windows API, требующих дескриптора меню.

Класс TMenuItem

Класс TMenuItem реализует поведение пунктов меню. Контейнером для объектов типа TMenuItem может быть компонент типа TMainMenu (линейка главного меню) или компонент типа TPopupMenu (контекстное меню).

При создании меню на этапе проектирования редактор меню Menu Designer автоматически  создает объекты типа TMenuItem для каждой команды меню.

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

  1. Action - определяет объект действие (Action), ассоциируемый с пунктом меню. По умолчанию для каждого пункта меню стандартным событием считается OnClick и обработчиком события является процедура, имя которой автоматически формируется из имени формы и имени объекта "пункт меню", указанных через точку (например, TForm1.item12Click). Объект "действие" позволяет определить одну процедуру обработки события, которую далее можно будет многократно использовать для различных объектов при обработке событий.
  2. AutoHotkeys - определяет, будут ли клавиши-акселераторы для элементов подменю устанавливаться автоматически.
  3. Bitmap - определяет изображение, отображаемое слева от заголовка меню.
  4. Break - определяет, будет ли пункт меню располагаться в новом столбце меню.
  5. Caption - определяет текст пункта меню. Если перед буквой в заголовке пункта меню стоит символ &, то данная буква называется клавишей-акселератором, а выбор пункта меню может быть выполнен одновременным нажатием Alt и клавиши-акселератора.
  6. Checked - определяет, будет ли маркер переключателя появляться в пункте меню слева от заголовка.
  7. Default - определяет, является ли данный пункт меню пунктом, выполняемым по умолчанию при двойном щелчке мышью на родительском подменю. Пункт меню, выполняемый по умолчанию, отмечается полужирным начертанием.
  8. Enabled - определяет, доступен ли пункт меню.
  9. GroupIndex - указывает логическую группу, к которой принадлежит пункт меню (группы используются для управления слиянием пунктов меню).

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

Если значение свойстваGroupIndex - добавляемого меню совпадает со значением свойства GroupIndex - пункта главного меню, то последний заменяется на добавляемый. Если несколько пунктов меню главного окна имеет одинаковое значение свойства GroupIndex -, то и заменены они могут быть только несколькими пунктами добавляемого меню: первый пункт с одинаковым значением заменяется на первый добавляемый пункт с одинаковым значением, второй - на второй и т.д.

Если значение свойства GroupIndex добавляемого пункта линейки меню лежит между значениями свойства GroupIndex пунктов линейки меню главного окна, то добавляемый пункт вставляется между ними.

  1. HelpContext - указывает ID контекста справки, отображаемой для пункта меню.
  2. Hint - определяет текст всплывающего окна подсказки.
  3. ImageIndex - определяет индекс изображения, отображаемого для пункта меню. Список изображений, указываемых через индекс, содержится в свойстве Images родительского меню: для пунктов меню верхнего уровня список определяется свойством Images объекта типа TMenu или TPopupMenu, а для пунктов подменю список определяется свойством Images родительского объекта меню типа TMenuItem. Если родительское меню не содержит списка изображений в свойстве Images, то для определения отображаемого изображения будет использовано значение свойства Bitmap пункта меню.
  4. Items - список пунктов меню в подменю.
  5. MenuIndex - указывает индекс пункта меню в родительском меню.
  6. Parent - определяет для пункта меню его родительское меню.
  7. Visible - определяет, является ли пункт меню видимым.
  8. Класс предоставляет набор методов, включая следующие:
  9. Add - добавляют в конец списка Items один или несколько пунктов меню.

Например:

var    NewItem: TMenuItem; 

       i : integer;

begin

  // Создание элемента "разделительная линия":

  NewItem := TMenuItem.Create(Self);

  NewItem.Caption := '-';  // Заголовок пункта меню

  // Добавление пункта меню к меню Windows:

  Windows.Add(NewItem);

  // Cоздадим и добавим  пункт меню для каждой формы 

  for  i := 0 to Screen.FormCount-1 do

  begin

    NewItem := TMenuItem.Create(Self);

    NewItem.Caption := Screen.Forms[i].Name;

    Windows.Add(NewItem);

  end;

end;

  • Clear - удаляет все пункты меню, указанные в списке свойства Items.
  • Click - инициирует событие OnClick. Этот метод может быть переопределен разработчиком для того, чтобы запрограммировать собственный ответ на выбор пользователем пункта меню.
  • Create - создает новый пункт меню.
  • Delete - удаляет из списка свойства Items пункт меню с указанным индексом.
  • IndexOf - возвращает позицию указанного пункта меню в списке Items.
  • Insert - вставляет указанный пункт меню в заданную позицию списка Items.

Разработчик может создать один общий объект "действие" и для  пункта меню, и для кнопки панели инструментов. Для определения действия на этапе проектирования следует:

  • добавить в форму объект типа TactionList;
  • вызвать редактор объекта "действие", выполнив на нем двойной щелчок мышью;
  • добавить в открывшемся редакторе объекты "действие (типа TAction)";
  • по двойному щелчку на имени любого объекта "действие" отображается редактор кода с автоматически добавленным обработчиком события для данного действия. Например:
  • procedure TForm1.Action1Execute(Sender: TObject);
  • begin
  • end;
    • Внутри блока begin end следует ввести код обработчика события;
  • в завершение нужно определить для объекта "пункт меню" значение свойства Action, выбрав его из списка действий объекта типа TActionList.

Класс TPopupMenu

Класс TPopupMenu инкапсулирует поведение контекстных меню, также называемых всплывающими или popup-меню.

Он предназначен для создания меню, отображаемых при щелчке пользователя правой кнопкой мыши на элементе управления. Чтобы контекстное меню поставить  в соответствие конкретному элементу управления, следует установить значение свойства PopupMenu элемента управления равным имени объекта TPopupMenu. Для этого в инспекторе объектов следует выбрать значение свойства PopupMenu из автоматически предлагаемого списка объектов типа TPopupMenu.

Базовым классом для TPopupMenu является класс TMenu.

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

procedure Form1.FormCreate(Sender: TObject);

begin 

      PopupMenu1.AutoPopup := False;

end;

procedure Form1.FormMouseDown(Sender: TObject;

                   Button: TMouseButton;

                   Shift: TShiftState;

                   X, Y: Integer);

begin 

     PopupMenu1.Popup(X, Y);

end;

Подводя итоги можно сказать  что Delphi содержит полнофункциональную  библиотеку классов, столь же полную, как и библиотека классов C++ MFC фирмы Microsoft. Без сомнений, библиотека VCL Delphi в большей степени ориентирована на компоненты. Ее классы предлагают более высокий уровень абстракции над Windows API, чем обычный уровень библиотек C++. Для работы с компонентами достаточно хорошо знать верхние узлы иерархии VCL, которым соответствуют в основном элементы палитры компонентов (но и некоторые другие компоненты). Обычно для работы с компонентами не требуется глубокого знания внутренней структуры VCL. Такие знания необходимы, когда вы создаете новый компонент или модифицируете существующий.

Информация о работе Объектно-ориентированное программирование