ขอขอบคุณ mcqueccu ณ โอกาสนี้ด้วย ที่เพิ่มคำบรรยาย ภาคภาษาไทยให้ในคลิปวิดีโอ
==หลักการแปลงแอพ B4A เป็น B4J มีดังนี้==
1.เพิ่มไลบารี่ที่จำเป็น ได้แก่ ไลบารี่ jXUI ,XUI Views และ jSQL (ถ้าไม่เพิ่ม ไลบารี่ jXUI และ XUI Views จะไม่สามารถคัดลอกวิวต่างๆ ในข้อที่3 ได้)
2.นำการเพิ่มโมดูล ไฟล์นามสกุล *.Bas ไปยังโครงงานใหม่ ในตัวอย่างนี้ ได้แก่ โมดูล actAdd.Bas และ โมดูล actDashboard.bas โดยตั้งความสัมพันธ์เป็นแบบ Relative Path
3.คัดลอกวิวต่างๆในแต่ละ layout โดย เปิด B4A Layout designer กับ เปิด B4J Layout designer คู่กัน จากนั้น ใช้ Ctrl+A ,Ctrl+C และ Ctrl+V ทำให้ได้ไฟล์ *.bjl (เช่นเดียวกับ *.bal
ใน B4A)
4.แก้ไขข้อผิดพลาดในโครงการ B4J และใช้คำสั่งในการคอมไพล์แบบมีเงื่อนไข
-ประกาศตัวแปร Dim sql As SQL ใน Process_Globals ของ Main
-เพิ่มไลบารี่ข้างนอก #AdditionalJar: sqlite-jdbc -3.27.2.1 ใน Project Attributes ของ Main (เนื่องจาก Sqlite ขึ้นอยู่กับ Sqlite-jdbc)
เราสามารถหาไฟล์ sqlite-jdbc -3.27.2.1.jar และบันทึกไว้ที่C:\B4XAdditionalLibsAndSharedModules\AdditionalLibs\B4J
โดยดาวน์โหลด จากเว็บไซด์นี้ https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
www.b4x.com
-ในโมดูล B4XPage_Created (Root1 As B4XView) ให้เพิ่ม เงื่อนไข กรณีใช้งาน B4J ดังนี้
-ทำการ Sync files โดยทำการกด Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
-ในโมดูล initializeDB ให้เพิ่ม เงื่อนไข กรณีใช้งาน B4J ดังนี้
-แก้ไขจัดการ Splash Page โดยเพิ่มรูป splash.png
-เพิ่มโมดูล lblBack_MouseClicked(EventData MouseEvent) ในโมดูล actAdd.Bas (โมดูลที่ใช้รองรับการสั่งการด้วยเมาส์ เท่านั้น จึงมีเฉพาะ B4J)
และยกเลิก lblBack_Click
==หลักการแปลงแอพ B4A เป็น B4J มีดังนี้==
1.เพิ่มไลบารี่ที่จำเป็น ได้แก่ ไลบารี่ jXUI ,XUI Views และ jSQL (ถ้าไม่เพิ่ม ไลบารี่ jXUI และ XUI Views จะไม่สามารถคัดลอกวิวต่างๆ ในข้อที่3 ได้)
2.นำการเพิ่มโมดูล ไฟล์นามสกุล *.Bas ไปยังโครงงานใหม่ ในตัวอย่างนี้ ได้แก่ โมดูล actAdd.Bas และ โมดูล actDashboard.bas โดยตั้งความสัมพันธ์เป็นแบบ Relative Path
3.คัดลอกวิวต่างๆในแต่ละ layout โดย เปิด B4A Layout designer กับ เปิด B4J Layout designer คู่กัน จากนั้น ใช้ Ctrl+A ,Ctrl+C และ Ctrl+V ทำให้ได้ไฟล์ *.bjl (เช่นเดียวกับ *.bal
ใน B4A)
4.แก้ไขข้อผิดพลาดในโครงการ B4J และใช้คำสั่งในการคอมไพล์แบบมีเงื่อนไข
-ประกาศตัวแปร Dim sql As SQL ใน Process_Globals ของ Main
B4X:
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Dim sql As SQL
End Sub
B4X:
#Region Project Attributes
#MainFormWidth: 600
#MainFormHeight: 600
#AdditionalJar: sqlite-jdbc-3.27.2.1
#End Region
เราสามารถหาไฟล์ sqlite-jdbc -3.27.2.1.jar และบันทึกไว้ที่C:\B4XAdditionalLibsAndSharedModules\AdditionalLibs\B4J
โดยดาวน์โหลด จากเว็บไซด์นี้ https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
SQLite JDBC - Library version updates
Hi everybody! This thread is supposed to get all SQLite JDBC library version links together so as to find and download them easier. As a heavy B4J+SQLite user, I'm always looking forward to have new JDBC versions. All information contained herein has been taken from Mr. Taro L. Saito (xerial)...
B4X:
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
#If B4J
xui.setdatafolder("Membership")
#End If
...
...
End Sub
-ทำการ Sync files โดยทำการกด Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
B4X:
#Region Shared Files
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
#End Region
-ในโมดูล initializeDB ให้เพิ่ม เงื่อนไข กรณีใช้งาน B4J ดังนี้
B4X:
Sub initializeDB
...
...
If Main.sql.IsInitialized = False Then
#If B4J
Main.sql.InitializeSQLite(xui.DefaultFolder,"membership.db",True)
#Else
Main.sql.Initialize(xui.DefaultFolder,"membership.db",True)
#End If
Log("DB Started")
End If
End Sub
-แก้ไขจัดการ Splash Page โดยเพิ่มรูป splash.png
-เพิ่มโมดูล lblBack_MouseClicked(EventData MouseEvent) ในโมดูล actAdd.Bas (โมดูลที่ใช้รองรับการสั่งการด้วยเมาส์ เท่านั้น จึงมีเฉพาะ B4J)
และยกเลิก lblBack_Click
B4X:
#If B4J
Private Sub lblBack_MouseClicked (EventData As MouseEvent)
#Else
Private Sub lblBack_Click
#END If
B4XPages.ShowPageAndRemovePreviousPages("idDash")
End Sub
Last edited: