Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
делфи_лаб_каз.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
478.21 Кб
Скачать

Mdi (Multiple Document Interface) қосымшасын құру Орындау уақыты: 2сағат Рейтинг: 1 балл

Жұмыстың мақсаты

Қосымшаны құрып, бір мезгілде бірнеше құжатты немесе объектіні қолданып және жүктеп үйрену.

MDI (Multiple Document Interface) термині тура сөзбен айтқанда көп құжатты интерфейс және қосымшаны суреттейді, бір мезгілде бірнеше құжатты немесе обьектіні қолданып және жүктеп үйрену. Мысал ретінде диспетчер файлы (File Manager) қызмет көрсете алды. Әдетте MDI-қосымшасы кем дегенде екі формадан тұрады - түпкі және тармақты. Түпкі формасына fsMDIForm тең кірістірілген. Тармақты формасына fsMDIChild стилі кірістіріледі.

Орындалу тәртібі

1-кезең. Delphi жүктеу және жобаны құру

  1. Delphi жүктеңіз.

  2. Ауқымды мүмкіндіктер арқылы бейнені қарауға программа құрыңыз.

2-кезең. Родительский формасын құру

  1. Формаға Standard терезесіндегі TPanel екі компонентін және Additional терезесіндегі TSpeedButton компонентінің үш экземплярін бірінші панельге қойыңыз. Келесі әрекеттерді орындаңыз:

    Белгіленген

    объект

    Object Inspector

    Қасиеттің және оқиғаның аты

    Орындалатын амалдар

    Form1

    Properties

    Caption

    ImageViewer

    FormStyle

    fsMDIForm

    Name

    frmMDIParent

    ShowHint

    True

    Panel1

    Properties

    Align

    alTop

    Caption

    Нажать клавишу <Space> (пробел)

    Panel2

    Properties

    Align

    alClient

    Caption

    Нажать клавишу <Space> (пробел)

    TSpeedButton1

    Properties

    Name

    spbtnLoad

    Hint

    Load

    Left

    8

    Top

    8

    Glyph

    fldropen.bmp или down.bmp

    TSpeedButton2

    Properties

    Name

    spbtnStretch

    AllowAllUp

    True

    GroupIndex

    1

    Hint

    Stretch

    Left

    48

    Top

    8

    Glyph

    fontsize.bmp или fwd.bmp

    TSpeedButton3

    Properties

    Name

    spbtnCenter

    AllowAllUp

    True

    GroupIndex

    2

    Hint

    Center

    Left

    80

    Top

    8

    Glyph

    picture.bmp или up.bmp

  2. Формаға TOpenDialog компонентін және келесі қасиеттері бойынша кірістіріңіз:

Белгіленген

объект

Object Inspector

Қасиеттің және оқиғаның аты

Орындалатын амалдар

OpenDialog1

Properties

Filter

(*.bmp)|*.bmp

Name

opndlgLoad

Options

[ofPathMustExist, ofEnableSizing]

2-кезең. Создание дочерней формы

  1. Мәзірден File – New Form таңдаңыз немесе құралдар тақтасындағы сәйкес батырманы шертіңіз. Бос форма пайда болады.

  2. Келесі қасиеттерді кірістіріңіз:

    Белгіленген

    объект

    Object Inspector

    Қасиеттің және оқиғаның аты

    Орындалатын амалдар

    Form2

    Properties

    FormStyle

    fsMDIChild

    Name

    frmMDIChild

    Position

    poDefaultPosOnly

  3. Құрылған формаға қайта TImage компонентін орналастырыңыз және келесі қасиеттерді кірістіріңіз:

    Белгіленген

    объект

    Вкладка окна Object Inspector

    Қасиеттің және оқиғаның аты

    Орындалатын амалдар

    Image1

    Properties

    Align

    alClient

    Name

    imgMain

  4. Келесі жағдай бойынша автоматты құрылған форма тізімінен дочерный формасын өшіріңіз. Project – Options командасын таңдаңыз, Project Options диалогты терезесі пайда болады.

  5. Auto-create forms тізіміндегі frmMDIChild таңдаңыз.

  6. [>] батырмасына шертіңіз, frmMDIChild формасы Available forms тізіміне тасымалданады.

  7. ОК батырмасын шертіңіз.

  8. MDIParent сияқты Unit1, MDIChild сияқты Unit2 , pr_fam11.dpr жобаны сақтаңыз.

3-кезең. Оқиғаны өңдеу

  1. Бейнені жүктеңіз. Ол үшін оқиғаны өңдеуші OnClick spbtnLoad компонентіне кодты енгізіңіз: procedure TfrmMDIParent.spbtnLoadClick(Sender: TObject);

begin Caption := opndlgLoad.FileName;

imgMain.Picture.LoadFromFile(opndlgLoad.FileName);

ClientWidth := imgMain.Picture.Width;

ClientHeight := imgMain.Picture.Height; end; end;

  1. MDIChild модульде табылатын frmMDIChild типіне модуль сілтенеді, содан соң implementation жолынан тағыда бір жол uses MDIChild қосыңыз;

  2. Компиляцияға жіберіп және қосымшаны жүктеңіз. Назар аударыңыз, Close батырмасына шерткен кезде дочерная формасы жабылмайды, ол пиктограммаға айналады.

  3. Жобаны жабу үшін, өңдеуші OnClose кодын енгізіп, ТfrmMDIChild класын кішкентай детальдың Action қасиетін өзгерту қажет: Action := caFree;

4-кезең. Бейнені түзету және созу

  1. Бейнені ортаға және созу мүмкіндіктерін енгізіңіз. Бұл үшін оқиғаны өңдеуші OnClick TSpeedButton Stretch және Center компонентерін келесі түрде енгізіңіз:

if not (ActiveMDIChild = Nil) then

if ActiveMDIChild is ТfrmMDIChild then

ТfrmMDIChild(ActiveMDIChild).imgMain.Stretch := spbtnStretch.Down;

и if not (ActiveMDIChild = Nil) then

if ActiveMDIChild is ТfrmMDIChild then

ТfrmMDIChild(ActiveMDIChild).imgMain.Center := spbtnCenter.Down;

  1. Барлық тармақты формаға Stretch және Center батырмалары бірдей болмас үшін, оқиға өңдеушісіне жолдар класын енгізіңіз.

frmMDIParent.spbtnStretch.Down := imgMain.Stretch;

frmMDIParent.spbtnCenter.Down := imgMain.Center;

  1. MDIChild модуліне implementation жолынан соң жолға uses MDIParent енгізіңіз;

  2. Қосымшаны жүктеңіз және орындалу дұрыстығын тексеріңіз.

Ескерту: Жаңа мағыналы қасиетке ие болған Down, OnClick оқиғасы TSpeedButton класын шақырады. Оқиғаның өңдеушісіне кодты жазған кезде абай болыңыз, ол жаңа оқиғаны басқару жолымен мағыналы қасиетке ие, сонымен қатар шексіз рекурсияны құруға болады.

  1. Жұмыстың нәтижесін оқытушыға көрсетіңіз.

Бақылау сұрақтары

  1. MDI не білдіреді?

  2. MDI-қосымшасына мысал келтіріңіз.

  3. Автоматтық және динамикалық форманың құрылуын суретте.

Тілдер және бағдарламалау технологиясы

№ 12 зертханалық жұмыс