24/05/2018, 17:19

Xây dựng chương trình soạn thảo văn bản đơn giản

Trong bài thực hành này, để minh hoạ việc đưa hệ thống menu vào chương trình, ta sẽ đi xây dựng một ứng dụng soạn thảo văn bản đơn giản. Thực hành: Xây dựng chương trình soạn thảo văn bản có các tính năng Mở file, Soạn thảo và lưu file dạng ...

Trong bài thực hành này, để minh hoạ việc đưa hệ thống menu vào chương trình, ta sẽ đi xây dựng một ứng dụng soạn thảo văn bản đơn giản.

Thực hành: Xây dựng chương trình soạn thảo văn bản có các tính năng

  • Mở file, Soạn thảo và lưu file dạng TXT hoặc RTF
  • Định dạng kiểu chữ cho văn bản.
  • Giao diện như hình.
Giao diện chương trình.

Các bước thực hiện:

Bước 1: Đưa các điều khiển vào Form:

Vào menu Project → Components, và Click chọn 3 OCX sau:

Thêm các file OCX cần cho ứng dụng

Bước 2: Kéo các điều khiển Dialog , RichTextbox vào Form

Đặt giá trị cho các thuộc tính của mỗi điều khiển.

Viết lệnh:

 Khi người dùng mở file Text (Click chọn mục Mở file → File Text (*.txt) ):

'/// Mở hộp thoại chọn file, sau đó nạp file vừa chọn vào trong richtext box để soạn thảo

Private Sub mnuFileText_Click()

dlgChonFile.DialogTitle = "Chọn file cần mở"

dlgChonFile.Filter = "Các file text |*.txt|" '/// Chỉ hiện những file có phần mở rộng txt

dlgChonFile.ShowOpen '/// Mở hộp thoại để người dùng chọn file

rtfEditor.LoadFile dlgChonFile.FileName '/// Nạp file vừa chọn vào Richtextbox

End Sub

 Khi người dùng mở file RTF (Click chọn mục Mở file → File RTF (*.rtf) )

'/// Mở hộp thoại chọn file, sau đó nạp file vừa chọn vào trong richtext box để soạn thảo

Private Sub mnuFileRTF_Click()

dlgChonFile.DialogTitle = "Chọn file cần mở"

dlgChonFile.Filter = "Các file RTF |*.rtf|" '/// Chỉ hiện những file có phần mở rộng rtf

dlgChonFile.ShowOpen '/// Mở hộp thoại để người dùng chọn file

rtfEditor.LoadFile dlgChonFile.FileName '/// Nạp file vừa chọn vào Richtextbox

End Sub

 Khi người dùng chọn menu Save (Click chọn mục File → Save )

'/// Lưu file đang soạn hiện tại vào đĩa. Lưu ý, tên và đường dẫn của file này vẫn còn

'/// trong thuộc tính dlgChonFile.FileName

Private Sub mnuSave_Click()

rtfEditor.SaveFile dlgChonFile.FileName '/// Gọi SaveFile để Lưu ra đĩa

End Sub

 Khi người dùng chọn menu Chữ đậm :

Private Sub mnuBold_Click()

rtfEditor.Font.Bold = True '/// Đặt font chữ văn bản trong richtextbox là đậm

End Sub

Tương tự cho các menu khác.

Dưới đây là toàn bộ chương trình nguồn :

Option Explicit

'/// Mở file RTF để soạn thảo

Private Sub mnuFileRTF_Click()

dlgChonFile.DialogTitle = "Chọn file cần mở"

dlgChonFile.Filter = "Các file RTF |*.rtf|" '/// Chỉ hiện thị các file RTF

dlgChonFile.ShowOpen '/// Hiển thị hộp thoại chọn file

rtfEditor.LoadFile dlgChonFile.FileName '/// Nạp file vừa chọn vào Richtextbox

End Sub

'//// Mở file TEXT để soạn thảo

Private Sub mnuFileText_Click()

dlgChonFile.DialogTitle = "Chọn file cần mở"

dlgChonFile.Filter = "Các file text |*.txt|" '/// Chỉ hiển thị các file Text

dlgChonFile.ShowOpen

rtfEditor.LoadFile dlgChonFile.FileName

End Sub

'/// Định dạng văn bản ở dạng chữ đậm.

Private Sub mnuBold_Click()

rtfEditor.Font.Bold = True

End Sub

'/// Định dạng văn bản ở dạng chữ nghiêng

Private Sub mnuItalic_Click()

rtfEditor.Font.Italic = True

End Sub

'/// Đặt văn bản trở về chữ thường

Private Sub mnuNormal_Click()

rtfEditor.Font.Italic = False

rtfEditor.Font.Bold = False

End Sub

'/// Lưu nội dung của file đang soạn ra đĩa. Bạn cũng có thể chỉ định lưu ra file khác

Private Sub mnuSave_Click()

rtfEditor.SaveFile dlgChonFile.FileName

End Sub

'/// Thoát khỏi chương trình

Private Sub mnuExit_Click()

End

End Sub

Ghi chú:

  • Hộp thoại mở file (ShowOpen) chỉ trả về cho ta tên và đường dẫn của file mà người dùng chọn chứ không thể TỰ ĐỘNG MỞ file đó được. Ở đây chúng ta phải viết lệnh để mở file đó (Ví dụ dùng phương thức LoadFile của đối tượng Richtextbox để mở)
  • Bạn có thể định dạng văn bản chỉ trong phạm vi bị bôi đen bằng cách thiết lập giá trị cho các thuộc tính tương ứng, ví dụ: rtfEditor.SelBold = True để đặt phần văn bản bị bôi đen trở thành đậm (phần văn bản khác không bị ảnh hưởng gì) v.v…
0