Visual Basic

Home

Visual Basic Tutorial
Knowledge Developer Database Internet Resource
Class
1. Class
2. Property Procedure
3. คุณสมบัติ
4. ฟังก์ชัน Callback
5. คีย์เวิร์ด
 
Visual Basic Tutorial
1. Visual Basic 6
2. ฟอร์ม
3. Intrinsic Control
4. ตัวแปรและ Procedure
5. Class
6. Common Control1
7. Common Control2
8. ActiveX Control
9. Interface
10. ฐานข้อมูล
11. Database Control
 
Developer
Visual Basic
Microsoft Access
Microsoft Excel
 

คุณสมบัติ

คุณสมบัติที่ส่งออกอ๊อบเจค

อ๊อบเจคของ Visual Basic จะมีคุณสมบัติที่ส่งออกค่า เช่น ฟอร์มและตัว control ที่มองเห็นมีคุณสมบัติ Font ที่ส่งออกอ๊อบเจคของฟอนต์ ซึ่งเป็นกรณีเฉพาะที่ เพราะสามารถต่อท้ายด้วยจุดและชื่อคุณสมบัติ เป็น IntelliSense บอกชื่อของคุณสมบัติของอ๊อบเจค

Form1.Font.Bold = True

โปรแกรมประยุกต์ Visual Basic สามารถออกแบบให้แต่ละ class ทำงานกับสารสนเทศที่แตกต่างกันและเขียนคำสั่งเรียก procedure มาประมวลผล ตัวอย่าง เช่น clsSupplier ไม่มีรายละเอียดเกี่ยวกับที่อยู่ ซึ่งสามารถสร้างเป็น class ใหม่ ชื่อ clsAddress แทนที่การเพิ่มคุณสมบัติ

' clsAddress Module
' ประกาศคุณสมบัติ Public members
Public Street As String
Public City As String
Public Province As String
Public Zip As String
Public Country As String
Public Phone As String

' กำหนดค่าเริ่มต้นที่เหมาะสมให้คุณสมบัติ Country
Const Country_DEF = "ไทย"
Private Sub Class_Initialize()
   Country = Country_DEF
End Sub

' เมธอด constructor
Friend Sub Init(Street As String, City As String, Province As String, _
Zip As String, Optional Country As Variant, Optional Phone As Variant)
   Me.Street = Street
   Me.City = City
   Me.Province = Province
   Me.Zip = Zip
   If Not IsMissing(Country) Then Me.Country = Country
   If Not IsMissing(Phone) Then Me.Phone = Phone
End Sub

' ส่งออกที่อยู่ที่สมบูรณ์ (คุณสมบัติอ่านอย่างเดียว)
Property Get CompleteAddress() As String
   CompleteAddress = Street & vbCrLf & City & ", " _
   & Province & " " & Zip _
   & IIf(Country <> Country_DEF, Country, "")
End Property

เมื่อ clsSupplier ต้องการใช้ clsAddress ทำได้โดยกำหนดคุณสมบัติ OfficeAddress เป็น public ในส่วนการประกาศ

' clsSupplier class module
Public OfficeAddress As clsAddress

ในการกำหนดค่าให้คุณสมบัติ OfficeAddress สามารถทำได้โดยตรง
Set Supplier.OfficeAddress = New clsAddress
supplier.OfficeAddress.Init "1234 ถนนพระราม 1", "พระนคร", "กรุงเทพฯ", "10200"

การทำงานกับคุณสมบัติอ๊อบเจคแบบ Nested สามารถใช้ With… End With

With Supplier.OfficeAddress
   .Street = "1234 ถนนพระราม 1"
   .City = "พระนคร"
   .Province = "กรุงเทพฯ"
   .Zip = "10200"
End With

คุณสมบัติ Set Procedure

การกำหนดค่าให้กับคุณสมบัติ OfficeAddress ซึ่งเป็นอ๊อบเจคของ clsAddress สามารถทำได้โดยการใช้ Property Get และ Property Set

Private m_OfficeAddress As clsAddress

Property Get OfficeAddress() As clsAddress
   Set OfficeAddress = m_OfficeAddress
End Property

Property Set OfficeAddress(ByVal newValue As clsAddress)
   Set m_OfficeAddress = newValue
End Property

คุณสมบัติ Variant

คุณสมบัติที่ส่งออกเป็นประเภทข้อมูล Variant ใช้ประกาศค่าเป็น Public Variant

Private m_CurrentAddress As Variant

' คุณสมบัติ CurrentAddress
' (ตัวอย่างคุณสมบัติ Variant ที่สามารถเก็บอ๊อบเจค)
Property Get CurrentAddress() As Variant
   If IsObject(m_CurrentAddress) Then
      Set CurrentAddress = m_CurrentAddress
   Else
      CurrentAddress = m_CurrentAddress
   End If
End Property

Property Let CurrentAddress(ByVal newValue As Variant)
   If VarType(newValue) <> vbString Then Err.Raise 5
   m_CurrentAddress = newValue
End Property

Property Set CurrentAddress(ByVal newValue As clsAddress)
   ' บรรทัดต่อไม่มีประโยชน์ ถ้าอีอบเจคมีการทดสอบโดยอัตโนมัติจาก VB compiler
   ' If TypeName(newValue) <> "clsAddress" Then Err.Raise 5
   Set m_CurrentAddress = newValue
End Property

คุณสมบัติในโมดูล BAS

คุณสมบัติสามารถประกาศในโมดูล BAS โดยประกาศเป็น public ซึ่งเป็นการประยุกต์ในขอบเขต Global แต่การควบคุมตัวแปรสามารถใช้ Property procedure วิธีการกำหนดคุณสมบัติในโมดูล BAS เช่น การกำหนด Percent เป็นตัวแปร global

Public Percent As Integer

แต่การเขียนคำสั่งให้สามารถควบคุมค่านำเข้าให้อยู่ภายในช่วง 0 ถึง 100 สามารถปรับปรุงคำสั่งเป็น

Dim m_Percent As Integer

Property Get Percent() As Integer
   Percent = m_Percent
End Property

Property Let Percent(newValue As Integer) As Integer
   If newValue < 0 Or newValue > 0 Then Err.Raise 5
   m_Percent = newValue
End Property

 

  

สงวนลิขสิทธิ (C) widebase