Aplikacja typu MDI


Aplikacja typu MDI

Z aplikacją MDI mamy do czynienia, gdy w projekcie występuje jeden formularz nadrzędny i wiele formularzy podrzędnych - wszystkie tego samego typu. Przykładem takiej organizacji jest Word, Paint, WordPad itp.

Ćwiczenie 3.3 .

Zadanie aplikacji

Ćwiczenie wstępne do aplikacji Edytor - dostosowanie szablonu typu MDI do własnych potrzeb.

Nowe umiejętności

Tworzenie aplikacji typu MDI przy wykorzystaniu szablonu z Repozytorium.

0x01 graphic

Rysunek 1 - Aplikacja typu MDI

  1. Wybierz z menu File→New, następnie kartę Projects i w oknie element MDI Application. Wybierz katalog do zapamiętywania plików aplikacji (najlepiej utwórz własny gdzieś w folderze Moje dokumenty). W wyniku tych działań zostaną wygenerowane podstawowe formularze aplikacji: formularz z elementami sterowania, formularz z oknem O programie i formularz podrzędny.

  2. Uruchom aplikacje i sprawdź działanie podstawowych opcji zawartych w menu.

  3. Wciskając klawisze Shift+F12, przejdź do okna wyboru formularza; wybierz About i sprawdź, jakie komponenty zawiera. Zmień napisy na etykietach, właściwość Caption formularza i wybierz logo dla aplikacji.

  4. Wybierz formularz Main Form, przejdź do edycji menu i zmień nazwy angielskie na polskie. Ustaw dla każdej opcji menu we właściwości Hint krótkie wyjaśnienie funkcji opcji. Będzie ono treścią linii stanu.

  5. Wybierz formularz MDIChild. Wprowadź pole RichEdit. Klikając myszą w polu właściwości Lines ...TStrings, wejdź do edycji linii i wykasuj napis RichEdit1.

  6. Ustaw właściwość:

Align AlClient

  1. Posługując się poznanymi wiadomościami, spróbuj napisać prosty edytor tekstu.

(Delphi 5.0 wprowadza szablon aplikacji z polem Memo na formularzu MDIChild).

Rozbudowa aplikacji MDI - edytor tekstu

Ćwiczenie 3.4

Zadanie aplikacji

Rozbudowa aplikacji MDI z poprzedniego ćwiczenia, dodanie dodatkowych możliwości: otwarcia istniejącego pliku, tak by po wyborze pliku z opcji Otwórz zawartość pliku wpisywała się do pola RichEdit, a także zachowywania pliku itp.

Nowe umiejętności

Opisanie zawartości pliku do pola RichEdit formularza podrzędnego.

  1. W poprzednio utworzonej aplikacji wyselekcjonuj formularz MainForm i wprowadź komponent SaveDialog.

  2. Wpisz procedury obsługujące podopcje menu Edycja:

    1. dla opcji Wytnij:

procedure TMainForm.CutItemClick(Sender: TObject);

var

Form:TMDIChild; //deklaracja zmiennej do przechwycenia aktywnego formularza

begin

If ActiveMDIChild <> nil then

begin

//przechwycenie aktywnego formularza od właściwości ActiveMDIChild, zastosowano tu rzutowanie typów z typu TForm na typ TMDlChild

Form:=TMDIChild(MainForm.ActiveMDIChild);

// wycinanie do schowka zawartości pola Memo aktywnego formularza

Form.RichEdit1.CutToClipboard;

end;

end;

    1. w podobny sposób utwórz pozostałe procedury obsługujące opcje Kopiuj i Wklej.

  1. Wprowadź w module ChildWin.pas rozszerzenie klasy TMDIChild, dodając po o słowie Public zmienną publiczną AktualnaNazwa :String[80]. Zadaniem zmiennej będzie pamiętanie aktualnej nazwy otwartego pliku. Dla nowego okna zmienna przyjmuje nazwę okna.

  2. W module Main dla metody TMainForm.CreateMDIChild dodaj przed sło wem end:

Child.AktualnaNazwa:=Name.

  1. Przejdź do edytowania procedur podopcji menu Plik:

    1. dla opcji Nowy zmień treść procedury na następującą:

procedure TMainForm.FileNewItemClick(Sender: TObject);

begin

CreateMDIChild('NOWY' + IntToStr( MDIChildCount+1) );

end;

    1. dla opcji Otwórz zmień treść procedury na następującą:

procedure TMainForm.FileOpenItemClick(Sender: TObject);

var

Form: TMDIChild; // deklaracja formularza typu MDIChild

Nazwa: String[80]; // zmienna do zapamiętania nazwy pliku

begin

If OpenDialog.Execute then

begin

Nazwa:= OpenDialog.FileName:

//utworzenie nowego formularza podrzędnego o nazwie takiej jak nazwa pliku

CreateMDIChild(Nazwa);

//przechwycenie aktywnego formularza pod zmienną Form

Form:=TMDIChild(MainForm.ActiveMDIChild);

Form.AktualnaNazwa:=nazwa; //wpisanie zawartości pliku do pola Memo

Form.RichEdit1.Lines.LoadFromFile(Nazwa);

end;

end;

    1. dla opcji Zachowaj jako zmień procedurę na następującą:

procedure TMainForm.FileSaveAsItemClick(Sender: TObject);

var

Form:TMDIChild;

sOverwrite:Integer;

nazwa:String[80];

begin

if SaveDia1ogl.Execute then

begin

if FileExists(SaveDialogl.FileName) then

if MessageDlg(FmtLoadStr(sOverwrite,[SaveD1alogl.FileName]),

mtConfirmation.mbYesNoCancel,0) <> idYes

then exit;

//wyjście, gdy przycisk wciśnięty w oknie dialogowym jest różny od Yes

Form:=TMDIChild (MainForm.ActiveMDIChild);

//przechwycenie nazwy aktywnego formularza

Form.RichEditl.Lines.SąvetoFile(SaveDialogl.FileName);

Form.RichEditl.Modified:=False;

Form.Caption:=SaveDialog1.FileName;

end:

end;

    1. dla opcji Zachowaj zmień procedurę na następującą:

procedure TMainForm.FileSaveItemClick(Sender: TObject);

var

Form:TMDIChild;

Begin

Form:=TMDIChild(MainForm.ActiveMDIChild);

If copy(Form.AktualnaNazwa,l,4)='NOWY'

Then FileSaveAsItemClick(Sender)

else Form.RichEdit1.Lines.SaveToFile(Form.AktualnaNazwa);

end;

  1. Rozbuduj edytor i jako procedury obsługi przycisków z pasków narzędziowych wybierz procedury z opcji menu, na przykład

procedure TMainForm.CutBtnClick(Sender:Tobject);

begin

CutItemClick(Sender);

end;

We właściwości Hint przycisków z pasków narzędziowych zmień podpowiedz na polską.

  1. Rozbuduj edytor dodając możliwość korzystania z drukarki.

Uwagi do ćwiczenia dla wersji 5.0 i nowszych.

W wersji 5.0 szablon aplikacji MDI jest wzbogacony o komponent ActionList i procedury obsługi zdarzeń. Formularz MDIChild wyposażony jest w pole Memo i wykonywane na tekście operacje dotyczą tego pola. Poniżej przedstawione są czynności związane z zamianą pola Memo na RichEdit oraz oprogramowaniem listy akcji.

  1. Przejdź do formularza MDIChild i zamień komponent Memo na RichEdit.

  2. Wyselekcjonuj komponent Action na formularzu MainForm. Zmień angielskie etykiety akcji (Caption) i podpowiedz (Hint) na polskie.

  3. Do formularza MainForm wprowadź komponent SaveDialog.

  4. W grupie akcji File przeprogramuj akcje według wskazówek poprzedniego opisu. Zmień etykiety akcji i podpowiedz (Hint).

  5. Rozbuduj edytor definiując nowe akcje i odpowiednio nowe opcje menu i przyciski narzędziowe.

1



Wyszukiwarka

Podobne podstrony:
PHP Web 2 0 Tworzenie aplikacji typu mashup phpw2m
Wirtualne tożsamości w aplikacjach typu MUD
informatyka php web 2 0 tworzenie aplikacji typu mashup shu wai chow ebook
Cukrzyca typu 1
3 Cukrzyca typu LADA i MODY
Aplikacje internetowe Kopia
Dokumenty aplikacyjne CV list
Charakterystyka odpowiedzi immunologicznej typu GALT faza indukcji

więcej podobnych podstron