Home > Delphi > 10. Aplikasi Multiple Document Interface

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]

Tutorial Aplikasi Multiple Document Interface #1a

[video1b]

Tutorial Aplikasi Multiple Document Interface #1b

 

[video2]

Tutorial Aplikasi Multiple Document Interface #2

 

[video3]

Tutorial Aplikasi Multiple Document Interface #3

 

[video4]

Tutorial Aplikasi Multiple Document Interface #4

 

[video5]

Tutorial Aplikasi Multiple Document Interface #5

 

[video6]

Tutorial Aplikasi Multiple Document Interface #6

 

[video7]

Tutorial Aplikasi Multiple Document Interface #7

 

[video8]

Tutorial Aplikasi Multiple Document Interface #8

 

[video9]

Tutorial Aplikasi Multiple Document Interface #9

 

[video10]

Tutorial Aplikasi Multiple Document Interface #10

 

[video11]

Tutorial Aplikasi Multiple Document Interface #11

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

&Print

&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?

  1. membuat form MDI child dan frame
  2. membuka form saat runtime
  3. membuat Menu
  4. menggabungkan menu Frame dan Child
  5. menggunakan komponen RichEdit alignment, word wrap , cut copy paste delete
  6. menggunakan komponen Open, Save, PrinterSetup, Print, dan Font Dialog
  7. menggunakan event form Close dan CloseQuery

Reblog this post [with Zemanta]

  • Share/Bookmark
  1. No comments yet.
  1. No trackbacks yet.
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.