ເນື້ອໃນ

# ພື້ນຖານ

ພາກສ່ວນນີ້ໃຫ້ຄວາມຮູ້ພື້ນຖານສຳລັບການເຮັດວຽກກັບ LibreOffice Basic.

ລະຫັດຂອງ LibreOffice Basic ແມ່ນອີງໃສ່ຊັບຣູທີນ ແລະ ຟັງຊັນທີ່ຖືກກຳນົດລະຫວ່າງສ່ວນ sub...end sub ແລະ function...end function. ແຕ່ລະ Sub ຫຼື Function ສາມາດເອີ້ນໃຊ້ Sub ແລະ Function ອື່ນໆໄດ້. ຖ້າທ່ານຂຽນລະຫັດແບບທົ່ວໄປ (generic) ສຳລັບ Sub ຫຼື Function, ທ່ານອາດຈະສາມາດນຳມັນມາໃຊ້ຄືນໃນໂປຣແກຣມອື່ນໆໄດ້. ເບິ່ງເພີ່ມເຕີມທີ່ ໂປຣຊີເຈີ ແລະ ຟັງຊັນ.

ມີຂໍ້ຈຳກັດບາງຢ່າງສຳລັບການຕັ້ງຊື່ຕົວແປສາທາລະນະ (public), sub, ແລະ function. ທ່ານຕ້ອງບໍ່ໃຊ້ຊື່ດຽວກັນກັບໂມດູນໃດໜຶ່ງໃນຄັງ (library) ດຽວກັນ.

## Sub ແມ່ນຫຍັງ?

Sub ແມ່ນຄຳຫຍໍ້ຂອງ subroutine (ຊັບຣູທີນ), ເຊິ່ງໃຊ້ເພື່ອຈັດການກັບວຽກງານໃດໜຶ່ງພາຍໃນໂປຣແກຣມ. Sub ຖືກໃຊ້ເພື່ອແບ່ງວຽກອອກເປັນແຕ່ລະຂັ້ນຕອນ (procedures). ການແບ່ງໂປຣແກຣມອອກເປັນສ່ວນຍ່ອຍໆຈະຊ່ວຍໃຫ້ອ່ານງ່າຍຂຶ້ນ ແລະ ຫຼຸດຜ່ອນໂອກາດທີ່ຈະເກີດຂໍ້ຜິດພາດ. Sub ອາດຈະຮັບຄ່າບາງຢ່າງ (arguments) ເປັນພາຣາມິເຕີ ແຕ່ຈະບໍ່ສົ່ງຄ່າໃດໆກັບຄືນໄປຫາ Sub ຫຼື Function ທີ່ເອີ້ນໃຊ້ມັນ, ຕົວຢ່າງ:

DoSomethingWithTheValues(MyFirstValue,MySecondValue)

## Function ແມ່ນຫຍັງ?

function (ຟັງຊັນ) ໂດຍພື້ນຖານແລ້ວກໍຄື sub, ແຕ່ຈະມີການສົ່ງຄ່າກັບຄືນມາ. ທ່ານສາມາດໃຊ້ຟັງຊັນຢູ່ເບື້ອງຂວາຂອງການປະກາດຕົວແປ, ຫຼື ຢູ່ໃນບ່ອນອື່ນໆທີ່ປົກກະຕິທ່ານໃຊ້ຄ່າຂໍ້ມູນ, ຕົວຢ່າງ:

MySecondValue = myFunction(MyFirstValue)

## ຕົວແປທົ່ວໂລກ (Global) ແລະ ຕົວແປທ້ອງຖິ່ນ (Local)

ຕົວແປທົ່ວໂລກ (Global variables) ສາມາດໃຊ້ໄດ້ກັບທຸກໆ sub ແລະ function ພາຍໃນໂມດູນນັ້ນ. ພວກມັນຈະຖືກປະກາດໄວ້ທີ່ຕອນຕົ້ນຂອງໂມດູນ ກ່ອນທີ່ຈະເລີ່ມ sub ຫຼື function ທຳອິດ.

ຕົວແປທີ່ທ່ານປະກາດພາຍໃນ sub ຫຼື function ຈະໃຊ້ໄດ້ສະເພາະພາຍໃນ sub ຫຼື function ນັ້ນເທົ່ານັ້ນ. ຕົວແປເຫຼົ່ານີ້ຈະແທນທີ່ (override) ຕົວແປທົ່ວໂລກທີ່ມີຊື່ດຽວກັນ ແລະ ຕົວແປທ້ອງຖິ່ນທີ່ມີຊື່ດຽວກັນທີ່ມາຈາກ sub ຫຼື function ລະດັບສູງກວ່າ.

## ການຈັດໂຄງສ້າງ

ຫຼັງຈາກແບ່ງໂປຣແກຣມຂອງທ່ານອອກເປັນສ່ວນຕ່າງໆ (Subs ແລະ Functions), ທ່ານສາມາດບັນທຶກສິ່ງເຫຼົ່ານີ້ເປັນໄຟລ໌ເພື່ອໃຊ້ຄືນໃນໂປຣເຈັກອື່ນໄດ້. LibreOffice Basic ສະໜັບສະໜູນ ໂມດູນ ແລະ ຄັງ (Libraries). Subs ແລະ functions ຈະຖືກເກັບໄວ້ໃນໂມດູນສະເໝີ. ທ່ານສາມາດກຳນົດໃຫ້ໂມດູນເປັນແບບທົ່ວໂລກ ຫຼື ເປັນສ່ວນໜຶ່ງຂອງເອກະສານກໍໄດ້. ຫຼາຍໆໂມດູນສາມາດລວມກັນເຂົ້າເປັນຄັງ (library) ໄດ້.

ທ່ານສາມາດສຳເນົາ ຫຼື ຍ້າຍ subs, functions, modules ແລະ libraries ຈາກໄຟລ໌ໜຶ່ງໄປຫາອີກໄຟລ໌ໜຶ່ງໄດ້ໂດຍໃຊ້ໄດອາລັອກ ມາໂຄຣ.

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!