ຟັງຊັນ CreateUnoValue

ສົ່ງຄືນວັດຖຸທີ່ສະແດງເຖິງຄ່າທີ່ມີການກຳນົດປະເພດຢ່າງເຄັ່ງຄັດເຊິ່ງອ້າງອີງເຖິງລະບົບປະເພດ Uno.

ວັດຖຸນີ້ຈະຖືກປ່ຽນເປັນປະເພດ Any ທີ່ກົງກັນໂດຍອັດຕະໂນມັດເມື່ອຖືກສົ່ງໄປຫາ Uno. ປະເພດຕ້ອງໄດ້ຮັບການລະບຸດ້ວຍຊື່ປະເພດ Uno ທີ່ສົມບູນ.

ໄອຄອນ ບັນທຶກ

API ຂອງ LibreOffice ມັກໃຊ້ປະເພດ Any ເລື້ອຍໆ. ມັນເປັນສິ່ງທີ່ທຽບເທົ່າກັບປະເພດ Variant ໃນສະພາບແວດລ້ອມອື່ນໆ. ປະເພດ Any ສາມາດເກັບປະເພດ Uno ໃດໆກໍໄດ້ ແລະ ຖືກໃຊ້ໃນອິນເຕີເຟສ Uno ທົ່ວໄປ.


ໄວຍາກອນ:


  CreateUnoValue(Type As String, Value As Object) As Object 

ປະເພດຄ່າທີ່ສົ່ງກັບ:

Object

ພາຣາມິເຕີ:

ຊື່

ປະເພດ

ຄຳອະທິບາຍ

Type

String

ຊື່ປະເພດ Uno ທີ່ສົມບູນ. ປະເພດຂໍ້ມູນທີ່ຮອງຮັບແມ່ນ void, char, boolean, byte, short, unsigned short, long, unsigned long, hyper, unsigned hyper, float, double, string, type, ແລະ any. ຊື່ແມ່ນຈຳແນກຕົວພິມໃຫຍ່-ນ້ອຍ ແລະ ອາດຈະມີວົງຂໍ (square brackets) ນຳໜ້າເພື່ອລະບຸວ່າເປັນອາເຣ.

ຄ່າ

Object

ຄ່າທີ່ມີການກຳນົດປະເພດຢ່າງເຄັ່ງຄັດ.


ລະຫັດຂໍ້ຜິດພາດ:

ຖ້າ CreateUnoValue ບໍ່ສາມາດປ່ຽນຄ່າເປັນປະເພດ Uno ທີ່ລະບຸໄດ້, ຈະເກີດຂໍ້ຜິດພາດ. ບໍລິການ com.sun.star.script.Converter ຈະຮັບຜິດຊອບໃນການປ່ຽນແປງນີ້.

ຕົວຢ່າງ:


   byte_sequence_object = CreateUnoValue("[]byte", Array(85, 3, 27))

ຕົວຢ່າງ:

ຟັງຊັນນີ້ແມ່ນມີຈຸດປະສົງເພື່ອໃຊ້ໃນສະຖານະການທີ່ກົນໄກການປ່ຽນປະເພດ Basic ໄປເປັນ Uno ແບບເລີ່ມຕົ້ນນັ້ນຍັງບໍ່ພຽງພໍ. ສິ່ງນີ້ເກີດຂຶ້ນເມື່ອມີການເອີ້ນໃຊ້ເມທອດ API ທີ່ອີງຕາມ Any ແບບທົ່ວໄປ, ເຊັ່ນ com.sun.star.beans.XPropertySet.setPropertyValue() ຫຼື com.sun.star.container.XNameContainer.insertByName(). CreateUnoValue() ຕັ້ງຄ່າວັດຖຸໃຫ້ກັບປະເພດ Uno ທີ່ບໍ່ຮູ້ຈັກ.

ຕົວຢ່າງນີ້ໃຊ້ວິທີການ com.sun.star.beans.XPropertySet.addProperty() ເພື່ອສ້າງຄຸນສົມບັດຂອງເອກະສານ ທີ່ຄ່າເລີ່ມຕົ້ນຂອງມັນຕ້ອງການການນຳໃຊ້ CreateUnoValue():


  With ThisComponent.DocumentProperties.getUserDefinedProperties()
      .addProperty("FOO", com.sun.star.beans.PropertyAttribute.REMOVEABLE, CreateUnoValue("double", 23))
  End With	

ທ່ານຍັງສາມາດໃຊ້ຟັງຊັນນີ້ເພື່ອສົ່ງຄ່າທີ່ບໍ່ແມ່ນ Any ໄດ້, ແຕ່ບໍ່ແນະນຳ. ຖ້າ Basic ຮູ້ປະເພດເປົ້າໝາຍຢູ່ແລ້ວ, ການໃຊ້ຟັງຊັນ CreateUnoValue() ຈະເຮັດໃຫ້ມີຂັ້ນຕອນການປ່ຽນແປງເພີ່ມເຕີມ ເຊິ່ງເຮັດໃຫ້ການເຮັດວຽກຂອງ Basic ຊ້າລົງ.

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

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