Tìm hiểu ngôn ngữ lập trình Visual Basic

Tài liệu Tìm hiểu ngôn ngữ lập trình Visual Basic: ... Ebook Tìm hiểu ngôn ngữ lập trình Visual Basic

doc337 trang | Chia sẻ: huyen82 | Lượt xem: 2123 | Lượt tải: 3download
Tóm tắt tài liệu Tìm hiểu ngôn ngữ lập trình Visual Basic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phần I: Cơ sở lý thuyết về ngôn ngữ visual Basic Chương 1: Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan về ngôn ngữ lập trình Visual Basic Visual Basic, con đường nhanh nhất và đơn giản nhất để tạo những ứng dụng cho Microsoft Windows. Bất kể bạn là một nhà chuyên nghiệp hay là một người mới lập trình Windows, Visual Basic cung cấp cho bạn một tập hợp các công cụ hoàn chỉnh để nhanh chóng phát triển các ứng dụng. Vậy Visual Basic là gì ? Thành phần “Visual” nói đến các phương thức dùng để tạo giao diện đồ họa người sử dụng (GUI). Thay vì viết những dòng mã để mô tả sự xuất hiện và vị trí của những thành phần giao diện, ta chỉ cần thêm vào những đối tượng đã được định nghĩa trước ở vị trí nào đó trên màn hình. Thành phần “Basic” nói đến ngôn ngữ “BASIC” (Beginners All-Purpose Symbolic Instruction Code) một ngôn ngữ được dùng bởi nhiều nhà lập trình hơn bất cứ một ngôn ngữ nào khác trong lịch sử máy tính. Visual Basic được phát triển dần dần dựa trên ngôn ngữ BASIC, và bây giờ chứa đựng hàng trăm điều lệnh, hàm, và từ khóa… có quan hệ trực tiếp với giao diện đồ họa của Windows. Ngôn ngữ lập trình Visual Basic không chỉ là Visual Basic. Hệ thống lập trình Visual Basic, những ứng dụng bao gồm Microsoft Excel, Microsoft Access, và nhiều ứng dụng Windows khác đều dùng cùng một ngôn ngữ. Mặc dù mục đích của chúng ta là tạo ra những ứng dụng nhỏ cho bản thân hay một nhóm, một hệ thống các công ty lớn, hoặc thậm chí phân phối những ứng dụng ra toàn cầu qua Internet. Visual Basic là cung cụ mà bạn cần. Những chức năng truy xuất dữ liệu cho phép ta tạo ra những cơ sở dữ liệu, những ứng dụng front-end, và những thành phần phạm vi server-side cho hầu hết các dạng thức cơ sở dữ liệu phổ biến, bao gồm Microsoft SQL Server và những cơ sở dữ liệu mức enterprise khác. Những kỹ thuật ActiveX cho phép ta dùng những chức năng được cung cấp từ những ứng dụng khác, như là chương trình xử lý văn bản Microsoft Word, bảng tính Microsoft Excel và những ứng dụng Windows khác. Khả năng Internet làm cho nó dễ dàng cung cấp cho việc thêm vào những tài liệu và ứng dụng qua Internet hoặc intranet từ bên trong ứng dụng của bạn, hoặc tạo những ứng dụng Internet server. Ưùng dụng của bạn kết thúc là một file .exe thật sự. Nó dùng một máy ảo Visual Basic để bạn tự do phân phối ứng dụng. Cấu trúc của một ứng dụng Visual Basic Một ứng dụng thật ra là một tập hợp các chỉ dẫn trực tiếp đến máy tính để thi hành một hay nhiều tác vụ. Cấu trúc của một ứng dụng là phương pháp trong đó các chỉ dẫn được tổ chức, đó là nơi chỉ dẫn được lưu giữ và thi hành những chỉ dẫn trong một trình tự nhất định. Vì một ứng dụng Visual Basic, trên cơ bản là những đối tượng, cấu trúc mã đóng để tượng trưng cho những mô hình vật lý trên màn hình. Bằng việc định nghĩa, những đối tượng chứa mã và dữ liệu. Form, cái mà chúng ta nhìn thấy trên màn hình là tượng trưng cho những thuộc tính, quy định cách xuất hiện và cách cư xử. Cho mỗi form trong một ứng dụng, có một quan hệ module form (với tên file mở rộng là .frm) dùng để chứa đựng mã của nó. Mỗi module chứa những thủ tục sự kiện – những đoạn mã, nơi đặt những chỉ dẫn, cái sẽ được thi hành trong việc đáp ứng những sự kiện chỉ định. Form có thể chứa những điều khiển. Tương ứng với mỗi điều khiển trên form, có một tập hợp những thủ tục sự kiện trong module form đó. Mã không chỉ quan hệ với một form chỉ định hay điều khiển có thể được đặt trong một loại module khác, một module chuẩn (.BAS). Một thủ tục được dùng để đáp ứng những sự kiện trong những đối tượng khác nhau phải được đặt trong cùng một chuẩn, thay vì tạo những bản sao mã trong những thủ tục sự kiện cho mỗi đối tượng. Một lớp module (.cls) được dùng để tạo những đối tượng, cái mà có thể được gọi từ những thủ tục bên trong ứng dụng của bạn. Trong khi một module chuẩn chỉ chứa mã, một lớp module chứa đựng cả mã và dữ liệu. Ta có thể nghĩ nó như một điều khiển. 3. Chúng ta có thể làm gì với Visual Basic Tạo giao diện người sử dụng Giao diện người sử dụng có lẽ là thành phần quan trọng nhất của một ứng dụng. Đối với người sử dụng, giao diện chính là ứng dụng ; họ không cần chú ý đến thành phần mã thực thi bên dưới. Ứng dụng của chúng ta có thể phổ biến được hay không phụ thuộc vào giao diện. Sử dụng những điều khiển chuẩn của Visual Basic Ta dùng những điều khiển để lấy thông tin mà người sử dụng nhập vào, và để hiển thị kết xuất. Những điều khiển mà ta có thể dùng trong ứng dụng bao gồm hộp văn bản, nút lệnh, và hộp danh sách,…. Những điều khiển khác cho ta truy xuất những ứng dụng khác, xử lý dữ liệu của nó như là một thành phần mã trong ứng dụng của bạn. Lập trình với những đối tượng. Những đối tượng là thành phần chủ yếu để lập tình Visual Basic. Những đối tượng có thể là form, những điều khiển hay cơ sở dữ liệu. Lập trình với phần hợp thành Chúng ta đôi khi cần sử dụng khả năng tính toán của Microsoft Excel trong ứng dụng Visual Basic, hay định dạng một tài liệu sử dụng thanh công cụ định dạng của Microsoft Word, hoặc lưu trữ và xử lý dữ liệu dùng Microsoft Jet… Tất cả những điều này có thể thực hiện được bằng cách xây dựng những ứng dụng của chúng ta sử dụng những thành phần ActiveX. Thêm vào đó, Visual Basic có thể giúp chúng ta tạo ra những điều khiển ActiveX riêng. Đáp ứng những sự kiện chuột và bàn phím Những ứng dụng Visual Basic có thể đáp ứng một lượng lớn sự kiện chuột và bàn phím. Ví dụ form, hộp ảnh, và những điều khiển ảnh có thể phát hiện vị trí con trỏ chuột, có thể quyết định phím trái hay phím phải được nhấn, và có thể đáp ứng những tổ hợp của phím chuột với phím Shift, Ctrl, hay Alt. Sử dụng những điều khiển phím, ta có thể lập trình những điều khiển và form để đáp ứng các hành động phím hoặc phiên dịch và xử lý mã Ascii của ký tự. Thêm vào đó, những ứng dụng Visual Basic có thể hỗ trợ sự kiện rê và thả cũng như tính năng rê và thả OLE. Làm việc với văn bản và đồ họa. Visual Basic cung cấp khả năng đồ họa và văn bản phức tạp trong ứng dụng. Những thuộc tính văn bản có thể giúp ta nhấn mạnh các khái niệm quan trọng và các chi tiết cần quan tâm. Thêm vào đó, Visual Basic cung cấp khả năng đồ họa cho phép ta linh động trong thiết kế, bao hàm các hình ảnh động bằng cách hiển thị một loạt các hình ảnh liên tiếp nhau. Gỡ rối mã và quản lý lỗi Đôi khi có những lỗi xảy ra bên trong mã của ứng dụng. Những lỗi nghiêm trọng có thể là nguyên nhân một ứng dụng không đáp ứng lệnh, thông thường yêu cầu người sử dụng khởi động lại ứng dụng, và không lưu lại những gì ta đã làm. Quá trình tìm ra và sửa lỗi gọi là gỡ rối. Visual Basic cung cấp nhiều công cụ giúp chúng ta phân tích ứng dụng làm việc như thế nào. Những công cụ gỡ rối đặt biệt hữu ích trong việc tìm ra nguồn gốc lỗi, nhưng chúng ta cũng có thể dùng những công cụ này để kiểm tra chương trình hoặc tìm hiểu những ứng dụng khác nhau làm việc như thế nào. Xử lý ổ đĩa, thư mục và file Khi lập trình trong Windows, nó rất quan trọng để có khả năng thêm, di chuyển, tạo mới hoặc xóa những thư mục và file, lấy thông tin về và xử lý ổ đĩa. Visual Basic cho phép chúng ta xử lý ổ đĩa, thư mục và file bằng hai phương pháp : qua những phương htức cũ như là điều lệnh Open, Write#, và qua một tập hợp các công cụ mới như FSO (File System Object) Thiết kế cho việc thi hành và tính tương thích Visual Basic chia xẻ hầu hết những tính năng ngôn ngữ trong Visual Basic cho những ứng dụng, bao gồm trong Microsoft Office và nhiều ứng dụng khác. Visual Basic, VBScript, một ngôn ngữ script Internet, đều là tập hợp con của ngôn ngữ Visual Basic. Phân phối những ứng dụng Sau khi tạo một ứng dụng Visual Basic, ta có thể tự do phân phối bất kỳ ứng dụng nào đã tạo bằng Visual Basic đến bất cứ ai dùng Microsoft Windows. Ta có thể phân phối ứng dụng trên đĩa, trên CD, qua mạng, trên intranet hoặc Internet. 4. Tóm tắt ngôn ngữ Biến Biến được dùng để lưu tạm thời các giá trị tính toán trong quá trình xử lý chương trình. Cách khai báo biến Visual Basic dùng cách khai báo biến trong chương trình như sau : Dim As Ta cũng có thể không cần khai báo kiểu biến (tức bỏ mệnh đề As phía sau), trong trường hợp này, biến có thể được dùng để lưu giữ một giá trị bất kỳ. Quy tắc đặt tên biến Tên biến có chiều dài tối đa 255 ký tự. Phải bắt đầu bằng một chữ cái. Không đặt các khoảng trống và các ký hiệu (+ - * /…) trong tên biến. Không được trùng với từ khóa của ngôn ngữ. Tránh đặt tên trùng nhau. Phạm vi sử dụng biến Phạm vi sử dụng biến tùy thuộc cách ta khai báo và chỗ ta đặt dòng lệnh khai báo biến. Nếu ta khai báo trong phần General, biến có thể được dùng ở bất kỳ đoạn lệnh nào trong from và cũng chỉ mất đi khi from được giải phóng khỏi bộ nhớ. Nếu ta khai báo biến trong phần viết lệnh cho một sự kiện của một đối tượng (tức khai báo giữa hai dòng Sub và End Sub của mã lệnh đó) thì biến chỉ tồn tại và dùng được trong phạm vi hai dòng Sub và End Sub đó mà thôi. Biến như vậy gọi là biến riêng hay biến nội bộ. Nếu ta dùng từ khóa Public thay cho Dim để khai báo biến , biến sẽ tồn tại trong suốt thời gian thực hiện chương trình và có thể dùng được trong bất cứ đoạn lệnh nào của chương trình. Biến như vậy gọi là biến chung hay biến toàn cục. 4.2. Các kiểu dữ liệu trong Visual Basic Tên kiểu Kích thước Khoảng gía trị Byte 1 byte 0 đến 255 (tức có thể gán cho biến các giá trị nhỏ nhất là 0 và lớn nhất là 255) Integer 2 byte -32768 đến 32767 Long 4 byte -2.147.483.648 đến 2.147.483.647 Single 4 byte -3,402823E38 đến –1,401298E-45 (các gía trị âm) 1,401298E-45 đến 3,402823E38 (các gía trị dương) Double 8 byte -1,79769E308 đến –4,94065E-324 (giá trị âm) 4,94065E-324 đến 1,79769E308 (giá trị dương) Currency 8 byte -922337203685477,5808 đến 922337203685477,5807 Boolean 2 byte True tới False Date 2 byte 1 tháng 1 năm 100 đến 31 tháng 12 năm 9999 ; Thời gian từ 0:00:00 đến 23:59:59: String 1 byte cho có thể lên đến 231 ký tự mỗi ký tự Variant 16 byte + Null, Error, bất kỳ kiểu số nào có giá trị trong khoảng 1 byte cho Double hay bất kỳ nội dung text nào mỗi ký tự Ký hiệu Exx phía sau số có nghĩa là nhân với 10xx. Kiểu số nguyên dương (không chấp nhận số âm) gồm kiểu Byte. Kiểu số nguyên (chấp nhận cả số âm nhưng không chấp nhận phần lẻ thập phân) gồm các kiểu :Integer, Long. Kiểu số thực gồm Single, Double, Currency. Kiểu Boolean gọi là kiểu luận lý, nó chỉ chấp nhận hai giá trị True là đúng và False là sai. Kiểu String dùng để chứa các giá trị chuỗi. Một chuỗi ký tự có thể có nhiều ký tự. Khi viết một giá trị chuỗi, ta phải bao hai đầu nó bằng dấu nháy kép. Kiểu ngày tháng (Date) để chứa giá trị thời gian. Khi viết một giá trị kiểu Date, ta có thể viết theo bất cứ kiểu ghi giờ nào bao hai đầu bằng dấu #. Các toán tử trong Visual Basic 4.3.1. Các toán tử tính toán Toán tử Ý nghĩa Ví dụ + Cộng hai số hạng với nhau X =Y + 1 có thể dùng để cộng hai chuỗi st= “Visual” + “Basic” - Trừ hai số hạng X = Y - 1 * Nhân hai số hạng X = Y * 1 / Chia, trả về kiểu số thực Y = 1 / 2 \ Chia lấy nguyên X = 3 \ 2 ‘X sẽ nhận giá trị 1 Mod Chia lấy dư X = 7 Mod 4 ‘X sẽ nhận giá trị 3 ^ Lấy lũy thừa X = Y ^ 3 4.3.2. Các toán tử so sánh Toán tử Ý nghĩa > So sánh xem số thứ nhất có lớn hơn số thứ hai không. < So sánh xem số thứ nhất có nhỏ hơn số thứ hai không. = So sánh xem số thứ nhất có bằng số thứ hai không. So sánh xem số thứ nhất có khác hơn số thứ hai không. >= So sánh xem số thứ nhất có lớn hơn hay bằng số thứ hai không. <= So sánh xem số thứ nhất có nhỏ hơn hay bằng số thứ hai không. 4.3.3. Các toán tử luận lý Toán tử Ý nghĩa And Trả về True nếu cả hai số hạng đều là True, trả về False nếu một trong hai số hạng là False. Or Trả về True nếu một trong hai số hạng là True, trả về False nếu cả hai số hạng là False. Not Trả về True nếu số hạng là False, False nếu số hạng là True. 4.4. Cấu trúc tuyển và cấu trúc lặp 4.4.1. Cấu trúc tuyển Cấu trúc tuyển If Cú pháp 1 : If Then … ‘Nếu biểu thức luận lý trên là True … ‘thì thực hiện đoạn lệnh này End If Cú pháp 2 : If Then … ‘Nếu biểu thức luận lý trên là True … ‘thì thực hiện đoạn lệnh này Else … ‘Ngược lại nếu biểu thức luận lý là False … ‘thì thực hiện đoạn lệnh này. End If Cấu trúc tuyển Select Case Cú pháp : Select Case ‘xét biến hay biểu thức này Case ‘Nếu biến hay biểu thức bằng các giá trị này ‘thì thực hiện đoạn lệnh này … Case … ‘có thể có nhiều Case cho các điều kiện cần xét. [ Case Else ‘Nếu biến hay biểu thức không bằng các giá trị của các Case bên trên ] ‘thì thực hiện phần lệnh này … End Select Các cấu trúc lặp Cấu trúc Do…Loop Cú pháp 1 : Do While ‘trong khi biểu thức điều kiện đúng ‘thì thực hiện các câu lệnh này Loop ‘Quay trở về dòng Do While để kiểm tra lại Cú pháp 2 : Do ‘thực hiện ‘các câu lệnh này Loop Until ‘cho đến khi điều kiện đúng Cú pháp này khác cú pháp 1 ở chỗ : trong cú pháp 1 điều kiện được xét trước khi thực hiện các câu lệnh, cú pháp 2 điều kiện được xét sau khi thực hiện các câu lệnh. Cấu trúc For…Next Cú pháp : For biến = giá trị đầu To giá trị cuối [Step khoảng tăng] Next biến Thủ tục Cách định nghĩa thủ tục Một thủ tục trước khi muốn sử dụng nó phải định nghĩa nó. Dùng từ khóa Sub để khai báo thủ tục như thế này. Private/Pulic Sub … End Sub ‘Chỗ kết thúc thủ tục. Nếu ta khai báo bằng từ khóa Public, thủ tục có thể được gọi để sử dụng trong bất kỳ form nào trong chương trình. Nếu ta khai báo bằng từ khóa Private, thủ tục chỉ có thể dùng được trong form có chứa nó mà thôi Thủ tục có truyền tham số Khi một thủ tục được gọi mà có truyền thêm một số giá trị vào, các giá trị này được gọi là các tham số của thủ tục đó. Để làm điều này, khi khai báo thủ tục ta cần ghi thêm nó sẽ nhận bao nhiêu tham số bằng cú pháp như sau : Private/Public Sub ( As ,…) II. Những ứng dụng Internet Visual Basic Các khái niệm về ứng dụng Internet Ứng dụng Internet là gì ? Một ứng dụng Internet là một ứng dụng tương tác, một ứng dụng đã được dịch có thể truy xuất qua Internet. Ưùng dụng Internet có thể thi hành những công việc phức tạp trên cả client hay trên server. Trong một ứng dụng Internet server – based, nó dùng giao thức Internet HTTP để lấy lại những yêu cầu từ một client, đặc biệt là một Web browser, xử lý mã kết hợp với nó, và gửi trả dữ liệu về cho browser. Trong lập trình Internet Visual Basic, ta có thể thêm nội dung động vào những trang Web dễ dàng. Ưùng dụng Internet Visual Basic liên kết mã Visual Basic đến một hoặc nhiều trang HTML và quản lý sự kiện phát sinh trong những trang này bởi việc tương tác với chương trình trên cả client hay trên server. Giao tiếp với người dùng trong một ứng dụng Internet Visual Basic có thể là một chuỗi các trang HTML(Hyper Text Markup Language), hay là một sự trộn lẫn của trang HTML và Visual Basic form. Tuy nhiên, với loại giao diện nào thì ứng dụng cũng quản lý sự kiện, gọi những phương thức, thiết lập và lấy lại những thuộc tính cơ bản trên những thành phần trong trang HTML đó. Những mô hình đối tượng Internet Chúng ta chỉ dùng khái niệm lập trình hướng đối tượng trong ứng dụng Internet Visual Basic chỉ khi chúng ta làm trong ứng dụng Visual Basic form–based. Trong ứng dụng Internet Visual Basic, chúng ta dùng mô hình đối tượng quan hệ để truy xuất và xử lý thông tin và những điều khiển trên trang HTML. Có hai loại ứng dụng Internet Visual Basic : ứng dụng IIS và ứng dụng DHTML. Trong đó ứng dụng IIS (Internet Information Server), ta dùng mô hình đối tượng Active Server Pages (ASP) để lấy lại thông tin từ người sử dụng, gửi thông tin đến browse, và lưu lại thông tin về phiên làm việc hiện tại. Trong ứng dụng DHTML, ta dùng mô hình đối tượng Dynamic HTML (DHTML) để xử lý những thành phần trên một trang HTML. 1.3. Lịch sử phát triển trên Internet Nội dung tĩnh Ứng dụng đầu tiên trên Internet là những trang tĩnh, nó gửi nội dung nó đến browser và không tự phản ứng với bất kỳ hành động nào mà người sử dụng đã thi hành. Mặc dù mô hình trình bày với người sử dụng những trang thông tin đã được format nhưng sự tương tác đó là có giới hạn giữa người sử dụng và Web server. Những trang tĩnh này phải được hiệu chỉnh bằng tay để cập nhật những nội dung của nó. Trình bày nội dung động bằng cách lập trình Gateway Sự phát triển của những giao tiếp Gateway như là Common Gateway Interface (CGI), ứng dụng Internet Server Programming Interface (ISAPI), và những cái khác cho phép người sử dụng thêm vào những nội dung động cho Web. Với nội dung động, một browser có thể gửi một yêu cầu cho việc tìm kiếm thông tin. Server, thay vì trả về một trang tĩnh, nó chạy một script hay một ứng dụng và trả về trang HTML đã được cập nhật và thông tin chính xác. Điều bất thuận lợi của chương trình Gateway là khó tạo và thay đổi nó. Scripting Scripting cho phép nội dung động bằng cách kết hợp những Script có thể thi hành được vào trực tiếp trong một trang HTML. Thay vì yêu cầu Server, browser có thể sử lý những Script khi nó tải HTML này. Nhũng script có thể được sử lý trên cả Client hay trên Web server. Ngôn ngữ chung cho script Client – side là VBScript và JavaScript. Riêng với Script server – side, ngôn ngữ chung cho nó là Active Server Pages (ASP). Trong mô hình ASP Script, phát triển HTML và phát triển Script là cùng quá trình. Nó cho phép nhà cung cấp Web cung cấp những ứng dụng tương tác thay vì chỉ là xuất bản nội dung. Ứng dung Internet Visual Basic Kỹ thuật Internet Visual Basic cho phép ta liên kết những mã VB chuẩn với giao tiếp người sử dụng của những trang HTML. Nó cung cấp chức năng lập trình kết hợp với trang Web, cho phép ta tạo những trang động và tương tác. Với kỹ thuật Internet Visual Basic, ta có thể thi hành những hoạt động phức tạp mà không cần phải lập trình phức tạp như Gateway hay Scripting. Có hai loại ứng dụng Internet VB chính: ứng dụng IIS và ứng dụng DHTML. 1.4. Những thuận lợi của ứng dụng Internet Visual Basic Có nhiều phương pháp để phát triển những ứng dụng cho Internet. Trước khi có Visual Basic 6.0, những nhà phát triển thường dựa trên chương trình Gateway, trên chức năng ActiveX, hay trên Active Server Page để tạo những ứng dụng Internet động, tương tác. Phát triển ứng dụng Internet trong Visual Basic đưa ra nhiều khóa thuận lợi hơn những phương pháp trên. Ta có thể làm giảm đáng kể chi phí cho việc triển khai ứng dụng đến với mỗi người sử dụng. Người sử dụng của một ứng dụng Internet IIS có thể chạy ứng dụng này chỉ với duy nhất một browser thích hợp và thời gian chạy Visual Basic trên máy tính của họ. Những thành phần cần thiết đã được thiết lập tự động trước đó. Ta có thể sử dụng kiến thức của mình về Visual Basic và dùng môi trường lập trình Visual Basic, không cần phải học Scripting hay những thao tác xử lý những tag HTML để phát triển một ứng dụng có chức năng Web – base cao. Ta có thể tách biệt việc thiết kế giao diện người sử dụng từ việc viết mã cho một form hay một trang. Trong những ứng dụng Web – base trước, những người phát triển phải chèn những script của họ vào trực tiếp trong một tài liệu HTML, cái mà hầu như dùng để tạo giao diện người sử dụng. Nó làm cho mã trở nên khó đọc và quản lý. Trong ứng dụng IIS, ta có thể dùng lại những trang trong những ngữ cảnh khác nhau. Không giống như HTML, nơi mà thông tin từ trang này sang trang khác phải được gắn chặt vào trong bản thân HTML, thì việc lái thông tin cho một trang trong một ứng dụng Internet Visual Basic được lưu trữ tách biệt từ bản thân mỗi trang. Nó cho phép ta dùng trang này ở nhiều nơi trong một ứng dụng, việc thay đổi hướng tùy thuộc vào ngữ cảnh. Ta có thể giảm thời gian tải và do đó giảm thời gian tải mạng của chúng ta, bởi vì hệ thống không cần phải tải xuống những thành phần khác để chạy ứng dụng . Ta có thể dễ dàng lưu giữ trạng thái ứng dụng, như là tên của người sử dụng hoặc số account giữa những yêu cầu client. Tùy thuộc vào loại ứng dụng, ta có thể lưu giữ trạng thái trên client, trên server hay cả hai. Ta có thể gỡ rối những ứng dụng IIS và DHTML bằng những công cụ gỡ rối chuẩn của Visual Basic. 2. Ứng dụng Internet và những kỹ thuật Internet trong Visual Basic Ứng dụng Internet Visual Basic Ứng dụng IIS Những ứng dụng IIS thường trú trên Web Server và xử lý những yêu cầu đến từ một browser. Ứng dụng IIS xử lý yêu cầu đó, chạy mã VB kết hợp với nó và trả về những đáp ứng cho người sử dụng. Các quá trình xử lý cho một ứng dụng IIS đều xảy ra trên server. 2.1.2. Ứng dụng DHTML Ưùng dụng DHTML cho phép ta viết mã Visual Basic để quản lý những sự kiện trên bất cứ thành phần nào của một trang HTML. Hầu hết quá trình xử lý trong một ứng dụng DHTML có thể xảy ra trên máy browser, mặc dù ứng dụng có thể gọi server nếu thấy cần thiết. 2.1.3. Sự khác nhau giữa ứng dụng IIS và ứng dụng DHTML Ứng dụng IIS và ứng dụng DHTML là hai loại ứng dụng Internet mà ta có thể tạo trên Visual Basic. Chúng ta đều có thể đáp ứng những sự kiện trong một trang HTML, tuy nhiên cũng có sự khác giữa hai loại ứng dụng : Sự phụ thuộc – Ứng dụng DHTML được dùng cho intranet, và phụ thuộc vào Internet Explorer 4.0, trong khi IIS ứng dụng có thể được dùng trên Internet hoặc intranet. Người sử dụng của một ứng dụng IIS không cần chỉ định hệ điều hành hay browser. Mô hình đối tượng – Ứng dụng DHTML dùng mô hình đối tượng khác với ứng dụng IIS để truy xuất và làm việc với những thành phần trên một trang HTML. Trong khi ứng dụng IIS dùng mô hình đối tượng Active Server Pages, DHTML dùng mô hình đối tượng Dynamic HTML. Nơi xử lý các quá trình - Ứng dụng IIS được thiết kế để thực thi hầu hết các quátrình xử lý của nó trên Web Server, còn ứng dụng DHTML thực thi quá trình xử lý của nó trên máy browser. Ta không thể tạo bất cứ thành phần Web Server nào khi ta tạo một ứng dụng DHTML. 2.2. Các kỹ thuật lập trình Web mà Visual Basic hỗ trợ 2.2.1. VBScript Microsoft Visual Basic Scripting, thành phần mới nhất của họ ngôn ngữ lập trình Visual Basic, mang những Script động vào những môi trường khác nhau, bao gồm Script client Web trong Microsoft Internet Explorer và Script Server Web trong Microsoft Internet Information Server. Visual Basic Scripting được thiết kế để làm chủ bên trong một Internet browser, như là Microsoft Internet Explorer hay những browser khác. VBScript là kỹ thuật ngôn ngữ cực nhanh và mạnh dành cho những môi trường giống như Internet, intranet, hay Word Wide Web. Nó cho phép những nhà phát triển dùng Visual Basic để nhanh chóng tạo ra những giải pháp cho Internet hay Word Wide Web. Do VBScript là một ngôn ngữ phát triển qua platform, nên không có một số thành phần của ngôn ngữ Visual Basic cho những ứng dụng. Chúng bao gồm những hàm xuất nhập file, những hằng và loại dữ liệu thuộc bên trong. Ta có thể viết mã VBScript trong cửa sổ mã của Visual Basic, nhưng không thể chạy hay kiểm tra ứng dụng trong Visual Basic IDE. 2.2.2. Dynamic HTML Dynamic HTML là một tập hợp các tính năng có tính chất đổi mới trong Microsoft Internet Explorer 4.0 Dynamic HTML cho những nhà sáng tác khả năng tạo những tài liệu HTML thật nổi bật , cái mà tương tác với người sử dụng mà không phải dựa trên những chương trình server – side hay tập hợp những trang HTML phức tạp để tạo ra những hiệu quả đặc biệt. Với Dynamic HTML, ta có thể dễ dàng thêm vào những hiệu ứng, ví dụ: Làm ẩn đi văn bản và hình ảnh vào trong tài liệu và giữ nội dung ẩn cho đến khi qua một khoảng thời gian đã chỉ định hay người sử dụng tương tác với trang này. Làm cho văn bản và hình ảnh trong tài liệu của trở nên sống động. Mỗi thành phần hoạt động độc lập từ bất kỳ điểm bất đầu nào cho đến bất cứ điểm kết thúc nào, theo một đường dẫn ta chọn hay người sử dụng đã chọn . Tạo một đồng hồ để tự động cập nhật nội dung mới nhất, kho trích dẫn, hay dữ liệu khác Tạo một form sau đó đọc, xử lý, và đáp ứng cho dữ liệu mà người sử dụng nhập vào trong form. Dynamic HTML làm việc rất tốt với những ứng dụng, những điều khiển Active X, và những cái khác chấp nhận những đối tượng. Ta có thể dùng những ứng dụng và điều khiển đang tồn tại hay tạo ra một thành phần mới. Những ứng dụng và điều khiển làm việc rất tốt khi nó dựa vào đó để xử lý những tác vụ khó khăn , và dùng Dynamic HTML để hiển thị kết xuất và xử lý thông tin người sử dụng nhập vào. 2.2.3. Những thành phần ActiveX Những thành phần ActiveX cho ta khả năng tạo ra ứng dụng bằng cách kết hợp những ứng dụng tinh vi từ những cái đã có sẵn. ActiveX là một đối tượng, nhưng không phải bất cứ đối tượng nào cũng là ActiveX mà nó phải tuân theo 2 tiêu chuẩn chính : đó là đối tượng COM (Component Object Model), và có khả năng tự đăng ký. Đó là những đoạn chương trình độc lập thực hiện một chức năng nào đó mà có thể được gọi bởi những ứng dụng bất kỳ khác. Khi bạn xây dựng những trang Web thì ActiveX Control sẽ làm cho trang Web của bạn sống động với những tính năng phong phú, và tương tác cao với người sử dụng. Ứng dụng Visual Basic có bao hàm nhiều loại thành phần ActiveX Những ứng dụng hỗ trợ kỹ thuật ActiveX, như là Microsoft Excel, Microsoft Word, và Microsoft Access, cung cấp những đối tượng mà ta có thể thao tác lập trình từ bên trong ứng dụng Visual Basic của chúng ta. Ví dụ ta có thể dùng những thuộc tính, phương thức và sự kiện của Microsoft Excel, Microsoft Word, và Microsoft Access trong ứng dụng của ta. Những thành phần mã cung cấp thư viện của những đối tượng có thể lập trình . Không giống như một đối tượng trong ứng dụng cho phép ActiveX , một đối tượng trong một thành mã có thể chạy trong cùng một quá trình với ứng dụng của ta, cho phép nhanh chóng truy xuất tới những đối tượng này. Ta có thể thêm những tính năng mà không phải tạo chúng bằng cách sử dụng những điều khiển ActiveX. Ví dụ như hiển thị một lịch công tác trên một form hoặc đọc dữ liệu được định dạng đặc biệt. Những tài liệu Active X cho phép ta tạo những ứng dụng Internet tương tác . Ta có thể tạo những form có thể được cất giữ trong Internet Explorer. Những tài liệu ActiveX có thể hiển thị hộp thông báo , form và bao hàm những điều khiển Active X . Những tài liệu ActiveX có thể có chức năng như là những thành phần mã. PHẦN II : GIỚI THIỆU ĐỀ TÀI Đề tài Lập trình Web bằng ngôn ngữ Visual Basic 6.0 Nhiệm vụ đề tài Tạo ra một mô phỏng của điện thoại di động, với những tính năng, tác vụ cũng như nguyên lý hoạt động dựa theo một loại máy điện thoại di động có thực, với yêu cầu là người sử dụng trên mạng có thể dùng được như một điện thoại thật sự. PHẦN III : PHÂN TÍCH VÀ THIẾT KẾ ĐỀ TÀI I. Phân tích đề tài Xác định mục tiêu của chương trình Nhiệm vụ của chương trình là tạo ra một website, trên đó mô phỏng một điện thoại di động, với đầy đủ những tính năng, tác vụ như một điện thoại thật sự. Thêm vào đó, website phải có những trang hướng dẫn thật đầy đủ, chi tiết về những tính năng, tác vụ, với mục tiêu là một người sử dụng bình thường, khi đọc qua những hướng dẫn, cũng có thể dễ dàng sử dụng điện thoại mô phỏng này như là một điện thoại thật sự. Xác định cách hiện thực chương trình Do nhiệm vụ của đề tài là lập trình Web với ngôn ngữ lập trình là Visual Basic 6.0, do đó yêu cầu phải nắm vững những kiến thức cơ bản của Visual Basic 6.0, như các điều lệnh, các toán tử, các cấu trúc tuyển, cách làm việc với biến, với file …. Ngoài phải nắm vững các kiến thức cơ bản đó, chúng em còn phải tìm hiểu thêm các khái niệm cơ bản về Internet để tiện cho việc triển khai ứng dụng sau này. Do yêu cầu của đề tài là tạo ra 1 mô phỏng điện thoại di động, mà người sử dụng có thể sử dụng trên mạng. Vấn đề đặt ra là phải tìm một công cụ mà Visual Basic 6.0 cung cấp để tạo ra một mô phỏng điện thoại với khả năng đồ họa và tương tác cao với người sử dụng trên mạng. Sau khi tìm hiểu các công cụ, đối tượng mà Visual Basic 6.0 cung cấp, hỗ trợ để phát triển những ứng dụng trên Internet, chúng em quyết định chọn ActiveX Control làm công cụ để xây dựng chương trình (điện thoại mô phỏng). Với ActiveX Cotrol, chúng em có thể tạo ra giao diện người sử dụng đáp ứng được khả năng đồ họa cao và tương tác với người sử dụng. Thêm vào đó, chúng em đã dùng Microsoft Frontpage nhằm tạo sự dễ dàng trong việc tạo các trang hướng dẫn người sử dụng dùng những tính năng được xây dựng trong điện thoại mô phỏng, Các công cụ sẽ dùng để xây dựng chương trình Visual Basic 6.0. ActiveX Control trong Visual Basic 6.0. Microsoft Frontpage. II.Thiết kế đề tài Phần thiết kế được chia làm 2 phần : thiết kế giao diện và xây dụng những tính năng tác vụ của điện thoại mô phỏng. Thiết kế giao diện Giao diện của chương trình là một chuỗi các trang html, với trang chính sẽ trình bày với người sử dụng khi kích hoạt chương trình là Trên trang chính này đã thiết kế sẵn những liên kết, lái người sử dụng đến những trang khác nhau tùy theo mối liên kết mà họ chọn Theo những liên kết này, bạn sẽ đến trang hướng dẫn cũng như sử dụng điện thoại mô phỏng. Trang này được chia làm 3 frame, với mỗi frame là một trang khác nhau, trình bày những nội dung khác nhau. Người sử dụng có thể lần theo những mối liên kết ở frame thứ nhất (trình bày trang cây tính năng) để xem những hướng dẫn chi tiết về cách sử dụng những tính năng đó được trình bày ở frame thứ ba. Khi user xem những hướng dẫn chi tiết đó, họ có thể trực tiếp kiểm nghiệm cách hoạt động của những tính năng được xây dựng trên điện thoại mô phỏng trên frame thứ hai của trang này. Trang trình bày cấu trúc cây những tính năng được xây dựng trong điện thoại mô phỏng Trang hướng dẫn sử dụng, trình bày thật chi tiết cách dùng những tính năng đã được mô phỏng Trang trình bày điện thoại mô phỏng và người sử dụng có thể dùng trực tiếp như một điện thoại thật sự 2. Xây dựng những tính năng trong điện thoại mô phỏng Những tính năng, tác vụ trong điện thoại mô phỏng được xây dựng dựa trên một loại máy điện thoại di động có thực, máy Motorola Cd928. Do xây dựng dựa trên một máy có thực nên những tính năng cũng như nguyên lý hoạt động của nó cũng phải được bảo đảm như máy thật. Những tính năng của máy được tích hợp trong các menu, trong đó menu chính sẽ là Accessory Setup Phone Book (1) Phone Setup Messages Call Related Features (1) (2) (3) (4) (5) (6) Network Selection Những tính năng trong menu có chức năng cuộn tròn theo nguyên lý như máy Motorola Cd928. (1) ,….: trình tự của các menu con Menu Phone Book Phone Book Danh bạ điện thoại điện tử. Là nơi bạn có thể lưu những tên và số điện thoại như một mục riêng lẻ. Personal Number Là một menu con dùng cho việc tạo và quản lý danh sách những số điện thoại cá nhân của bạn. Find Entry by Name Tùy chọn được dùng để chọn một số điện thoại từ một danh sách có t._.hứ tự những tên đã được lưu trong danh bạ điện thoại. Find Entry by Location Tùy chọn được dùng để chọn một số điện thoại từ một danh sách có thứ tự những vị trí đã được lưu trong danh bạđiện thoại. Call Number Gọi cho số điện thoại vừa tìm thấy. Modify Name Or Number Dùng cho việc thay đổi tên và số điện thoại của mục vừa tìm thấy. Erase Name And Number Xoá tên và số điện thoại của mục vừa tìm thấy. Add Entry Tùy chọn dùng để thêm mục vào trong danh bạ điện thoại. Add To Phone Memory Thêm một mục vào trong bộ nhớ của điện thoại. Add To SIM Card Memory Thêm một mục vào trong bộ nhớ của thẻ SIM. Check Capacity Kiểm tra khả năng chứa còn lại của danh bạ điện thoại. Check Phone Capacity Kiểm tra sức chứa trong bộ nhớ của điện thoại. Check SIM Capacity Kiểm tra sức chứa trong bộ nhớ của thẻ SIM. Prevent Access Tùy chọn dùng cho việc ngăn ngừa truy xuất đến danh sách số điện thoại được lưu trong danh bạ điện thoại. No Memory Restrictions Không giới hạn sự truy xuất đến bộ nhớ. To SIM Card Memory Giới hạn việc truy xuất đến danh sách số điện thoại được lưu trong bộ nhớ thẻ SIM. To Phone Memory Giới hạn việc truy xuất đến danh sách số điện thoại được lưu trong bộ nhớ điện thoại. To Phone & SIM Memory Giới hạn việc truy xuất đến danh sách số điện thoại được lưu trong cả bộ nhớ thẻ SIM và bộ nhớ điện thoại. Fixed Dialling Tính năng này cho phép giới hạn việc sử dụng điện thoại bằng cách chỉ gọi được những số có số hay tiền tố trùng với những số hay tiền tố đã lưu trong danh sách số cố định. View Fixed Dial List Tuỳ chọn dùng để xem các mục đã được lưu trong danh sách số cố định. Setup Fixed Dialling Dùng để thiết lập các tùy chọn cho mục gọi số cố định. On Cho phép dùng tính năng gọi số cố định. Off Không cho phép dùng tính năng gọi số cố định. Edit Entry Hiệu chỉnh một mục (tên, số điện thoại) trong danh sách số cố định. Add Entry Thêm một mục (tên, số điện thoại) vào trong danh sách số cố định. Erase entry Xoá một mục (tên, số điện thoại) từ danh sách số cố định. One-Touch Dial Setting Tính năng này cho phép chỉ định danh sách nào có thể được quay số chỉ với một phím. To Phone Memory Những số điện thoại được lưu trong bộ nhớ điện thoại có vị trí từ 1 đến 9 sẽ được quay số chỉ với một phím. To SIM Memory Những số điện thoại được lưu trong bộ nhớ thẻ SIM có vị trí từ 101 đến 109 sẽ được quay số chỉ với một phím. To Fixed Dial List Những số điện thoại được lưu trong danh sách số cố định có vị trí từ 1 đến 9 sẽ được quay số chỉ với một phím. Menu Call Related Features Call Related Features Các đặc điểm về cuộc điện thoại. Show Battery Meter Hiển thị đồng hồ đo năng lượng của pin điện thoại. Restrict My Phone Number Show ID On Next Call Số điện thoại của bạn sẽ được gửi đi với cuộc gọi kế, nhưng sau đó nó sẽ không được gửi đi cho đến khi bạn chọn lại tính năng này. Restrict ID On Next Call Số điện thoại của bạn sẽ không được gửi đi với cuộc gọi kế, sau đó số điện thoại của bạn sẽ được gửi đi với những cuộc gọi kế cho đến khi bạn chọn lại tính năng này. Call Diverting Tính năng này dùng để chuyển cuộc gọi đến đến những số điện thoại khác khi điện thoại của bạn không hoạt động, hoặc khi bạn không muốn nhận cuộc gọi đó. Divert Voice Calls Chuyển cuộc gọi Divert When Unavailable Chuyển tất cả các cuộc gọi đến đến một số điện thoại khác mỗi khi điện thoại của bạn không hoạt động. Divert All Voice Calls Chuyển tất cả các cuộc gọi đến đến một số điện thoại khác mà không theo một điều kiện nào cả. Detailed Diverting Tính năng này dùng để chỉ định chuyển những cuộc gọi đến đến những số khác nhau If Busy Chuyển cuộc gọi đến nếu điện thoại của bạn đang bận. If Not Reachable Chuyển cuộc gọi đến nếu điện thoại của bạn không thể tiếp xúc được bởi mạng. If No Answer Chuyển cuộc gọi đến nếu bạn không muốn trả lời. Divert Fax Calls Tính năng này cho phép bạn chuyển tất cả những cuộc nhận bằng Fax đến một số điện thoại đơn. Divert Data Calls Tính năng này cho phép bạn chuyển tất cả những cuộc nhận bằng dữ liệu đến một số điện thoại đơn. Cancle All Diverting Dùng để hủy toàn bộ chức năng chuyển cuộc gọi. Talk and Fax Là một tính năng mạng cho phép bạn nói và sau đó gửi hoặc nhận fax trong một cuộc gọi. Nó có 2 tùy chọn : On và Off. Call Waiting Quy định cách mà máy sẽ báo hiệu khi có một cuộc gọi đang chờ. Nó có 2 tùy chọn : On và Off. Call Barring Là một tính năng mạng dùng cho việc chặn cuộc gọi. Bar Outgoing Calls Chặn những cuộc gọi đi. Int’l Calls Chức năng này sẽ chặn những cuộc gọi đi quốc tế mỗi khi nó được chọn. Int’l Calls Except Home Chức năng này sẽ chặn những cuộc gọi đi quốc tế ngoại trừ đất nước của bạn. All Calls Chặn tất cả những cuộc gọi đi. Off Hủy bỏ chức năng chặn cuộc gọi cho những cuộc gọi đi. Bar Incoming Calls Chăn những cuộc gọi đến. When Roaming Chặn những cuộc gọi đến khi bạn đang roaming All Calls Chặn tất cả những cuộc gọi đến. Off Hủy bỏ chức năng chặn cuộc gọi cho những cuộc gọi đến. Cancle All Barring Hủy toàn bộ chức năng năng chặn cuộc gọi cho những cuộc gọi đi hoặc những cuộc gọi đến. Change Bar Password Thay đổi mã chặn cuộc gọi. Key Answer Only Chỉ định cách trả lời cuộc gọi đến bằng cách dùng phím, hay mở nắp máy sẽ trả lời cuộc gọi đến. Menu Messages Call VoiceMail Tùy chọn sẽ làm một cuộc gọi đến số hộp thư thoại hiện tại. Outgoing Messages Dùng để xem và quản lý bất kỳ tin nhắn gửi đi. Những tin nhắn này được lưu trên thẻ SIM. Send Message Dùng để thêm vào số điện thoại, nơi đến của tin nhắn. Enter Number Dùng các phím số nhập vào số điện thoại đích, và gửi tin nhắn đi theo số điện thoại này. Find Entry by Name Tìm số điện thoại theo tên đã lưu trong danh bạ điện thoại và gửi tin nhắn đi theo số điện thoại này. Find Entry by Location Tìm số điện thoại theo vị trí đã lưu trong danh bạ điện thoại và gửi tin nhắn đi theo số điện thoại này. Edit Message Hiệu chỉnh tin nhắn đã chọn hay tạo một tin nhắn mới. Send Message Gửi tin nhắn vừa mới hiệu chỉnh. Store Message Lưu lại tin nhắn sau khi hiệu chỉnh. Delete Message Xoá tin nhắn đang xem hiện tại. Go to Next Message Hiển thị tin nhắn kế tiếp. Message Editor Hiệu chỉnh tin nhắn đã chọn hay tạo một tin nhắn mới. Send Message Gửi tin nhắn vừa mới hiệu chỉnh. Store Message Lưu lại tin nhắn sau khi hiệu chỉnh. Cell Broadcast Dịch vụ phát thanh. Nó có 2 tùy chọn : On và Off. Message Settings Cài đặt tin nhắn. Voicemail Number Dùng để nhập vào số điện thoại, là số được dùng trong mục “Call Voicemail”. Service Centre Trước khi bạn gửi đi bất kỳ tin nhắn nào, bạn phải dùng tùy chọn này để nhập vào số của trung tâm dịch vụ tin nhắn. Expiry Period Dùng để chỉ định khoảng thời gian tối đa mà những tin nhắn chưa được gửi đi, được lưu lại trên trung tâm dịch vụ tin nhắn trước khi bị xóa. Outgoing Message Type Chỉ định dạng thức của các tin nhắn gửi đi. Ta có thể chọn từ các dạng thức như Text, Fax, Voice…. 4. Menu Phone Setup Phone Setup Cài đặt điện thoại. Select Phone Line Dùng để chuyển đổi việc chọn đường dây 1 hoặc đường dây 2. Adjust Ring Volume Tùy chọn dùng để điều chỉnh âm lượng chuông báo hiệu khi có một cuộc gọi đến. Ring or Vibrate Chỉ định cách báo hiệu mà máy sẽ thực hiện khi có một cuộc gọi đến. Ring Only Máy sẽ phát ra tiếng chuông theo theo điệu đã được chỉ định trong mục “Set Ringer Tone” Vibrate Only Máy chỉ rung khi có một cuộc gọi đến. Vibrate Then Ring Máy sẽ rung hai lần và sau đó là tiếng chuông. No Ring or Vibrate Máy chỉ báo hiệu bằng cách hiển thị thông báo “Call”. Set Ringer Tone Thiết lập tiếng chuông báo hiệu khi có cuộc gọi đến được nhận ở đường dây 1. Standard Tone Tiếng chuông chuẩn. Music Tone Khi được chọn, máy sẽ tổ hợp những tiếng chuông khác nhau. Phone Lock Dùng để thiết lập, thay đổi mã mở khóa máy Automatic Lock Tự động khóa máy mỗi khi bật công tắc mở máy. Lock Now Tùy chọn này sẽ khóa máy ngay lập tức. Khi đó máy sẽ không sử dụng được cho đến khi nhập đúng mã mở khóa. Change Unlock Code Thay đổi mã mở khóa máy. New Security Code Dùng để thay đổi mã bảo mật, mã dùng cho việc ngăn ngừa truy nhập đến những tính năng bên trong những menu. Extened Menus Dùng để tắt, mở menu mở rộng. Nếu tùy chọn này ở trạng thái tắt, bạn không thể dùng được bất kỳ tính năng mở rộng nào. Show Time and Date Là một tính năng mở rộng. Hiển thị ngày và giờ hiện tại cho đến khi có một phím được nhấn. Set Time and Date Là một tính năng mở rộng, dùng để thay đổi lại ngày và giờ hiện tại. Set Time Format Là một tính năng mở rộng, thiết lập dạng thức hiển thị giờ của máy (dạng 12h hoặc 24h) Battery Saving Mode Tính năng này cho phép ta tiết kiệm năng lượng khi máy ở trạng thái không đàm thoại. Select Keypad Tones Tùy chọn dùng để thay đổi hoặc không cho phép có âm điệu khi một phím được nhấn. Normal Tones Tiếng bình thường. Single Tone Tiếng đơn No Tones Không có tiếng. 5. Menu Network Selection Network Selection Chọn mạng hoạt động. Để làm và nhận những cuộc gọi, máy của bạn phải đăng ký với một trong những mạng đang hoạt động. Change Band Chọn băng tần hoạt động. Change to 900/1800 Chuyển sang dãy băng tần 900/1800 Change to 900 Chuyển sang dãy băng tần 900 Change to 1800 Chuyển sang dãy băng tần 1800 Available Networks Tính năng này sẽ quét để tìm những mạng nào đang hoạt động ở vị trí hiện tại của bạn. Register Now Đăng ký với mạng bạn đã chọn Make Preferred Lưu lại vị trí của mạng đã chọn trong danh sách những mạng ưu tiên. Network Search Tìm mạng. Registration Preferences Chỉ định cách thức máy sẽ làm thế nào để đăng ký với một mạng. Automatic Search Tự động tìm và đăng ký với một mạng. Manual Search Tìm và đăng ký với một mạng bằng cách thủ công. Frequency of Search Chỉ định điện thoại của bạn phải chờ bao lâu trước khi nó cố gắng đăng ký lại sau khi việc đăng ký trước đó đã thất bại. Slow Search Medium Search Fast Search Continuous Search Preferred Networks Danh sách những mạng ưu tiên. Add Network To List Thêm mạng đã chọn vào trong danh sách những mạng ưu tiên. Choose From Available Chọn mạng từ danh sách những mạng đang hoạt động ở vị trí hiện tại của bạn. Choose From Known Chọn mạng từ tập hợp danh sách những mạng đã được định nghĩa từ trước. Show List Of Networks Hiển thị danh sách những mạng ưu tiên. Move To New Location Di chuyển mạng đã chọn đến một vị trí mới. Delete Selection Xoá mạng đã chọn khỏi danh sách những mạng ưu tiên. Find New Network Tìm mạng mới. 6. Menu Accessory Setup Accessory Setup Thiết lập những thiết bị đính kèm. Mute Car Radio Làm tắt tiếng của radio khi bạn làm hoặc nhận một cuộc gọi. Automatic Answer Khi được chọn, máy sẽ tự động trả lời khi có một cuộc gọi đến sau 2 lần chuông. Automatic Handsfree Chuyển cuộc đàm thoại bằng cách dùng tai nghe và speaker. Safety Timer Auxiliary Alert Đèn hiệu sẽ nhấp nháy khi có một cuộc gọi đến. 7. Menu Quick Access Quick Access Menu Menu truy cập nhanh là một tính năng độc đáo. Nó cho phép ta chọn 9 chức năng thường dùng mà không cần phải rà tìm lòng vòng trong các menu. Ta cũng có thể thiết kế lại menu truy cập nhanh tùy theo ý thích. 3. Mã nguồn của chương trình Mã nguồn của các trang HTML hướng dẫn sử dụng. Mã nguồn của trang chính mot <!-- -->                            Điện thoại nhỏ cho thế giới lớn Một điện thoại - nhiều phong cách - cd928 chính là sự thể hiện cá tính của bạn Với cấu trúc cây menu, cho bạn một cái nhìn khái quát về toàn bộ cấu trúc những tính năng được xây dựng trong máy cd928. <img src="0go.gif" width="27" height="31" alt="click here de xem trang tham khao" border="0"> Với những hướng dẫn tỉ mỉ, rõ ràng, bạn sẽ dễ dàng tiếp cận cách làm thế nào để sử dụng những tính năng của máy cd928. Mô phỏng của máy cd928, cho bạn cảm giác như đang sử dụng một máy điện thoại thật sự. <img src="0go.gif" width="27" height="31" alt="click here de vao trang su dung" border="0"> Xin chân thành cảm ơn những đóng góp của các bạn.       Mã nguồn của trang chứa điện thoại mô phỏng luan-van.CAB <object ID="UserControl1" CLASSID="CLSID:191803D8-6371-11D0-82CA-B54CDE05F649" CODEBASE="luan-van.CAB#version=1,2,0,0" width="137" height="262"> Mã nguồn của trang trình bày cây tính năng Phone Book     Personal Numbers     Fixed Dialling    One-Touch Dial Setting   Call Related Features     Show Batery Meter     Restric My Phone Number     Call Diverting     Talk and Fax     Call Waiting     Call Baring     Key Answer Only Messages     Call Voicemail     Outgoing Messages     Message Editor     Cell Broadcast     Message Settings Phone Setup     Select Phone Line     Adjust Ring Volume    Ring Or Vibrate     Set Ringer Tone     Set Ringer Tone 2     Phone Lock     New Security Code     Extended Menus     Show Time and Date     Set Time Format     Battery Saving Mode     Select Keypad Tones Network Selection   Change Band        Available Network    Network Search    Preferred Networks    Find New Network    Quick Access Menu   Mã nguồn của trang hướng dẫn Danh bạ điện thoại riêng (Personal Number)     Là một menu con được dùng để tạo và quản lý danh sách các số điện thoại cá nhân. Để vào mục này, dùng các phím cuộn , cuộn đến mục " Phone Book", nhấn   2 lần để vào menu con của mục " Personal Number"   Find Entry By Name (tìm số điện thoại theo tên)    Find Entry By Location (tìm số điện thoại theo vị trí)    Add Entry (thêm vào số điện thoại mới)    Check Capacity (Kiểm tra sức chứa)    Prevent Access (Ngăn ngừa truy nhập)    Dùng các phím cuộn để đến hạng mục cần chọn. Nhấn để chọn. Bấm phím để thoát ra. Cách nhập một ký tự     Dùng các phím số để nhập ký tự. Ví dụ : khi bấm phím số lần đầu tiên thì nó sẽ hiển thị ký tự J. Nhấn phím này lần nữa sẽ thay bằng chữ K, ...hiển thị số 5.     Bấm và giữ bất kỳ một phím sẽ chuyển tất cả các ký tự thành chữ thường, lặp lại thao tác này sẽ chuyển tất cả lại thành chữ hoa.     Ta có thể dùng phím để nhập vào ký tự giống như ký tự vừa nhập trước đó. Nhấn phím này lần nữa sẽ tạo ra khoảng trắng.     Xóa một ký tự bằng cách nhấn .     Nhấn để lưu lại thông tin. Tìm một số điện thoại theo tên (Find Entry By Name) Dùng các phím cuộn ,  cuộn đến mục " Phone Book"  3 lần để vào mục tìm số điện thoại theo vị trí. Màn hình hiển thị thông báo "Enter Name ", nhập vào tên của số điện thoại cần tìm (tối đa3 ký tự). Khi đó, máy sẽ tìm và hiển thị tên của số điện thoại phù hợp. Dùng các phím cuộn để hiển thị những mục liền kế nó. Khi tìm được số mong muốn, nhấn để vào menu con - Call Number (gọi số điện thoại này) - Modify Name or Number (sửa tên hoặc số điện thoại) - Erase Name and Number (Xóa tên và số điện thoại) - Dùng các phím cuộn để di chuyển giữa những mục này. Nhấn để chọn. Bấm phím để thoát ra. Tìm một số điện thoại theo vị trí (Find Entry by Location) Dùng các phím cuộn ,  để cuộn đến mục " Phone Book",  2 lần để vào menu con của mục Personal Number. Dùng phím   để cuộn đến mục "tìm số điện thoại theo vị trí", . Màn hình hiển thị thông báo "Enter Location ", nhập vào vị trí của số điện thoại cần tìm. Khi đó, máy sẽ tìm và hiển thị tên của số điện thoại phù hợp. Dùng các phím cuộn để hiển thị những mục liền kế nó. Khi tìm được số mong muốn, nhấn để vào menu con - Call Number (gọi số điện thoại này) - Modify Name or Number (sửa tên hoặc số điện thoại) - Erase Name and Number (Xóa tên và số điện thoại) Dùng các phím cuộn để di chuyển giữa những mục này. Nhấn để chọn. Bấm phím để thoát ra. Thêm vào số điện thoại mới (Add Entry) Dùng các phím cuộn ,  để cuộn đến mục " Phone Book",  2 lần để vào menu con của mục Personal Number. Dùng phím   để cuộn đến mục "thêm vào số điện thoại mới", Dùng các phím cuộn để chọn vị trí "Cho vào bộ nhớ của máy điện thoại " [Add to phone memory]hay 'Cho vào thẻ SIM " [Add to SIM card memory], bấm Nhập vào số điện thoại, , ghi tên, vị trí, bấm để lưu. Bấm phím để thoát ra. Kiểm tra sức chứa (Check Capacity) Kiểm tra số mục còn trống trong bộ nhớ của điện thoại hay bộ nhớ SIM card 1.    Dùng các phím cuộn ,  để cuộn đến mục " Phone Book",  2 lần để vào menu con  của mục Personal Number.Tiếp tục dùng phím cuộn để cuộn đến mục "Kiểm tra sức chứa" [Check Capacity], . 2.    Dùng các phím cuộn để chọn vị trí "Kiểm tra sức chứa của máy điện thoại" [Check Phone Capacity]hay "Kiểm tra sức chứa của thẻ SIM" [Check SIM apacity],bấm . Màn hình sẽ hiện thông báo "XX Unused Location". Ngăn ngừa truy nhập (Prevent Access)    Ngăn ngừa không cho truy nhập vào những mục đã được lưu trong bộ nhớ, trong thẻ SIM hay cả hai. 1.    Dùng các phím  ,  (phím cuộn) để cuộn đến mục " Phone Book",  2 lần để vào menu con của mục Personal Number. Tiếp tục dùng phím cuộn để cuộn đến mục "Ngăn ngừa truy nhập " [Prevent Access], . 2.    Dùng các phím cuộn  để tùy chọn những mục "Không giới hạn truy nhập" [No Memory Restrictions], "Giơiù hạn truy nhập đến thẻ SIM" [To SIM Card Memory], "Giới hạn truy nhập đến bộ nhớ máy" [To Phone Memory], hay giới hạn cả hai, bộ nhớ và thẻ SIM [To Phone & SIM Memory]. Dùng các phím cuộn để di chuyển đến mục cần chọn nhấn . Khi đó màn hình sẽ hiện thông báo nhắc nhập vào mã bảo mật [Security Code]. Nếu nhập mã đúng thì sự ngăn ngừa truy nhập mới có tác dụng (Mã mặc định là "000000" và có thể thay đổi được trong phần Phone Setup). Gọi số cố định (Fixed Dialling)     Tính năng này cho phép bạn giới hạn việc dùng điện thoại trong một danh sách số điện thoại đã được định nghĩa trước, hay là một danh sách mã quốc gia, mã vùng hay là một tiền tố nào đó mà bạn chọn.      Khi Fixed Dialling được thiết lập mức On, bạn chỉ gọi được những số có số (hay tiền tố) trùng với những số (hay tiển tố) đã lưu trong danh sách Fixed Dial. Nếu bạn thử gọi số khác thì thông báo "Restricted" sẽ hiển thị.     View Fixed Dial List (Xem danh sách số cố định)     Setup Fixed Dialling (Thiết lập số cố định) Dùng các phím cuộn để di chuyển giữa những mục này. Nhấn để chọn. Bấm phím để thoát ra. Xem danh sách số cố định ( View Fixed Dial List)     Xem danh sách số cố định đã được lưu trong Fixed Dial. 1.  Dùng các phím , (phím cuộn)  để di chuyển đến mục Phone Book, nhấn 2.    Nhấn phím cuộn để đến mục " Fixed Dialling", nhấn . Tiếp tục dùng phím cuộn để di chuyển đến mục View Fixed Dial List . Muốn chọn nhấn , để thoát ra dùng phím 4.  Dùng phím cuộn để duyệt qua danh sách các số trong Fixed Dial List . Khi bạn đã tìm thấy số bạn cần, nhấn để làm cuộc gọi. Thiết lập số cố định (Setup Fixed Dialling) Bạn dùng tùy chọn này để chuyển Fixed Dialling ở mức On hay Off và dùng để thêm hay thay đổi những mục trong danh sách Fixed Dial. Bạn phải nhập vào mã PIN2 (mặc định là 13579) khi bạn chọn mục này.   1.  Dùng các phím ,  (phím cuộn) để di chuyển đến mục Phone Book, nhấn 2.    Nhấn phím cuộn để vào mục " Fixed Dialling", nhấn . 3.  Tiếp tục dùng phím cuộn  để di chuyển đến mục " Setup Fixed Dialling". Muốn chọn nhấn , để thoát ra dùng phím .4.  Nhập vào mã PIN2 . Bấm  để vào menu con của nó, để thoát ra dùng phím . On Chuyển Fixed Dialling ở mức On Off Chuyển Fixed Dialling ở mức Off Edit Entry Sửa đổi một mục trong danh sách Fixed Dial. Khi bạn chọn mục này, vị trí đầu tiên trong danh sách không rỗng sẽ được hiển thị. Dùng  phím cuộn để di chuyển đến  mục bạn muốn thay đổi, nhấn . Màn hình sẽ hiển thị một promt để bạn sửa đổi tên và số điện hoại. Add Entry Thêm vào một tên và điện thoại vào trong danh sách Fixed Dial.Màn hình sẽ hiển thị một promt để bạn nhập vào tên, số điện thoại và vị trí của nó trong danh sách. Erase Entry Xoá một mục đã lưu trong danh sách Fixed Dial. Mục đầu tiên trong danh sách sẽ được hiển thị. Di chuyển đến mục bạn muốn xóa và nhấn . Dùng các phím cuộn để di chuyển giữa các mục này, nhấn để chọn. Quay số với 1 phím (One-Touch Dial Setting)     Bạn dùng mục này để chỉ định danh sách Phone Book nào có thể được quay số chỉ với 1 phím. 1.  Dùng các phím ,   (phím cuộn) để di chuyển đến mục Phone Book, nhấn 2.    Tiếp tục dùng  phím  cuộn để vào mục "One-Touch Dial Setting ". Nhấn để vào menu con    To Phone Memory   Cho vào bộ nhớ điện thoại (những vị trí từ 1 đến 9)    To SIM Memory    Cho vào bộ nhớ thẻ SIM (những vị trí từ 101 đến 109)    To Fixed Dial List    Cho vào danh sách Fixed Dial (những vị trí từ 1 đến 9) Dùng các phím cuộn để di chuyển giữa những mục này. Nhấn để chọn. Bấm phím để thoát ra. Các đặc điểm về cuộc điện thoại (Call Related Features) Dùng để thay đổi, thiết lập cấu hình của những tính năng liên quan đến cuộc gọi. Hiện đồng hồ pin (Show Bttery Meter) Hiển thị đồng hồ cho biết mức năng lượng còn lại của pin 1. Dùng các phím , (phím cuộn) để di chuyển đến mục " Call Related Features", nhấn 2 lần để vào mục "Show Battery Meter", nhấn để hiển thị đồng hồ. 2. Để thoát ra dùng phím Hạn chế số điện thoại của tôi (Restrict My Phone Number) 1. Dùng các phím , (phím cuộn) để di chuyển đến mục " Call Related Features", nhấn 2.  Tiếp tục dùng các phím cuộn để cuộn đến mục " Restrict My Phone Number ",nhấn để vào menu con   Show ID on Next Call   Số điện thoại của bạn được gửi đi với cuộc gọi kế    Restric ID on Next Call     Số điện thoại của bạn sẽ không gửi đi với cuộc gọi kế Dùng các phím cuộn để di chuyển giữa các mục này, nhấn để chọn. Chuyển cuộc gọi (Call Diverting) Đây là một tính năng mạng , nếu điện thoại của bạn không có gía trị hay bạn không muốn nhận cuộc gọi, những cuộc gọi đến sẽ được chuyển đến những số điện thoại khác 1.  Dùng các phím <img src="up.jpg" width="26" height="20" alt="up.bmp (2550 bytes)">,   (phím cuộn) để di chuyển đến mục "Call Related Features ", nhấn 2.    Tiếp tục dùng phím cuộn để đến mục " Call Diverting", nhấn để vào menu con.     Divert Voice Calls (chuyển cuộc gọi)     Divert Fax Calls (chuyển cuộc nhận bằng fax)     Divert Data Calls (chuyển cuộc nhận bằng dữ liệu)     Cancel All Diverting (hủy toàn bộ chức năng chuyển) Dùng các phím cuộn để di chuyển giữa các mục này, nhấn để chọn. Chuyển cuộc gọi (Divert Voice Calls) 1.  Dùng các phím ,   để di chuyển đến mục "Call Related Features", nhấn 2.    Tiếp tục dùng phím cuộn để vào mục " Call Diverting", nhấn 2 lần để vào mục " Divert Voice Calls". 3. Nhấn phím để vào menu  con    Divert When Unavailable (Chuyển khi không đáp)    Divert All Voice Calls (chuyển tất cả)    Detail Diverting (chuyển theo loại) Dùng các phím cuộn để di chuyển giữa những mục này. Nhấn để chọn. Bấm phím để thoát ra. Chuyển cuộc nhận bằng Fax (Diver Fax Calls) Dùng để chuyển tất cả những cuộc nhận bằng Fax đến một số điện thoại đơn. Mục này có 2 tùy chọn On và Off. Nếu bạn thay đổi ở mức On, bạn phải nhập vào số điện thoại nơi chuyển đến. 1.  Dùng các phím ,   (phím cuộn) để di chuyển đến mục "Call Related Features", nhấn 2.    Nhấn các phím cuộn để vào mục "Call Diverting", nhấn . 3. Tiếp tục dùng các phím ,   để vào mục "Divert Fax  Calls". Nhấn để  chọn. Chuyển cuộc nhận bằng dữ liệu (Diver Data Calls) Dùng để chuyển tất cả những cuộc nhận bằng Fax đến một số điện thoại đơn. Mục này có 2 tùy chọn On và Off. Nếu bạn thay đổi ở mức On, bạn phải nhập vào số điện thoại nơi chuyển đến. 1.  Dùng các phím ,    (phím cuộn) để di chuyển đến mục " Call Related Features", nhấn 2.    Nhấn các phím cuộn để vào mục " Call Diverting", nhấn . 3. Tiếp tục dùng các phím cuộn để vào mục " Divert Data Calls". Nhấn để  chọn. Huỷ bỏ toàn bộ chức năng chuyển (Cancel All Diverting) Chức năng này cho phép bạn hủy chức năng chuyển những cuộc gọi đến. 1.  Dùng các phím ,   (phím cuộn)  để di chuyển đến mục " Call Related Features", nhấn 2.    Nhấn các phím cuộn để đến mục" Call Diverting", nhấn .3.  Tiếp tục dùng các phím cuộn để vào mục " Cancel All Diverting". Nhấn  để chọn. Nói và Fax (Talk and Fax) Đây là một tính năng mạng cho phép bạn đàm thoại và sau đó gửi hoặc nhận fax trong suốt cuộc gọi đó. Mục này có 2 chế độ On và Off. 1.  Dùng các phím ,   (phím cuộn)  để di chuyển đến mục " Call Related Features", nhấn 2.    Tiếp tục dùng các phím cuộn để đến mục "Talk and Fax", nhấn để chọn. Call Waiting (Cuộc gọi đang chờ) Tính năng này có 2 chế độ On và Off. Nếu được thiết lập ở mức On, máy sẽ báo hiệu khi có một cuộc gọi đang chờ. 1.  Dùng các phím ,   (phím cuộn)  để di chuyển đến mục " Call Related Features", nhấn 2.    Tiếp tục dùng các phím cuộn để đến mục " Call Waiting", nhấn để chọn. Chặn cuộc gọi (Call Barring) Là một tính năng mạng, có thể dùng để chặn những cuộc gọi đi hay những cuộc gọi đến. Mỗi khi bạn thay đổi   việc ngăn chặn, bạn phải nhập vào mã chặn cuộc gọi (mặc định là 6789). 1. Dùng các phím ,   (phím cuộn)  để di chuyển đến mục " Call Related Features", nhấn 2.    Tiếp tục dùng   phím cuộn để vào mục " Call Barring", nhấn . 3.  Nhập vào mã chặn cuộc gọi. Nhấn phím để vào menu con.     Bar Outgoing Calls (chặn những cuộc gọi đi)     Bar  Incoming Calls (chặn những cuộc gọi đến)     Cancel All Barring (hủy chức năng chặn cuộc gọi)     Change Bar Password (Thay đổi mã chặn cuộc gọi) Dùng các phím cuộn  để di chuyển giữa các   mục này, nhấn để chọn. Chặn những cuộc gọi đi (Bar Outgoing Calls) Tùy theo mục mà bạn chọn, máy sẽ tự động chặn những cuộc gọi đi không hợp lệ. 1.  Dùng các phím ,   (phím cuộn) để di chuyển đến mục" Call Related Features", nhấn 2.    Tiếp tục dùng phím cuộn để vào mục " Call Barring", nhấn . 3.  Nhập vào mã chặn cuộc gọi 4.   Nhấn phím 2 lần để vào menu con của mục " Bar  Outgoing Calls".     Int'l Calls     Chặn những cuộc gọi đi quốc tế     Int'l Calls Expect Home      Chặn những cuộc gọi quốc tế ngoại trừ đất nước của bạn.     All Calls     Chặn tất cả những cuộc gọi.      Off      Khi được chọn, máy sẽ trở về chế độ bình thường (không chặn cuộc gọi) Dùng các phím cuộn để di chuyển giưã các mục trong menu con, nhấn để chọn. Chặn những cuộc gọi đến (Bar Incoming Calls) 1.  Dùng các phím ,   (phím cuộn) để di chuyển đến mục " Call Related Features", nhấn 2.    Tiếp tục dùng phím cuộn để vào mục " Call Barring", nhấn . 3.  Nhập vào mã chặn cuộc gọi, nhấn 4.  Dùng các phím cuộn để di chuyển đến   mục " Bar Incoming Calls", nhấn  để vào menu con     When Roaming      Chặn những cuộc gọi đến khi bạn đang roaming      All Calls     Chặn tất cả những cuộc gọi đến.     Off     Khi được chọn, máy sẽ trở về chế độ bình thường (không chặn cuộc gọi) Dùng các phím cuộn để di chuyển giưã các  mục trong menu con, nhấn để chọn. Hủy việc chặn (Cancel All Barring) Dùng để thiết lập tất cả các tuỳ chọn chặn cuộc gọi về mức Off 1.  Dùng các phím ,   (phím cuộn) để di chuyển đến mục " Call Related Features", nhấn 2.    Tiếp tục dùng  phím , để đến mục" Call Barring", nhấn . 3.  Nhập vào mã chặn cuộc gọi, nhấn 4.   Dùng các phím cuộn để di chuyển đến  mục " Cancel All Barring", nhấn  để hoàn thành tác vụ.._." network = False danhso = False Exit Sub End If 'phan xu ly cua muc Frequency of search If tbnhap.Text = "Slow Search" Or tbnhap.Text = "Medium Search" Or tbnhap.Text = "Fast Search" Or tbnhap.Text = "Continuous Search" Then tbnhap.Text = "Completed" network = False danhso = False Exit Sub End If 'phan xu ly cua menu Accessory Setup If tbnhap.Text = "Accessory Setup" Then tbnhap.Text = "Mute Car Radio" accessory = True Exit Sub End If 'vao menu con cua cac muc trong Accessory setup If tbnhap.Text = "Mute Car Radio" Then tbnhap.Text = "On" Exit Sub End If If tbnhap.Text = "Automatic Answer" Then tbnhap.Text = "On" Exit Sub End If If tbnhap.Text = "Automatic Handsfree" Then tbnhap.Text = "On" Exit Sub End If If tbnhap.Text = "Safety Timer" Then tbnhap.Text = "On" Exit Sub End If If tbnhap.Text = "Auxiliary Alert" Then tbnhap.Text = "On" Exit Sub End If 'phan xu ly cua muc Quick Access Menu If longpress = True Then 'And st "" Then Open filename3 For Random As #1 Len = Len(menuaccess) Get #1, orderinquick, menuaccess menuaccess.feature = st menuaccess.thutu = luumuc Put #1, orderinquick, menuaccess Close #1 longpress = False tbnhap.Text = "Completed" thu = False quickaccess = False Exit Sub End If 'truong hop user nhap vao mot so de lam mot cuoc goi If IsNumeric(tbnhap.Text) = True And sending = False Then st = tbnhap.Text If Len(tbnhap.Text) < 7 Then If tbnhap.Text = "1080" Or tbnhap.Text = "113" Or tbnhap.Text = "114" Or tbnhap.Text = "115" Then cancall = False Else cancall = True End If If send = True Then sending = True send = False End If End If danhso = False cancle = True tbnhap.Text = "Calling" '" Call Number" Image2.Visible = True callnumber = True End If 'truong hop user nhap vao so dien thoai co format khong phu hop If tbnhap.Text = "Connecting Failed" Then tbnhap.Text = "Menu" Exit Sub End If '********* phim left ********* Case 14 'menu con cua muc Personal Number If quickaccess = True Then Exit Sub End If 'xu ly cua muc Adjust Ring Volume If advolume = True Then i = i + 1 If vol > 0 Then Select Case i Case 3, 6, 9, 12, 15, 18, 21 vol = vol - 1 volume.Picture = volume1(vol).Picture End Select Else Beep End If Exit Sub End If '********** phim phai ********** Case 15 If quickaccess = True Then 'longpress = True Then Exit Sub End If If cancle = False Then Select Case i Case 0 tbnhap.Text = tbnhap.Text & Right(tbnhap.Text, 1) i = i + 1 Case 1 tbnhap.Text = tbnhap.Text & " " End Select Else 'xu ly cua phan Adjust Ring Volume If advolume = True Then i = i + 1 If vol < 7 Then Select Case i Case 3, 6, 9, 12, 15, 18, 21 vol = vol + 1 volume.Picture = volume1(vol).Picture End Select Else Beep End If Exit Sub End If End If '****** day la phan xu ly cua phim OnOff ******* Case 16 phonebook = False quickaccess = False message1 = False setup = False network = False listdial = False editentrylist = False addentrylist = False eraseentrylist = False changecase = False messagelist = False taomoi = False editor = False availablenetwork = False addnetwork = False Image2.Visible = False Select Case onoff Case 0 screen.Visible = True Frame1.Visible = False tbnhap.Visible = False If volume.Visible = True Then volume.Visible = False Frame1.Height = 500 Frame1.Width = 1800 End If onoff = 1 Exit Sub Case 1 screen.Visible = False Frame1.Visible = True tbnhap.Visible = True If autolocked = True Or locked = True Then tbnhap.Text = "Locked" Else tbnhap.Text = "Menu" End If onoff = 0 Exit Sub End Select 'phan xu ly cua menu quick access Case 17 If locked = True Then Exit Sub End If If volume.Visible = True Then 'And so(14).Value = False And so(15).Value = False Then volume.Visible = False tbnhap.Visible = True Frame1.Height = 500 Frame1.Width = 1800 End If Image2.Visible = False network = False phonebook = False setup = False listdial = False editentrylist = False addentrylist = False eraseentrylist = False changecase = False messagelist = False taomoi = False editor = False availablenetwork = False addnetwork = False Open filename3 For Random As #1 Len = Len(menuaccess) Get #1, 1, menuaccess tbnhap.Text = Trim(menuaccess.feature) orderinquick = 1 luumuc = menuaccess.thutu quickaccess = True phonebook = False thu = True danhso = False cancle = False Close #1 Exit Sub End Select End Sub '****** CHUONG TRINH CON THEM SO DT MOI ***** Private Sub add_entry(st As String, nu As String, lo As Integer, flag As Boolean) Dim news As entry Dim banghi As Byte Dim j As Byte If addentrylist = True Then Open filefixed For Random As #1 Len = Len(news) Else Open filename For Random As #1 Len = Len(news) End If banghi = LOF(1) \ Len(news) For j = 1 To banghi Get #1, j, news If news.location = lo Then tbnhap.Text = "Overwritten?" Close #1 Exit Sub End If Next j news.name = st news.number = nu news.location = lo banghi = banghi + 1 If addentrylist = True Then Put #1, banghi, news Else If flag = True Then Put #1, banghi, news Else Put #1, banghi, news End If End If addentrylist = False listdial = False tbnhap.Text = "Stored" & Str(lo) Close #1 End Sub '**** THU TUC TIM VI TRI SE GHI MOT MUC KHI USER KHONG NHAP VAO LOCATION **** Private Function add_lo(co As Boolean) As Integer Dim news As entry Dim banghi As Byte Dim j As Integer Dim i As Integer Dim timthay As Boolean If co = True Then i = 1 If addentrylist = True Then Open filefixed For Random As #1 Len = Len(news) Else Open filename For Random As #1 Len = Len(news) End If banghi = LOF(1) \ Len(news) If banghi = 0 Then add_lo = 1 timthay = False Close #1 Else timthay = True End If Do While timthay = True For j = 1 To banghi Get #1, j, news If i = news.location Then i = i + 1 timthay = True Exit For Else If j = banghi Then add_lo = i timthay = False Close #1 Exit Do End If End If Next j Loop Else i = 101 Open filename For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) If banghi = 0 Then add_lo = 101 timthay = False Else timthay = True End If Do While timthay = True For j = 1 To banghi Get #1, j, news If i = news.location Then i = i + 1 timthay = True Exit For Else If j = banghi Then add_lo = i timthay = False Close #1 Exit Do End If End If Next j Loop Close #1 End If End Function '***** CHUONG TRINH CON TIM SO DT THEO TEN ****** Private Sub find_name(ten As String) Dim news As entry Dim i As Integer Dim j As Integer Dim banghi As Integer Select Case prevent Case 1 Open filename For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) Case 2, 3 Open filename2 For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) Case 4 found = False tbnhap.Text = "No Name Stored" Exit Sub End Select '**** Truong hop khong co ten nao da duoc luu **** If banghi = 0 Then found = False tbnhap.Text = "No Name Stored" Close #1 Exit Sub End If '**** truong hop user khong nhap ten de tim ******** If ten = "" And banghi 0 Then Get #1, 1, news found = True vitri = 1 st1 = news.name st = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu Close #1 flag = True Exit Sub 'truong hop ten nhap vao trung voi ten da luu Else For i = 1 To banghi Get #1, i, news If StrComp(Left(news.name, Len(ten)), ten) = 0 Then found = True vitri = i st = news.name nu = news.number st1 = news.name tbnhap.Text = st & vbCrLf & nu flag = True Close #1 Exit Sub End If Next i End If 'truong hop ten nhap vao khong trung voi ten da luu For i = 1 To banghi Get #1, i, news If StrComp(Left(news.name, 1), Left(ten, 1)) = 0 Then found = True vitri = i st = news.name nu = news.number st1 = news.name tbnhap.Text = st & vbCrLf & nu flag = True Close #1 Exit Sub End If Next i 'truong hop ten nhap vao khong tin thay, lay entry dau tien Get #1, 1, news st1 = news.name st = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu found = True flag = True vitri = 1 Close #1 End Sub '***** THU TUC GHI DE KHI TRUNG VI TRI ***** Private Sub OVERWRITE(st As String, nu As String, lo As Integer) Dim j As Integer Dim news As entry Dim banghi As Byte If addentrylist = True Then Open filefixed For Random As #1 Len = Len(news) addentrylist = False Else Open filename For Random As #1 Len = Len(news) End If banghi = LOF(1) \ Len(news) For j = 1 To banghi Get #1, j, news If news.location = lo Then news.location = lo news.number = nu news.name = st Put #1, j, news tbnhap.Text = "Stored" & Str(lo) Exit For End If Next j Close #1 End Sub '****** THU TUC TIM MOT MUC THEO VI TRI ***** Private Sub find_location(so As Integer) Dim news As entry Dim news1 As entry Dim j As Integer Dim banghi As Byte Dim i As Integer 'found = True Select Case prevent Case 1 Open filename For Random As #1 Len = Len(news) Case 2, 3 Open filename2 For Random As #1 Len = Len(news) Case 4 tbnhap.Text = "No Number Stored" Exit Sub End Select banghi = LOF(1) \ Len(news) If banghi = 0 Then tbnhap.Text = "No Numbers Stored" Close #1 Exit Sub End If If so = 0 Then Get #1, 1, news i = news.location For j = 2 To banghi Get #1, j, news1 If i > news1.location Then i = news1.location vitri = j Else vitri = i End If Next j found = True flag = True Get #1, vitri, news st1 = news.name tbnhap.Text = news.name & vbCrLf & news.number Close #1 Exit Sub Else For j = 1 To banghi Get #1, j, news If so = news.location Then found = True vitri = j Exit For Else found = False End If Next j If found = True Then st1 = news.name tbnhap.Text = news.name & vbCrLf & news.number Else tbnhap.Text = "Location Empty" End If End If flag = True Close #1 End Sub '****** THU TUC SUA DOI MOT MUC *********** Private Sub modify(ten As String, so As String, cho As Integer) Dim news As entry Dim banghi As Byte Dim j As Integer If editentrylist = True Then Open filefixed For Random As #1 Len = Len(news) Else Open filename For Random As #1 Len = Len(news) End If Get #1, cho, news If ten "" Then If so "" Then news.name = ten news.number = so Put #1, cho, news Close #1 Else news.name = ten Put #1, cho, news Close #1 End If Else If so "" Then news.number = so Put #1, cho, news Close #1 Else Close #1 End If End If If editentrylist = True Then editentrylist = False listdial = False End If End Sub '****** THU TUC XOA MOT MUC ************ Private Sub erased(cho As Integer) Dim news As entry Dim news1 As entry Dim banghi As Byte Dim j As Byte Dim i As Integer If eraseentrylist = True Then Open filefixed For Random As #1 Len = Len(news) Else Open filename For Random As #1 Len = Len(news) End If Open filename1 For Random As #2 Len = Len(news1) banghi = LOF(1) \ Len(news) For j = 1 To banghi If j cho Then Get #1, j, news Put #2, j, news Else i = news.location Exit For End If Next j Do While j < banghi Get #1, j + 1, news Put #2, j, news j = j + 1 Loop tbnhap.Text = "Erased" Close #1 Close #2 If eraseentrylist = True Then Kill filefixed Name filename1 As filefixed eraseentrylist = False listdial = False Else Kill filename Name filename1 As filename End If End Sub '***** THU TUC XU LY CUA PHAN PREVENT ACCESS ******* Private Sub prevent_access(k As Integer) Dim news As entry Dim news1 As entry Dim banghi As Byte Dim j As Integer Dim i As Integer Open filename For Random As #1 Len = Len(news) Open filename2 For Random As #2 Len = Len(news) banghi = LOF(1) \ Len(news) i = 0 Select Case k Case 1, 4 Close #1 Close #2 Exit Sub Case 2 For j = 1 To banghi Get #1, j, news If news.location < 100 Then i = i + 1 Put #2, i, news End If Next j Close #1 Open filename1 For Random As #3 Len = Len(news) For j = 1 To i Get #2, j, news Put #3, j, news Next j Close #2 Close #3 Kill filename2 Name filename1 As filename2 Case 3 For j = 1 To banghi Get #1, j, news If news.location > 100 Then i = i + 1 Put #2, i, news End If Next j Close #1 Open filename1 For Random As #3 Len = Len(news) For j = 1 To i Get #2, j, news Put #3, j, news Next j Close #2 Close #3 Kill filename2 Name filename1 As filename2 End Select End Sub '***** THU TUC KHI PHIM BI MAT TIEU DIEM*** Private Sub so_LostFocus(Index As Integer) i = 0 End Sub 'QUAY SO CHI VOI MOT PHIM Private Sub onetouch(vitri As Integer) Dim news As entry Dim j As Byte Dim banghi As Byte Select Case onetouchof Case 1, 2 Open filename For Random As #1 Len = Len(news) Case 3 Open filefixed For Random As #1 Len = Len(news) End Select If onetouchof = 2 Then vitri = vitri + 100 End If banghi = LOF(1) \ Len(news) For j = 1 To banghi Get #1, j, news If news.location = vitri Then tbnhap.Text = news.number Exit For End If Next j Close #1 End Sub 'DANH SACH SO CO DINH Private Sub fixeddiallist() Dim news As entry Dim banghi As Byte Dim i As Integer Dim j As Integer Open filefixed For Random As #1 Len = Len(news) found = False banghi = LOF(1) \ Len(news) If banghi = 0 Then tbnhap.Text = "List Empty" Else If banghi = 1 Then Get #1, 1, news vitri = 1 Else Get #1, 1, news i = news.location For j = 2 To banghi Get #1, j, news If i > news.location Then i = news.location vitri = j Else vitri = i End If Next j End If listdial = True Get #1, vitri, news st1 = news.name tbnhap.Text = news.name & vbCrLf & news.number End If Close #1 End Sub 'XU LY CUA BO DEM THOI GIAN Private Sub Timer1_Timer() Dim j As Integer Dim i As Integer Dim ch As String Dim networks As netselect If formattime = False Then Label2.Caption = Format(Now, "medium time") Else Label2.Caption = Format(Now, "short time") End If If Left(tbnhap.Text, 11) = "Range 1-100" Or Left(tbnhap.Text, 13) = "Range 101-255" Or Left(tbnhap.Text, 10) = "Range 1-40" Then danhso = True tbnhap.Text = "Enter Location!" & vbCrLf Exit Sub End If If Left(tbnhap.Text, 6) = " Range" Then danhso = True tbnhap.Text = " Enter Location" & vbCrLf Exit Sub End If If tbnhap.Text = "Location Empty" Then 'cancle = True danhso = False tbnhap.Text = "Personal Number" Exit Sub End If If Right(tbnhap.Text, Len("Unused Locations")) = "Unused Locations" Then tbnhap.Text = "Menu" Exit Sub End If If tbnhap.Text = "Restricted" Then tbnhap.Text = "Menu" Exit Sub End If If tbnhap.Text = "Completed" Then tbnhap.Text = "Menu" danhso = True Exit Sub End If If tbnhap.Text = "Calling" Then Timer1.Interval = 3000 If cancall = True Then tbnhap.Text = "Connecting Failed" Image2.Visible = False cancall = False Exit Sub End If tbnhap.Text = "Connected" Exit Sub End If If tbnhap.Text = "Connected" Then tbnhap.Text = "End Call?" found = False Exit Sub End If If Left(tbnhap.Text, 6) = "Erased" Then tbnhap.Text = "Menu" Exit Sub End If If Left(tbnhap.Text, 6) = "Stored" Then tbnhap.Text = "Menu" Exit Sub End If If tbnhap.Text = "Range 1-24" Then cancle = False danhso = True tbnhap.Text = "Enter Time" & vbCrLf Exit Sub End If If tbnhap.Text = "Invalid Format" Then cancle = False danhso = True tbnhap.Text = "Enter Date" & vbCrLf Exit Sub End If If tbnhap.Text = "Not Match" Then danhso = True tbnhap.Text = "Unlock Code" & vbCrLf Exit Sub End If If tbnhap.Text = " Not Match" Then danhso = True tbnhap.Text = "Old Code" & vbCrLf Exit Sub End If If tbnhap.Text = "Not Match." Then danhso = True tbnhap.Text = "Enter PIN2 Code" & vbCrLf Exit Sub End If If tbnhap.Text = " Not Match." Then danhso = True tbnhap.Text = "Enter Barring Password" & vbCrLf Exit Sub End If If tbnhap.Text = "Finding" Then tbnhap.Text = "Failed" Exit Sub End If If tbnhap.Text = "Failed" Then tbnhap.Text = "Network Selection" Exit Sub End If If tbnhap.Text = "Enter 4 Digit" Then tbnhap.Text = "New Code" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = "Invalid Code" Then tbnhap.Text = "Current Code" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = " Invalid Code" Then tbnhap.Text = "Current PIN2 Code" & vbCrLf danhso = True End If If tbnhap.Text = "Invalid Password" Then tbnhap.Text = " Current Password" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = " Enter 4 Digit" Then tbnhap.Text = "New Barring Password" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = "Enter 4-8 Digit" Then tbnhap.Text = "New PIN2 Code" & vbCrLf danhso = True End If If tbnhap.Text = "Enter 6 Digit" Then tbnhap.Text = "New Security Code" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = " Failed" Then tbnhap.Text = "Enter Security Code" & vbCrLf danhso = True Exit Sub End If If tbnhap.Text = "Invalid Time" Then tbnhap.Text = "Enter Time" & vbCrLf danhso = False cancle = False Exit Sub End If If tbnhap.Text = "Invalid Date" Then tbnhap.Text = "Enter Date" & vbCrLf cancle = False danhso = False Exit Sub End If If tbnhap.Text = "Sending" Then If cancall = True Then tbnhap.Text = "Connecting Failed" Image2.Visible = False cancall = False Else tbnhap.Text = " Connected" End If Exit Sub End If If tbnhap.Text = " Connected" Then Image2.Visible = False tbnhap.Text = "Completed" Exit Sub End If If tbnhap.Text = "Deleted" Then tbnhap.Text = "Messages" cancle = True danhso = False Exit Sub End If If tbnhap.Text = "Invalid Msg Number" Then tbnhap.Text = "Messages" cancle = True danhso = False Exit Sub End If 'xu ly khi lam trong muc available network If tbnhap.Text = "Wait.." Then tbnhap.Text = "Scanning" Exit Sub End If If tbnhap.Text = "Scanning" Then Open filename5 For Random As #1 Len = Len(networks) Get #1, 1, networks tam1 = 1 tbnhap.Text = networks.mang st = tbnhap.Text Close #1 Exit Sub End If If tbnhap.Text = "Register" Then tbnhap.Text = "Completed" Exit Sub End If If tbnhap.Text = "Registerring" Then tbnhap.Text = "Failed" Exit Sub End If End Sub 'THU TUC SAP THU TU Private Sub sapthutu() Dim news As entry Dim news1 As entry Dim j As Integer Dim k As Integer Dim banghi As Byte Dim ch As String Dim ch1 As String Dim so As String Dim vitri As Integer Open filename For Random As #1 Len = Len(news) Open filename For Random As #2 Len = Len(news1) banghi = LOF(1) \ Len(news) For j = 2 To banghi Get #1, j, news ch = news.name so = news.number vitri = news.location For k = j - 1 To 1 Step -1 Get #2, k, news1 ch1 = news1.name If StrComp(ch, ch1) = 1 Or StrComp(ch, ch1) = 0 Then Exit For End If news.name = news1.name news.number = news1.number news.location = news1.location Put #1, k + 1, news Next k news.name = ch news.number = so news.location = vitri Put #1, k + 1, news Next j Close #1 Close #2 End Sub 'CHUYEN MOT MUC Private Sub menu_downswitchentry() Dim news As entry Dim banghi As Byte Select Case prevent Case 1 Open filename For Random As #1 Len = Len(news) Case 2, 3 Open filename2 For Random As #1 Len = Len(news) End Select banghi = LOF(1) \ Len(news) menucon = True vitri = vitri + 1 If vitri <= banghi Then Get #1, vitri, news st1 = news.name st = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu Close #1 Exit Sub Else vitri = 1 Get #1, vitri, news st = news.name st1 = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu Close #1 End If End Sub 'CHUYEN MOT MUC Private Sub menu_upswitchentry() Dim news As entry Dim banghi As Byte Select Case prevent Case 1 Open filename For Random As #1 Len = Len(news) Case 2, 3 Open filename2 For Random As #1 Len = Len(news) End Select banghi = LOF(1) \ Len(news) menucon = True vitri = vitri - 1 cancle = True danhso = False If vitri >= 1 Then Get #1, vitri, news st1 = news.name st = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu Close #1 Exit Sub Else vitri = banghi 'vitri + 1 Get #1, vitri, news st1 = news.name st = news.name nu = news.number tbnhap.Text = st & vbCrLf & nu Close #1 End If End Sub 'DI CHUYEN GIUA CAC MUC TRONG DANH SACH SO CO DINH Private Sub menu_downlistdial() Dim news As entry Dim banghi As Byte Open filefixed For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) If banghi = 0 Then listdial = False Close #1 Exit Sub End If vitri = vitri + 1 If vitri <= banghi Then Get #1, vitri, news tbnhap.Text = news.name & vbCrLf & news.number Else vitri = 1 Get #1, vitri, news tbnhap.Text = news.name & vbCrLf & news.number End If Close #1 End Sub 'DI CHUYEN GIUA CAC MUC TRONG DANH SACH SO CO DINH Private Sub menu_uplistdial() Dim news As entry Dim banghi As Byte Open filefixed For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) If banghi = 0 Then listdial = False Close #1 Exit Sub End If vitri = vitri - 1 If vitri >= 1 Then Get #1, vitri, news tbnhap.Text = news.name & vbCrLf & news.number Else vitri = banghi Get #1, vitri, news tbnhap.Text = news.name & vbCrLf & news.number End If Close #1 End Sub 'THU TUC KIEM TRA BO NHO Private Sub check(so As Boolean) Dim news As entry Dim banghi As Byte Dim j As Integer Dim max As Integer Dim max1 As Integer Open filename For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) For j = 1 To banghi Get #1, j, news If news.location < 100 Then max = max + 1 Else max1 = max1 + 1 End If Next j If so = 0 Then tbnhap.Text = (100 - max) & " Unused Locations" Else tbnhap.Text = (155 - max1) & " Unused Locations" End If Close #1 End Sub 'DI CHYEN GIUA DANH SACH CAC MANG UU TIEN Private Sub preferredlist(so As Integer, chuoi As String) Dim networks As netselect Dim banghi As Byte Dim j As Integer Open filename6 For Random As #1 Len = Len(networks) Open filetam For Random As #2 Len = Len(networks) banghi = LOF(1) \ Len(networks) If banghi = 0 Then networks.mang = chuoi Put #2, 1, networks Else For j = 1 To banghi If so j Then Get #1, j, networks Put #2, j, networks Else networks.mang = chuoi Put #2, j, networks Exit For End If Next j Do While j <= banghi Get #1, j, networks.mang Put #2, j + 1, networks.mang j = j + 1 Loop End If If lo > banghi Then networks.mang = st Put #2, banghi + 1, networks End If Close #1 Close #2 Kill filename6 Name filetam As filename6 End Sub 'THU TUC DI CHUYEN MOT MANG UU TIEN DEN VI TRI MOI Private Sub movenew(oldlo As Integer, newlo As Integer) Dim networks As netselect Dim i As Integer Dim banghi As Integer Dim chuoi As String Open filename6 For Random As #1 Len = Len(networks) Open filetam For Random As #2 Len = Len(networks) banghi = LOF(1) \ Len(networks) If oldlo = newlo Then Close #1 Close #2 tbnhap.Text = "Completed" Exit Sub End If If newlo >= banghi Then For i = 1 To oldlo - 1 Get #1, i, networks Put #2, i, networks Next i Get #1, oldlo, networks chuoi = networks.mang For i = oldlo + 1 To banghi Get #1, i, networks Put #2, i - 1, networks Next i networks.mang = chuoi Put #2, banghi, networks.mang End If If oldlo < newlo And newlo < banghi Then For i = 1 To oldlo - 1 Get #1, i, networks Put #2, i, networks Next i Get #1, oldlo, networks chuoi = networks.mang For i = oldlo + 1 To newlo Get #1, i, networks Put #2, i - 1, networks Next i networks.mang = chuoi Put #2, newlo, networks.mang i = newlo + 1 Do While i <= banghi Get #1, i, networks Put #2, i, networks i = i + 1 Loop End If If oldlo > newlo Then For i = 1 To newlo - 1 Get #1, i, networks Put #2, i, networks Next i Get #1, oldlo, networks Put #2, newlo, networks For i = newlo To oldlo - 1 Get #1, i, networks Put #2, i + 1, networks Next i i = oldlo + 1 Do While i <= banghi Get #1, i, networks Put #2, i, networks i = i + 1 Loop End If Close #1 Close #2 Kill filename6 Name filetam As filename6 tbnhap.Text = "Completed" End Sub 'THU TUC XOA MOT MANG UU TIEN Private Sub xoa(loca As Integer) Dim networks As netselect Dim j As Integer Dim i As Integer Dim banghi As Byte Open filename6 For Random As #1 Len = Len(networks) Open filetam For Random As #2 Len = Len(networks) banghi = LOF(1) \ Len(networks) For j = 1 To banghi If j loca Then Get #1, j, networks Put #2, j, networks Else Exit For End If Next j Do While j < banghi Get #1, j + 1, networks Put #2, j, networks j = j + 1 Loop Close #1 Close #2 Kill filename6 Name filetam As filename6 tbnhap.Text = "Completed" End Sub '**** Ham dung phim so trong menu Quick Access ***** Private Function clickquickaccess(so As Integer) As Integer Dim menuaccess As access Open filename3 For Random As #1 Len = Len(menuaccess) Get #1, so, menuaccess tbnhap.Text = Trim(menuaccess.feature) clickquickaccess = menuaccess.thutu 'orderinquick = 1 Close #1 End Function '**** Thu tuc dung phim trong menu Message list Private Sub clickmessage(so As Integer) Dim message As messages Dim banghi As Byte Open filename4 For Random As #1 Len = Len(message) banghi = LOF(1) \ Len(message) If banghi < so Then tbnhap.Text = "Invalid Msg Number" messagelist = False Else Get #1, so, message tbnhap.Text = Trim(message.tin) messagenumber = 2 End If Close #1 End Sub Private Sub store_message() Dim message As messages Dim banghi As Byte Open filename4 For Random As #1 Len = Len(message) banghi = LOF(1) \ Len(message) If taomoi = True Then banghi = banghi + 1 message.tin = st message.sothutu = banghi 'messagenumber Put #1, banghi, message 'messagenumber Else Get #1, messagenumber, message message.tin = st Put #1, messagenumber, message End If tbnhap.Text = "Stored" 'message1 = False Close #1 End Sub Private Sub delete_message() Dim message As messages Dim banghi As Byte Dim j As Integer Open filename4 For Random As #1 Len = Len(message) banghi = LOF(1) \ Len(message) Open filetam For Random As #2 Len = Len(message) For j = 1 To banghi If j messagenumber Then Get #1, j, message Put #2, j, message Else Exit For End If Next j Do While j < banghi Get #1, j + 1, message Put #2, j, message j = j + 1 Loop tbnhap.Text = "Deleted" Close #1 Kill filename4 Close #2 Name filetam As filename4 End Sub 'KHOI TAO CONTROL Private Sub UserControl_Initialize() Dim news As entry Dim banghi As Integer Dim menuaccess As access Dim k As Integer Dim message As messages Dim networks As netselect Label2.Caption = Left(Time, 5) tbnhap.Text = "Menu" unlocked = "1234" securitycode = "000000" voicemailnumber = "4321" servicecentre = "130" pin2code = "13579" expiryperiod = "24" barpassword = "6789" volume.Picture = volume1(2).Picture vol = 3 prevent = 1 Open filename3 For Random As #1 Len = Len(menuaccess) menuaccess.feature = "Find Name?" menuaccess.thutu = 1 Put #1, 1, menuaccess menuaccess.feature = "Add to SIM?" menuaccess.thutu = 4 Put #1, 2, menuaccess menuaccess.feature = "Call Voicemail?" menuaccess.thutu = 12 Put #1, 3, menuaccess menuaccess.feature = "Battery Meter?" menuaccess.thutu = 11 Put #1, 4, menuaccess menuaccess.feature = "Show Time/Date?" menuaccess.thutu = 8 Put #1, 5, menuaccess menuaccess.feature = "Adjust Ring?" menuaccess.thutu = 6 Put #1, 6, menuaccess menuaccess.feature = "Switch Line 1/2?" menuaccess.thutu = 7 Put #1, 7, menuaccess menuaccess.feature = "Vibrate On/Off?" menuaccess.thutu = 9 Put #1, 8, menuaccess menuaccess.feature = "Change Band?" menuaccess.thutu = 10 Put #1, 9, menuaccess Close #1 Open filename For Random As #1 Len = Len(news) news.name = "NHA" news.number = "8402631" news.location = 1 Put #1, 1, news news.name = "HUNG" news.number = "8570726" news.location = 101 Put #1, 2, news Close #1 Open filename4 For Random As #2 Len = Len(message) message.tin = "HELLO" message.sothutu = 1 Put #2, 1, message Close #2 Open filename5 For Random As #1 Len = Len(networks) networks.mang = "FPT" Put #1, 1, networks networks.mang = "Phuong Nam" Put #1, 2, networks networks.mang = "SaigonNet" Put #1, 3, networks networks.mang = "VNN" Put #1, 4, networks Close #1 Open filefixed For Random As #1 Len = Len(news) banghi = LOF(1) \ Len(news) If banghi = 0 Then news.name = "NHA" news.number = "8402631" news.location = 1 Put #1, 1, news End If Close #1 Open filename6 For Random As #1 Len = Len(networks) banghi = LOF(1) \ Len(networks) If banghi = 0 Then networks.mang = "FPT" Put #1, 1, networks End If Close #1 End Sub 'KHI CONTROL KET THUC Private Sub UserControl_Terminate() Kill filename Kill filename3 Kill filename4 Kill filename5 Kill filename6 Kill filefixed End Sub PHẦN IV : TÀI LIỆU THAM KHẢO Kỹ năng lập trình Visual Basic 6.0. Microsoft Developer Network. Mục Lục ._.

Các file đính kèm theo tài liệu này:

  • docDA2054.doc