Sabtu, 28 Mei 2011

Belajar Membuat Aplikasi NotePad Dengan Visual Basic

Berawal dari tugas kuliah membuat aplikasi Notepad, saya iseng ja nulis di blog ini. ya mungkin bisa sharing, saya juga masih belum banyak mengerti. dan mungkin program masih jauh dari sempurna...he

Program Aplikasi Notepad




Program ini merupakan sebuah program aplikasi yang hampir sama dengan notepad pada windows. Fungsi dan menu dari program aplikasi ini juga hampir sama dengan aplikasi notepad. Menu tersebut antara lain pada File terdapat submenu New, Open, Save, SaveAs, dan Exit. Pada Menu Edit terdapat submenu Undo, Cut, Copy, Paste, delete, Sellect All, Find, Replace, Find Next, Time/Date. Pada menu Format terdapat submenu Font.

Langkah Pembuatan Program
1.      Jalankan Aplikasi Visual Basic 6.0 Kemudian buat project baru. (File à New Project à Standar EXE)
2.      Selanjutnya buat Form seperti terlihat pada gambar di atas. Save Form ini dengan nama FormMain dan Caption dari form ini NotePad



3.      Tambahkan komponen TextBox dengan nama TxtNotepad, hilangkan Text nya kemudian Sesuaikan ukuran TextBox tersebut sehingga memenuhi Form. Dimana pada TextBox ini pada properties Multiline diganti menjadi true dan pada Scrollbarnya diganti dengan 3-Both. Dan Tmbahkan CommonDialog dengan nama CommonDialog1 melalui tollbar standar, biasanya pada toolbar standar belum ada CommonDialog ini maka dapat diisikan dengan cara klik   (Project à Components à Kemudian beri centang pada Microsoft Common Dialog 6.0 à OK ) Seperti terlihat pada gambar berikut ini :


4.      Selanjutnya Klik kanan pada FormNotepad dan pilih Menu Editor untuk membuatkan Menu pada program aplikasi NotePad ini. Terlihat seperti gambar di bawah ini:
5.      Dengan cara seperti gambar di atas, kotak Dialog Menu Editor isikan Nama dan Caption dari Menu sebagai berikut :
Name
Caption
Type
Shortcut
mnuFile
File
Menu

mnuNew
New
SubMenu
Ctrl+N
mnuOpen
Open
SubMenu
Ctrl+O
mnuSave
Save
SubMenu
Ctrl+S
mnuSaveAs
Save As
SubMenu

mnuExit
Exit
SubMenu

mnuEdit
Edit
Menu

mnuUndo
Undo
SubMenu
Ctrl+Z
mnuCut
Cut
SubMenu
Ctrl+X
mnuCopy
Copy
SubMenu
Ctrl+C
mnuPaste
Paste
SubMenu
Ctrl+V
mnuDelete
Delete
SubMenu
Del
mnuFind
Find
SubMenu
Ctrl+F
mnuFindNext
Find Next
SubMenu

mnuReplace
Replace
SubMenu
Ctrl+R
mnuSelectAll
Select All
SubMenu
Ctrl+A
mnuFormat
Format
Menu

mnuWordWrap
Word Wrap
SubMenu

mnuFont
Font
SubMenu


6.      Tambahkan form baru lagi pada project yang sama, yaitu Form Find dan Form replace.
Dalam Form Find terdapat label dengan caption ‘Find’ , TextBox tanpa text, CommondButton masing dengan caption Find Next dan Cancel, dan terdapat sebuah Frame dengan Caption Direction, dalam frame tersebut terdapat OptionBotton masing-masing Up dan Down. Dan terdapat pula ChekBox terlihat pada gambar dibawah ini





Dalam Form Replace terdapat Label 2 buah dengan caption masing-masing Find dan Replace With. TexBox 2 tanpa Text, CommondBotton 4 buah masing-masing dengan Caption Find Next, Replace, Replace All, dan Cancel, dan juga sebuah ChekBox. Terlihat pada gambar di bawah ini:
 


Pengkodingan ( Source Code)

Ø  Mendeklarasikan
Private TempText As String
Private FilePath As String
Private UndoText As String
Code ini berfungsi untuk membuat beberapa fitur yang bekerja dengan baik, kita perlu beberapa level variabel, yang harus dinyatakan deklarasi Umum dalam form.

Ø  Resize
Private Sub Form_Resize()
    TxtNotePad.Width = Me.ScaleWidth
    TxtNotePad.Height = Me.ScaleHeight
    TxtNotePad2.Width = Me.ScaleWidth
    TxtNotePad2.Height = Me.ScaleHeight
End Sub
Code ini berfungsi yaitu Agar TextBox yang kita buat dapat secara otomatis berubah ukurannya sesuai dengan ukuran Form jika kita mengubahnya.

Ø  ShowSave
Private Function ShowSave()
                                    Dim result As Boolean
                                    result = False
                                    CommonDialog1.Filter = "Text Document|*.txt"
                                    CommonDialog1.ShowSave
                                    If (CommonDialog1.filename <> "") Then
                                                            result = True
                                                            SaveFile CommonDialog1.filename
                                    End If
                                    ShowSave = result
End Function
                                    Code ini berfunsi untuk memperlihatkan dimana tempat kita akan menyimpan data ketika mengKlik sub menu SaveAs
                                   
Ø  Function SaveAs
                                    Private Function SaveAs()
                                    Dim result As Boolean
                                    If (ShowSave) Then
                                                FilePath = CommonDialog1.filename
                                                TempText = TxtNotePad.Text
                                    Else
                                                result = False
                                    End If
                                    SaveAs = result
End Function
Code ini berfungsi Menyimpan file dengan terlebih dahulu menentukan dimana tempat file akan disimpan

Ø  Function Save
Private Function Save()
    Dim result As Boolean
    result = True
    If (FilePath = "") Then
        If (Not SaveAs) Then
            result = False
        End If
    Else
        SaveFile FilePath
        TempText = TxtNotePad.Text
    End If
    Save = TxtNotePad.Text
End Function
Code ini berfungsi untuk menyimpan file yang telah dibuat atau melanjutkan file yang pernah dibuat

Ø  SaveFile
Private Sub SaveFile(filename As String)
    Open filename For Output As #1
        Print #1, TxtNotePad.Text
    Close #1
End Sub
                        Code ini berfungsi Untuk menyimpan File yang telah dibuat.

Ø  OpenFile
Private Sub OpenFile(filename As String)
    Open filename For Input As #1
        If (Not EOF(1)) Then
            Input #1, Data
            TxtNotePad.Text = Data
            Do Until EOF(1)
            Input #1, Data
            TxtNotePad.Text = TxtNotePad.Text & vbNewLine & Data
            Loop
        End If
    Close #1
End Sub
Code ini berfunsi untuk Membuka file yang sudah pernah dibuat.

Ø  CekSave
Private Function CekSave()
    Dim result As Boolean
    Dim retval
    result = True
    If (TxtNotePad.Text <> TempText) Then
        retval = MsgBox("Do you want to save current text?", vbQuestion + vbYesNoCancel, "Warning")
        If (retval = vbCancel) Then
            result = False
        ElseIf (retval = vbYes) Then
            If (Not Save) Then result = False
        End If
    End If
    CekSave = result
End Function
 Code ini berfungsi untuk mengecek data yang belum tersimpan dan langsung di close, maka ada pemberitahuan data apakah mau di save atau tidak.


Ø  NewDoc
Private Sub NewDoc()
    TextText = ""
    FilePath = ""
    TxtNotepad.Text = ""
End Sub
Code ini berfungsi untuk membuat file baru di dalam notepad

Coding(source code) pada FormMain

Ø  New
Private Sub MnuNew_Click(Index As Integer)
    If (CekSave) Then NewDoc
    FormFind.TxFind.Text = ""
    FormFind.OpUp.Value = False
    FormFind.OpDown.Value = False
    FormFind.ChMatchcase.Value = False
End Sub
Submenu new ini berfungsi membuka aplikasi NotePad baru lagi, dimana pada saat aplikasi masih berjalan lalu klik menu File – New maka akan keluar konfirmasi “simpan data terlebih dahulu” , kalu mau menyimpan maka pilih Yes, untuk tidak menyimpan dan langsung muncul NotePad barupilih No. Dan untuk membatalkan pilih Cancel. Seperti contoh gambar di bawah ini:



Ø  Open
Private Sub MnuOpen_Click(Index As Integer)
                                                CommonDialog1.Filter = "All files|*.*"
                                                CommonDialog1.ShowOpen
                                                If (CommonDialog1.filename <> "") Then
                                                             FilePath = CommonDialog1.filename
                                                            OpenFile FilePath
                                                            TempText = TxtNotePad.Text
                                                 End If
End Sub                     
                                    Code ini berfungsi untuk membuka file notepad yang pernah tersimpan, pada saat di buka file-open maka akan langsung muncul folder tempat penyimpanan.

Ø  Save
Private Sub mnuSave_Click()
    Save
End Sub
                        Code ini berfungsi untuk menyimpan file yang sudah dibuat dalam notepad.

Ø  SaveAs
Private Sub mnuSaveAs_Click()
    SaveAs
End Sub
                        Code ini untuk menyimpan file tetap menyimpan dalam folder yang berbeda.
Ø  Exit
Private Sub mnuExit_Click()
    If (CekSave) Then End
End Sub
Code ini berfungsi untuk keluar dari notepad

Ø  Undo
Private Sub MnuUndo_Click()
    If (TxtNotePad.Visible) Then
    On Error Resume Next
    TxtNotePad.SetFocus
    SendKeys "^Z"
    Else
    On Error Resume Next
    TxtNotePad2.SetFocus
    SendKeys "^Z"
    End If
End Sub
                        Code ini berfungsi untuk kembali ke keadaan sebelumnya
Ø  Cut
Private Sub MnuCut_Click()
    Clipboard.Clear
    Clipboard.SetText ActiveControl.SelText
    ActiveControl.SelText = ""
End Sub
                        Code ini berfungsi untuk memotong memindahkan suatu data dari satu tempat ke tempat lain

Ø  Copy
Private Sub MnuCopy_Click()
    Clipboard.Clear
    Clipboard.SetText TxtNotePad.SelText
End Sub
                        Berfungsi untuk menggandakan suatu data

Ø  Paste
Private Sub MnuPaste_Click()
    TxtNotePad.SelText = Clipboard.GetText
    TxtNotePad2.SelText = Clipboard.GetText
End Sub
                        Berfungsi untuk mengoutputkan data yang sudah dicopy atau di  cut.

Ø  Delete
Private Sub mnuDelete_Click()
TxtNotepad.SelText = ""
End Sub
                        Berfungsi untuk menghapus huruf yang terdapat di dalam notepad.
Ø  Find
Private Sub MnFind_Click()
    FormFind.Show
End Sub
                        Berfungsi untuk untuk mencari text yang diinginkan

Ø  Find Next
Private Sub MnFindNext_Click()
    If (FormFind.OpUpStat = True) Then
        FormFind.FindUp FormMain.TxtNotePad.SelStart, FormFind.TxFindStat, FormFind.ChMatchcaseStat
    End If
    If (FormFind.OpDownStat = True) Then
        FormFind.FindDown FormMain.TxtNotePad.SelStart, FormFind.TxFindStat, FormFind.ChMatchcaseStat
    End If
End Sub
Berfungsi  untuk mencari text namun yang ini untuk mencari text yang selanjutnya

Ø  Replace
Private Sub MnReplace_Click()
    FormReplace.Show
End Sub
                                    Berfungsi untuk mengganti/mengubah text yang diinginkan menjadi sebuah text baru


Ø  Select All
Private Sub MnuSelectAll_Click()
If (TxtNotePad.Visible = True) Then
    TxtNotePad.SelStart = 0
    TxtNotePad.SelLength = Len(ActiveControl.Text)
Else
    TxtNotePad2.SelStart = 0
    TxtNotePad2.SelLength = Len(ActiveControl.Text)
End If
End Sub
                        Code ini berfungsi untuk menblok semua data pada notepad.

Ø  Word Wrap
Private Sub MnWordWrap_Click()
    If (MnWordWrap.Checked = False) Then
        TxtNotePad2.Text = TxtNotePad.Text
        TxtNotePad2.Font = TxtNotePad.Font
        TxtNotePad2.FontBold = TxtNotePad.FontBold
        TxtNotePad2.FontItalic = TxtNotePad.FontItalic
        TxtNotePad2.FontStrikethru = TxtNotePad.FontStrikethru
        TxtNotePad2.FontUnderline = TxtNotePad.FontUnderline
        TxtNotePad2.FontSize = TxtNotePad.FontSize
        TxtNotePad2.SelStart = TxtNotePad.SelStart
        TxtNotePad.Visible = False
        TxtNotePad2.Visible = True
        MnWordWrap.Checked = True
    Else
        TxtNotePad.Text = TxtNotePad2.Text
        TxtNotePad.Font = TxtNotePad2.Font
        TxtNotePad.FontBold = TxtNotePad2.FontBold
        TxtNotePad.FontItalic = TxtNotePad2.FontItalic
        TxtNotePad.FontStrikethru = TxtNotePad2.FontStrikethru
        TxtNotePad.FontUnderline = TxtNotePad2.FontUnderline
        TxtNotePad.FontSize = TxtNotePad2.FontSize
        TxtNotePad.SelStart = TxtNotePad2.SelStart
        TxtNotePad.Visible = True
        TxtNotePad2.Visible = False
        MnWordWrap.Checked = False
    End If
End Sub
            Digunakan untuk suatu text yang panjang berlanjut ke bawah jika sudah penuh dan tidak terus ke samping.

Ø  Font
Private Sub MnFont_Click()
                        CommonDialog1.FontName = FormMain.TxtNotePad.Font
                        CommonDialog1.FontBold = FormMain.TxtNotePad.FontBold
                        CommonDialog1.FontItalic = CommonDialog1.FontItalic
                        CommonDialog1.FontSize = FormMain.TxtNotePad.FontSize
                        CommonDialog1.FontStrikethru = FormMain.TxtNotePad.FontStrikethru
                        CommonDialog1.FontUnderline = FormMain.TxtNotePad.FontUnderline
                        CommonDialog1.FontSize = FormMain.TxtNotePad.FontSize
                        CommonDialog1.ShowFont
                        FormMain.TxtNotePad.Font = CommonDialog1.FontName
                        FormMain.TxtNotePad.FontBold = CommonDialog1.FontBold
                        FormMain.TxtNotePad.FontItalic = CommonDialog1.FontItalic
                        FormMain.TxtNotePad.FontStrikethru = CommonDialog1.FontStrikethru
                        FormMain.TxtNotePad.FontUnderline = CommonDialog1.FontUnderline
                        FormMain.TxtNotePad.FontSize = CommonDialog1.FontSize
End Sub
            Code inim berfungsi untu mengatur font data pada notepad.

Coding(source code) pada FormFind

Ø  Find Next
Private Sub BtFind_Click()
    If (OpUp.Value = True) Then
        If (FormMain.TxtNotePad.Visible = True) Then
            FindUp FormMain.TxtNotePad.SelStart, TxFind.Text, ChMatchcase.Value
        Else
            FindUp FormMain.TxtNotePad2.SelStart, TxFind.Text, ChMatchcase.Value
        End If
    End If
    If (OpDown.Value = True) Then
        If (FormMain.TxtNotePad.Visible = True) Then
            FindDown FormMain.TxtNotePad.SelStart, TxFind.Text, ChMatchcase.Value
        Else
            FindDown FormMain.TxtNotePad2.SelStart, TxFind.Text, ChMatchcase.Value
        End If
    End If
           
    TxFindStat = TxFind.Text
    OpUpStat = OpUp.Value
    OpDownStat = OpDown.Value
    ChMatchcaseStat = ChMatchcase.Value
End Sub
                        Code ini berfungsi untuk mencari data yang diinginkan selanjutnya.
Ø  Cancel
Private Sub BtCancel_Click()
    FormFind.Hide
End Sub

                        Code ini berfungsi untuk keluar atau membatalkan pemcarian.




Coding(source code) pada FormReplace

Ø  Find Next
Private Sub BtFindNext_Click()
        If (FormMain.TxtNotePad.Visible = True) Then
            FormFind.FindDown FormMain.TxtNotePad.SelStart, TxFind2.Text, ChMatchcase.Value
        Else
            FormFind.FindDown FormMain.TxtNotePad2.SelStart, TxFind2.Text, ChMatchcase.Value
        End If
    ReplaceStat = True
    ReplaceStat2 = True
End Sub



Ø  Replace All
Private Sub BtReplaceAll_Click()
    If (FormMain.TxtNotePad.Visible = True) Then
        If (ChMatchcase.Value = 1) Then
        FormMain.TxtNotePad.Text = Replace(FormMain.TxtNotePad.Text, TxFind2.Text, TxReplace.Text, 1, -1, vbBinaryCompare)
        Else
        FormMain.TxtNotePad.Text = Replace(FormMain.TxtNotePad.Text, TxFind2.Text, TxReplace.Text, 1, -1, vbTextCompare)
        End If
    Else
        If (ChMatchcase.Value = 1) Then
        FormMain.TxtNotePad2.Text = Replace(FormMain.TxtNotePad2.Text, TxFind2.Text, TxReplace.Text, 1, -1, vbBinaryCompare)
        Else
        FormMain.TxtNotePad2.Text = Replace(FormMain.TxtNotePad2.Text, TxFind2.Text, TxReplace.Text, 1, -1, vbBinaryCompare)
        End If
    End If
End Sub



Ø  Replace
Private Sub BtReplace_Click()
    If (FormMain.TxtNotePad.Visible = True) Then
        If (ReplaceStat = False) And (ReplaceStat2 = False) Then
            FormFind.FindDown FormMain.TxtNotePad.SelStart, TxFind2.Text, ChMatchcase
            ReplaceStat = True
            ReplaceStat2 = True
           
        Else
            If (FormMain.TxtNotePad.SelLength <> 0) Then
            FormMain.TxtNotePad.SelText = TxReplace.Text
            FormFind.FindDown FormMain.TxtNotePad.SelStart, TxFind2.Text, ChMatchcase
            End If
        End If
    Else
        If (ReplaceStat = False) And (ReplaceStat2 = False) Then
            FormFind.FindDown FormMain.TxtNotePad2.SelStart, TxFind2.Text, ChMatchcase
            ReplaceStat = True
            ReplaceStat2 = True
           
        Else
            If (FormMain.TxtNotePad2.SelLength <> 0) Then
            FormMain.TxtNotePad2.SelText = TxReplace.Text
            FormFind.FindDown FormMain.TxtNotePad2.SelStart, TxFind2.Text, ChMatchcase
            End If
        End If
    End If
   
End Sub


Ø  Cancel
Private Sub BtCancel_Click()
    FormReplace.Hide
End Sub
                        Code ini berfunsi untuk keluar atu membatalkan pencarian.

untuk programnya bisa download DISINI

Tidak ada komentar:

Posting Komentar