Module
Contents
Index 🔎︎

# ការ​ប្រើ​បែបផែន និង​អនុគមន៍

ដូច​ខាង​ក្រោម​ពណ៌នា​អំពី​មូលដ្ឋាន​នៃ​ការ​ប្រើ​បែបបទ និង​អនុគមន៍​ក្នុង LibreOffice Basic ។

នៅ​ពេល​អ្នក​បង្កើត​ម៉ូឌុល​ថ្មី​មួយ LibreOffice Basic បញ្ចូល​ដោយ​ស្វ័យ​ប្រវត្តិ​នូវ SUB មួយ​ហៅ​ថា "Main" ។ ឈ្មោះ​លំនាំដើម​នេះ​គ្មាន​អ្វី​ត្រូវ​ធ្វើ​ជាមួយ​លំដាប់ ឬ​ចំណុច​ចាប់ផ្តើម​នៃ​គម្រោង LibreOffice Basic ។ អ្នក​ក៏​អាច​ប្តូរ​ឈ្មោះ SUB នេះ ។

ការ​ដាក់​កម្រិត​មួយ​ចំនួន អនុវត្ត​សម្រាប់​ឈ្មោះ​នៃ​អថេរ​សាធារណៈ subs និង functions របស់​អ្នក ។ អ្នក​មិន​ត្រូវ​ប្រើ​ឈ្មោះ​ដូចគ្នា​នឹង​ម៉ូឌុល​ណាមួយ​របស់​បណ្ណាល័យ​តែមួយ​ឡើយ ។

បែបបទ (SUBS) និង​អនុគមន៍ (FUNCTIONS) ជួយ​អ្នក​ក្នុង​ការ​ថែរក្សា​ទិដ្ឋភាព​ដែល​មាន​រចនា​សម្ព័ន្ធ ដោយ​ចែក​កម្មវិធី​ទៅ​ជា​ចំណែក​សមរម្យ ។

អត្ថ​ប្រយោជន៍​មួយ​នៃ​បែបបទ និង​អនុគមន៍​គឺថា​ នៅ​ពេល​អ្នក​បាន​អភិវឌ្ឍ​កូដ​កម្មវិធី​ដោយ​មាន​សមាសភាគ​ភារកិច្ច អ្នក​អាច​ប្រើ​កូដ​នេះ​ក្នុង​គម្រោង​ផ្សេង​ទៀត ។

## ការ​ហុច​អថេរ​ទៅ​បែបផែន (SUB) និង​អនុគមន៍ (FUNCTION)

អថេរ​អាច​ត្រូវ​បាន​ហុច​ទៅ​ទាំង​បែបបទ និង​អនុគមន៍ ។ SUB ឬ FUNCTION ត្រូវ​តែ​ប្រកាស​ដើម្បី​រំពឹង​ប៉ារ៉ាម៉ែត្រ ។

    Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
    កូដ​កម្មវិធី
    End Sub

SUB ត្រូវ​​បាន​​ហៅ​​ដោយ​​ប្រើ​​វាក្យ​សម្ពន្ធ​​ដូច​ខាង​ក្រោម ៖

    SubName(Value1, Value2,...)

ប៉ារ៉ាម៉ែត្រ​ដែល​បាន​ហុច​ទៅ SUB ត្រូវ​តែ​សម​ទៅ​នឹង​ប៉ារ៉ាម៉ែត្រ​ដែល​បាន​បញ្ជាក់​​ក្នុង​​ការ​ប្រកាស SUB ។

ដំណើរការ​ដូច​គ្នា​ដែរ​ក្នុង​ការ​អនុវត្ថ​ទៅ FUNCTIONS ។ លើស​ពី​នេះ​ទៀត អនុគមន៍​តែងតែ​ត្រឡប់​លទ្ធផល​អនុគមន៍ ។ លទ្ធផល​នៃ​អនុគមន៍​ត្រូវ​បាន​កំណត់​ដោយ​ផ្តល់​នូវ​តម្លៃ​ត្រឡប់​ទៅ​ឈ្មោះ​អនុគមន៍ ៖

    Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
    កូដ​កម្មវិធី
    FunctionName=Result
    End Function

FUNCTION ត្រូវ​បាន​ហៅ​ដោយ​ប្រើ​វាក្យ​សម្ពន្ធ​ដូច​ខាង​ក្រោម ៖

    Variable=FunctionName(Parameter1, Parameter2,...)

អ្នក​ក៏​អាច​ប្រើ​ឈ្មោះ​​ដែល​​មាន​​គុណ​សម្បត្តិ​​ពេញ​លេញ ដើម្បី​ហៅ​បែបបទ ឬ​អនុគមន៍​មួយ ៖
Library.Module.Macro()
ឧទាហរណ៍ ដើម្បី​ហៅ​ម៉ាក្រូ Autotext ពី​បណ្ណាល័យ Gimmicks ប្រើ​ពាក្យ​បញ្ជា​ដូច​ខាង​ក្រោម ៖
Gimmicks.AutoText.Main()

## ការ​ហុច​អថេរ​ដោយ​តម្លៃ ឬ​សេចក្តី​យោង

ប៉ារ៉ាម៉ែត្រ​អាច​ត្រូវ​បាន​ហុច​ទៅ SUB ឬ FUNCTION មួយ​ទាំង​ដោយ​សេចក្តី​​យោង ឬ​ដោយ​តម្លៃ ។ លុះ​ត្រា​តែ​បញ្ជាក់​ផ្សេង​ពី​នោះ បើ​ពុំ​នោះ​ទេ​ប៉ារ៉ាម៉ែត្រ​នឹង​តែងតែ​ត្រូវ​បាន​ហុច​ដោយ​សេចក្តី​យោង ។ នោះ​មាន​ន័យ​ថា SUB ឬ FUNCTION នោះ​ទទួល​ប៉ារ៉ាម៉ែត្រ និង​អាច​អាន និង​កែប្រែ​តម្លៃ​របស់​វា ។

ប្រសិន​បើ​អ្នក​ចង់​ហុច​ប៉ារ៉ាម៉ែត្រ​ដោយ​តម្លៃ បញ្ចូល​ពាក្យ​គន្លឹះ "ByVal" ពី​មុខ​ប៉ារ៉ាម៉ែត្រ នៅ​ពេល​អ្នក​ហៅ SUB ឬ FUNCTION ឧទាហរណ៍ ៖

    Result = Function(ByVal Parameter)

ក្នុង​ករណី​នេះ មាតិកា​ដើម​នៃ​ប៉ារ៉ាម៉ែត្រ​នឹង​មិន​ត្រូវ​បាន​កែប្រែ​ដោយ FUNCTION ព្រោះ​ថា​វា​ទទួល​តែ​តម្លៃ និង​មិន​មែន​ប៉ារ៉ាម៉ែត្រ​ខ្លួន​វា ។

## វិសាលភាព​នៃ​អថេរ

អថេរ​ដែលបាន​កំណត់​នៅ​ក្នុង SUB ឬ FUNCTION ត្រឹមត្រូវ​រហូត​ដល់​ពេល​ចេញ​ពី​ទម្រង់ការ ។ វា​ត្រូវបាន​ស្គាល់​ថា​ជា​អថេរ "មូលដ្ឋាន" ។ ករណីជា​ច្រើន អ្នក​ត្រូវការ​ឲ្យ​អថេរ​ត្រឹមត្រូវ​នៅ​ក្នុង​គ្រប់​ទម្រង់ការ​ទាំងអស់ នៅ​ក្នុង​រាល់​ម៉ូឌុល​បណ្ណាល័យ​ទាំងអស់ ឬ​បន្ទាប់​ពី​ SUB ឬ FUNCTION ត្រូវបាន​ចេញ ។

### ការ​ប្រកាស​អថេរ​នៅ​ក្រៅ SUB ឬ FUNCTION

    GLOBAL VarName As TYPENAME

អថេរ​អាច​ប្រើ​បាន​រហូត​ដល់​ទី​បញ្ចប់​នៃ​​​សម័យ LibreOffice ។

    PUBLIC VarName As TYPENAME

អថេរ​អាច​ប្រើ​បាន​ក្នុង​ម៉ូឌុល​ទាំងអស់ ។

    PUBLIC VarName As TYPENAME

អថេរ​អាច​ប្រើ​បាន​តែ​ក្នុង​ម៉ូឌុល​នេះ ។

    Dim VarName As TYPENAME

អថេរ​អាច​ប្រើ​បាន​តែ​ក្នុង​ម៉ូឌុល​នេះ ។

### ឧទាហរណ៍​សម្រាប់​អថេរ​ឯកជន

តម្រូវ​ឲ្យ​អថេរ​ឯកជន​ជាម៉ូឌុល​ឆ្លង​ឯកជន ដោយ​កំណត់ CompatibilityMode(true) ។

    ' ***** Module1 *****
    Private myText As String
    Sub initMyText
        myText = "Hello"
        print "in module1 : ", myText
    End Sub

    ' ***** Module2 *****
    'Option Explicit
    Sub demoBug
        CompatibilityMode( true )
        initMyText
        ' Now returns empty string
        ' (or rises error for Option Explicit)
        print "Now in module2 : ", myText
    End Sub

### ការ​រក្សាទុក​មាតិកា​អថេរ​បន្ទាប់​ពី​ចាកចេញ​ពី SUB ឬ FUNCTION

    STATIC VarName As TYPENAME

អថេរ​រក្សា​ទុក​តម្លៃ​របស់​វា​រហូត​ដល់​ពេល​ក្រោយ​ដែល FUNCTION ឬ SUB ត្រូវ​បាន​ចូល ។ ការ​ប្រកាស​ត្រូវ​តែ​ស្ថិត​នៅ​ក្នុង SUB ឬ FUNCTION មួយ ។

## ការ​បញ្ជាក់​អំពី​​ប្រភេទ​តម្លៃ​ត្រឡប់​នៃ FUNCTION

ដូច​គ្នា​នឹង​អថេរ​ដែរ រួម​បញ្ចូល​តួ​អក្សរ​ប្រភេទ​ការ​ប្រកាស​បន្ទាប់​ពី​ឈ្មោះ​អនុគមន៍ ឬ​ប្រភេទ​ដែល​បញ្ជាក់​ដោយ "As" និង​ពាក្យ​គន្លឹះ​ត្រូវ​គ្នា​ដែល​នៅ​ចុង​បញ្ជី​ប៉ារ៉ាម៉ែត្រ ដើម្បី​កំណត់​ប្រភេទ​នៃ​តម្លៃ​ត្រឡប់​របស់​អនុគមន៍ ឧទាហរណ៍ ៖

    Function WordCount(WordText As String) As Integer