10. Aplikasi Multiple Document Interface
Pada video tutorial http://dijexi.com ini dijelaskan cara membuat aplikasi multiple document interface (MDI) word processor sederhana dengan tujuan untuk mempelajari cara membuat form MDI child dan frame,membuka form saat runtime, membuat Menu, menggabungkan menu Frame dan Child, menggunakan komponen RichEdit, alignment, word wrap , cut copy paste delete, menggunakan komponen Open, Save, PrinterSetup, Print, dan Font Dialog, dan menggunakan event form Close dan CloseQuery.
Video Tutorial Pembuatan Aplikasi
[video1a]
[video1b]
[video2]
[video3]
[video4]
[video5]
[video6]
[video7]
[video8]
[video9]
[video10]
[video11]
Background music: ethnical traditional music from Batak Karo: Gendang Karo – Perlawes.
Langkah-langkah
|
No |
Action |
||
|
1 |
File->New->Application |
|
Save All create direktori "word processor" Project: WORD.DPR File: unit1.pas |
|
2 |
Membuat MDI Frame |
FormStyle: fsMDIFrame Name: frmFrame |
|
|
3 |
Membuat Child Window |
File -> New -> Form |
File: unit2.pas Name: frmChild FormStyle: fsMDIClild |
|
3 |
Tidak auto create |
Project ->Options |
FrmChild -> Avaliable forms |
|
5 |
Membuat menu aplikasi |
||
|
Pada MDI Frame |
&File &New &Open - E&xit |
&Window &Tile &Cascade &Arrange Icons |
|
|
Pada Clild Window |
&File &New &Open &Close &Save Save &as &Printer S&etup - E&xit |
&Edit &Character Cu&t Ctrl-X &Copy Ctrl-C &Right &Paste Ctrl-V &Center De&lete Ctrl-D - - &Word Wrap Select &All - &Font… |
|
|
6 |
Save All |
||
|
7 |
Menggabungkan Menu |
frmFrame : File frmFrame: Window frmChild: File frmChild: Edit frmChild: Character |
GroupIndex = 0 9 0 => File pada Frame akan tertimpa 1 1 |
|
8 |
Membuat Child saat runtime |
frmFrame: File-> New Click |
Implementation uses Unit2; … Var editForm: TfrmChild; begin editForm := TfrmChild.Create(self); end; |
|
frmClild: File->New Click |
Implementation uses Unit1; { $R *.dfm} frmFrame.New1Click(nil); |
||
|
9 |
Coba Run |
||
|
10 |
Mengatur Child |
Frame: Window-> Tile Click |
Tile |
|
Frame: Window-> Cascade Click |
Cascade |
||
|
Frame: Window-> Arrange Click |
Arrange |
||
|
11 |
Membuat Daftar child window |
Frame: Properti WindowMenu = Window1 |
|
|
10 |
Membuat Text Editor pada Child |
Drop komponen RichEdit |
Align = alClient Name = RichEdit1 |
|
11 |
Alignment Text |
Character -> Left, ulangi untuk Character -> Right1 Character -> Center |
procedure TfrmChild.AlignClick(Sender: TObject); begin Left1.Checked := False; Right1.Checked := False; Center1.Checked := False; with Sender as TMenuItem do Checked := True; with RichEdit1.Paragraph do if Left1.Checked then Alignment := taLeftJustify else if Right1.Checked then Alignment := taRightJustify else if Center1.Checked then Alignment := taCenter; end; |
|
12 |
Scroll Bar dan Word Wrap |
Character -> Word Wrap |
procedure TEditForm.Wordwrap1Click(Sender: TObject); begin with RichEdit1 do begin WordWrap := not WordWrap; { toggle word wrapping } if WordWrap then ScrollBars := ssVertical else ScrollBars := ssBoth; WordWrap1.Checked := WordWrap; { set menu item check } end; end; |
|
13 |
Memblok Text |
Edit | Select All |
procedure TEditForm.Selectall1Click(Sender: TObject); begin RichEdit1.SelectAll; end; |
|
14 |
Cut Copy Paste |
Edit->Cut, dll |
procedure TEditForm.Cut1Click(Sender: TObject); begin Editor.CutToClipboard; end; procedure TEditForm.Copy1Click(Sender: TObject); begin Editor.CopyToClipboard; end;
procedure TEditForm.Paste1Click(Sender: TObject); begin Editor.PasteFromClipboard; end; |
|
15 |
Delete Text |
Edit Delete |
procedure TEditForm.Delete1Click(Sender: TObject); begin Editor.ClearSelection; end; |
|
16 |
Membuka File |
frmFrame: Drop Komponen OpenDialog |
Properti Filter = Rich text files (*.rtf) *.rtf Plain text files (*.txt) *.txt All files *.* |
|
frmChild: File -> Open Click |
. . private { private declarations } PathName: string; public { public declarations } procedure Open(const fileName: string); end; . . . procedure TEditForm.Open(const fileName: string); begin PathName := fileName; Caption := ExtractFileName(fileName); with RichEdit1 do begin Lines.LoadFromFile(PathName); SelStart := 0; Modified := False; end; end; procedure TEditForm.Open1Click(Sender: TObject); begin FrameForm.Open1Click(Sender); end; |
||
|
frmFrame: File -> Open |
procedure TFrameForm.Open1Click(Sender: TObject); begin if OpenFileDialog.Execute then with TEditForm.Create(Self) do Open(OpenFileDialog.FileName); end; |
||
|
17 |
Save File |
frmFrame: Drop komponen SaveDialog |
Properti Filter = Rich text files (*.rtf) *.rtf Plain text files (*.txt) *.txt All files *.* |
|
frmChild: File -> Save As |
procedure TEditForm.Saveas1Click(Sender: TObject); begin SaveFileDialog.FileName := PathName; if SaveFileDialog.Execute then begin PathName := SaveFileDialog.FileName; Caption := ExtractFileName(PathName); Save1Click(Sender); end; end; |
||
|
File->Save |
procedure TEditForm.Save1Click(Sender: TObject); begin if PathName = DefaultFileName then SaveAs1Click(Sender) else begin Editor.Lines.SaveToFile(PathName); Editor.Modified := False; end; end; |
||
|
18 |
Font Dialog |
Child: Drop komponen FontDialog: Character->FOnt |
procedure TEditForm.Font1Click(Sender: TObject); begin FontDialog1.Font := Editor.Font; if FontDialog1.Execute then Editor.SelAttributes.Assign(FontDialog1.Font); end; |
|
19 |
Mencetak File |
Child: drop komponen PrinterDialog dan PrinterSetupDialog |
|
|
File->Print Setup |
procedure TEditForm.Printersetup1Click(Sender: TObject); begin PrinterSetupDialog1.Execute; end; |
||
|
File->Print |
procedure TEditForm.Print1Click(Sender: TObject); begin if PrintDialog1.Execute then Editor.Print(PathName); end; |
||
|
20 |
Keluar |
Frame: File->Exit |
procedure TFrameForm.Exit1Click(Sender: TObject); begin Close; end; |
|
Child: onClose |
procedure TEditForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; TCloseAction describes how a form should respond when it is closed. caFree The form is closed and all allocated memory for the form is freed. |
||
|
Child : onQueryClose |
procedure TEditForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); const SWarningText = ‘Save changes to %s?’; begin if Editor.Modified then begin case MessageDlg(Format(SWarningText, [PathName]), mtConfirmation, [mbYes, mbNo, mbCancel], 0) of idYes: Save1Click(Self); idCancel: CanClose := False; end; end; end; Use OnCloseQuery to specify the conditions under which the form can close. An OnCloseQuery event handler returns a Boolean CanClose value that determines whether a form is allowed to close. Its default value is true. |
||
|
Child: File -> Exit |
procedure TEditForm.Exit1Click(Sender: TObject); begin FrameForm.Exit1Click(Sender); end; |
||
|
21 |
Coba Run |
Apa yang sudah dipelajari?
- membuat form MDI child dan frame
- membuka form saat runtime
- membuat Menu
- menggabungkan menu Frame dan Child
- menggunakan komponen RichEdit alignment, word wrap , cut copy paste delete
- menggunakan komponen Open, Save, PrinterSetup, Print, dan Font Dialog
- menggunakan event form Close dan CloseQuery
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=8f95ea4a-fb02-4b4b-ac62-6af1d4e01476)



Recent Comments