Wednesday, January 20, 2016

Project (57) English-Myanmar Dictionary




အခု English-Myanmar Dictionary project မွာ "nnldictionary.db" ဆိုတဲ့ database file ကို အသံုးျပဳထားပါတယ္။ ဒီဖိုင္ထဲမွာ EMDictionary ဆိုတဲ့ Table ပါၿပီး Column ေတြကေတာ့ English, Type နဲ႔ Myanmar ေတြ ျဖစ္ပါတယ္။

app ကို run လုိက္ရင္ English ဒါမွမဟုတ္ ျမန္မာ စာလံုး ရိုက္ထည့္ၿပီး ရွာႏိုင္တဲ့ EditText, အသံထြက္ ဖတ္ေပးႏိုင္တဲ့ "Spk" button ေတြကို ေတြ႕ရပါမယ္။ Whole word ဆိုတဲ့ button က အစအဆံုး တလံုးထဲျဖစ္တဲ့ စာလံုးကို ရွာေပးမွာပါ။ Contains ဆိုတဲ့ button ကေတာ့  အလယ္မွာ ပါ၀င္ေနတဲ့ စာလံုးေတြကို ရွာေပးမယ္။ Starts with က ရွာတဲ့ စာလံုးနဲ႔ စတဲ့ဟာေတြ၊ Ends with ကေတာ့ ရွာတဲ့ စာလံုးနဲ႔ ဆံုးတဲ့ဟာေတြကို ျပေပးေစပါမယ္။

"ျမန္မာစာလံုးရွာရန္" ဆိုတဲ့ button ကေတာ့ EditText ထဲမွာ ျမန္မာစာလံုး ရိုက္ထားရင္ Dictionary တခုလံုးထဲက အဲဒီစာလံုးပါတဲ့ ဟာေတြကို ထုတ္ျပပါလိမ့္မယ္။

ရွာလို႔ရတဲ့ Meaning ေတြကိုေတာ့ ေအာက္က ScrollView ထဲမွာ ေဖာ္ျပေပးပါလိမ့္မယ္။ ဒါကို LongClick ႏွိပ္ထားရင္ ရွာထားတဲ့ ဟာေတြကို ClipBoard ေပၚကို copy ကူးသြားပါမယ္။ Notepad တခုမွာ ျပန္ၿပီး paste လုပ္ႏိုင္ပါတယ္။

အသံုးျပဳႏိုင္တဲ့ ပံုစံေတြကေတာ့-
၁။ English စာလံုး Meaning ရွာရန္။
၂။ အသံထြက္ ေလ့လာရန္။
၃။ အဂၤလိပ္စာ ေလ့လာရန္။ ဥပမာ -tious နဲ႔ အဆံုးသတ္တဲ့ အဂၤလိပ္စာလံုးေတြကို ရွာၿပီး ေလ့လာႏိုင္တယ္။ con- နဲ႔ စတဲ့ စာလံုးေတြကို ေလ့လာႏိုင္တယ္။
၄။ ျမန္မာလို သိတာကို အဂၤလိပ္လို ျပန္ရွာဖို႔။ ဥပမာ- ပန္း။

မွတ္ခ်က္။ Project source code ေတြကို B4A မွာ ပံုစံတူ သံုးႏိုင္ပါတယ္။

======================

Main
====

#English-Myanmar dictionary

AddEditText("edt1",0%x,0%y,80%x,10%y,"")
SetHint("edt1","English  ျမန္မာ")
SetColor("edt1",0,argb(255,200,250,200))


AddButton("btn1",0%x,10%y,50%x,8%y,"")
SetText("btn1","Whole word")

AddButton("btn2",50%x,10%y,50%x,8%y,"")
SetText("btn2","Contains")

AddButton("btn3",0%x,18%y,50%x,8%y,"")
SetText("btn3","Starts with")

AddButton("btn4",50%x,18%y,50%x,8%y,"")
SetText("btn4","Ends with")

AddButton("btn5",0%x,26%y,100%x,10%y,"")
SetText("btn5","ျမန္မာစာလံုး ရွာပါ")

AddButton("btn6",80%x,0%y,20%x,10%y,"")
SetText("btn6","Spk")
SetEnabled("btn6",false)

AddScrollView("sv1",0%x,36%y,100%x,64%y,"")
GetPanel("sv1","pnl")
AddLabel("lb1",2%x,0%y,96%x,64%y,"pnl")
SetColor("lb1",0,argb(255,250,200,250))

SetOnLongClickListener("lb1")

SetActivityTitle("Scripter English-Myanmar Dictionary")

FileCopy(FileDirAssets,"nnldictionary.db",FileDirInternal,"nnldictionary.db")

Dim_SQL(FileDirInternal,"nnldictionary.db",true)

Dim_TTS


==========

EventsSubs
==========

Sub Button_Click(who)

If (who="btn6") Then

TTS_Speak(GetText("edt1"),true)

Else

Select who

Case "btn1"
qq="SELECT * FROM EMDictionary WHERE English='" & GetText("edt1") & "'"

Case "btn2"
qq="SELECT * FROM EMDictionary WHERE English LIKE '%" & GetText("edt1") & "%'"

Case "btn3"
qq="SELECT * FROM EMDictionary WHERE English LIKE '" & GetText("edt1") & "%'"

Case "btn4"
qq="SELECT * FROM EMDictionary WHERE English LIKE '%" & GetText("edt1") & "'"

Case "btn5"
qq="SELECT * FROM EMDictionary WHERE Myanmar LIKE '%" & GetText("edt1") & "%'"

End Select

SQL_execquery(qq,"cursor1")
txt=""

If (Cursor_getrowcount("cursor1")>0) Then
For i=0 to Cursor_getrowcount("cursor1")-1
Cursor_setposition("cursor1",i)
txt=txt & Cursor_getString("cursor1","English") & crlf
txt=txt & Cursor_getString("cursor1","Type") & crlf
txt=txt & Cursor_getString("cursor1","Myanmar") & crlf & crlf
txt=txt & "==========" & crlf & crlf
Next

Else
txt="Not found."
End If

SetText("lb1",txt)
AdjustLabelHeight("lb1")
SetHeight("pnl",GetHeight("lb1"))

End If
End Sub

# ===================

Sub View_OnLongClick(who)
If who="lb1" Then
Clipboard_SetText(GetText("lb1"))
ShowToast("Copied to clipboard.",false)
End If
return false
End Sub

==========

"xevents" module
================

Sub TTS_Ready
SetEnabled("btn6",true)
End Sub


================

Project dictionary.zip file ကို ေအာက္က Link မွာ download လုပ္ႏိုင္ပါတယ္။

dictionary.zip

=======================


Saturday, January 16, 2016

Project (51) Sqlite database (ဓမၼပဒ)

Project (51) Sqlite database (ဓမၼပဒ)

Scripter မွာ Sqlite database အသံုးျပဳ ပံုကို နမူနာ ေရးျပထားပါတယ္။

အသံုးျပဳ နည္း
==========
၁။ database file ကို add assets file နဲ႔ add ထားပါ။ အခုနမူနာမွာ dhamma.sqlite database file ကို သံုးထားပါတယ္။ ဒီ database ထဲမွာ dhammapada ဆိုတဲ့ table ရိွပါတယ္။ column အမည္ေတြက rowid, col_1, col_2, col_3, col_4 ေတြ ျဖစ္ပါတယ္။ rowid ေတြကေတာ့ ဓမၼပဒ စာပိုဒ္ နံပါတ္ေတြ ျဖစ္ၿပီး 1 to 424 ရွိပါတယ္။ col_2 ကေတာ့ ဓမၼပဒ ျမန္မာလို စာပိုဒ္မ်ား၊ col_4 ကေတာ့ အဂၤလိပ္လို စာပိုဒ္မ်ား ျဖစ္ပါတယ္။

၂။ ဒီ database file ကို FileDirAssets ကေန FileDirInternal ဆီကို ကူးထုတ္ရပါတယ္။

FileCopy(FileDirAssets,"dhamma.sqlite",FileDirInternal,"dhamma.sqlite")

၃။ database ထဲက dhammapada table ထဲကေန ျမန္မာလို စာပိုဒ္ col_2 ကို ရွာေဖြဖို႔ query တည္ေဆာက္ရပါတယ္။ ဒီဥပမာ မွာေတာ့ edittext1 နဲ႔ ရွာခ်င္တဲ့ စကားလံုးကို ရယူတယ္။ edittext2 နဲ႔ စာပိုဒ္နံပါတ္ကို ရယူတယ္။ query တည္ေဆာက္မႈကို နည္းလမ္း ၂မ်ိဳးနဲ႔ ဥပမာ ျပထားျခင္း ျဖစ္ပါတယ္။

qq="SELECT col_2 FROM dhammapada WHERE col_2 LIKE '%" & GetText("edt1") & "%'"

qq="SELECT col_2 FROM dhammapada WHERE rowid=" & GetText("edt2")

၄။ အထက္မွာ တည္ေဆာက္ထားတဲ့ query string နဲ႔ database ကို query လုပ္ယူပါတယ္။ ဒါဆိုရင္ ရလာတဲ့ ရလဒ္ record ေတြကို cursor တခုအေနနဲ႔ ျပန္ေပးပါတယ္။ ဒီ cursor ကို "cursor1" ဆိုတဲ့အမည္နဲ႔ ေခတၱ သိမ္းလိုက္ပါတယ္။

SQL_execquery(qq,"cursor1")

၅။ ရလဒ္ cursor1 မွာ record ရွိရင္ label1 မွာ display လုပ္ျပခိုင္းပါတယ္။

If (Cursor_getrowcount("cursor1")>0) Then
txt=""
For i=0 to Cursor_getrowcount("cursor1")-1
Cursor_setposition("cursor1",i)
txt=txt & Cursor_getString("cursor1","col_2") & crlf & crlf
Next

.....

SetText("lb1",txt)
AdjustlabelHeight("lb1")
SetHeight("pnl",GetHeight("lb1"))

================

Project sql.zip ဖိုင္ကို download လုပ္ဖို႔ link ေပးထားပါတယ္။

Download  project zip file here


===========

ေနာက္ထပ္ project အေနနဲ႔ အသံထြက္ေပးႏိုင္တဲ့ အဂၤလိပ္ ျမန္မာ dictionary ဖန္တီးနည္းကို တင္ေပးပါမယ္။

Project (49) Font installer

Scripter ကို အသံုးျပဳ ၿပီး champagne.ttf ဆိုတဲ့ font ကို install လုပ္ျပထားတဲ့ sample ျဖစ္ပါတယ္။ ဒါကို ခ်ဲ႕ထြင္ အသံုးျပဳ ႏိုင္ပါတယ္။ Project fontinstaller.zip ကို ေအာက္က link မွာ download လုပ္ပါ။


Click here to download

Friday, January 15, 2016

Project (47) Text-To-Speech demo

Project (47) Text-To-Speech demo

Scripter test version 2.1.2 ကို သံုးပါ။

EditText ထဲမွာ ရိုက္ထည့္ထားတဲ့ အဂၤလိပ္ စာေတြကို Text-To-Speech အသံုးျပဳၿပီး အသံထြက္ ဖတ္ခိုင္းတာ ျဖစ္ပါတယ္။

အသံထြက္ ဖတ္ေပးႏိုင္တဲ့ အဂၤလိပ္ ျမန္မာ အဘိဓာန္ လိုဟာမ်ိဳး ဖန္တီးႏိုင္ပါတယ္။

================

Main
====

AddEditText("edt1",4.5%x,14.7%y,90.8%x,44.9%y,"")
SetText("edt1","This is a test for Text To Speech")
AddLabel("lb1",4.8%x,3.2%y,90.6%x,9.6%y,"")
SetText("lb1","Enter text below:")

AddButton("btn1",19.5%x,66%y,64.3%x,11.8%y,"")
SetText("btn1","Speak")
SetEnabled("btn1",false)

SetActivityTitle("Text to Speech demo")

Dim_TTS

===============

EventsSubs
==========
Sub Button_Click(who)
TTS_Speak(GetText("edt1"),true)
End Sub

============

"xevents" module
==============

Sub TTS_Ready(success)
If (success) Then
SetEnabled("btn1",true)
End If
End Sub

=================

Thursday, January 14, 2016

Using Views in Scripter (1), (2), (3) PDF

Using Views in Scripter (1) PDF

Scripter မွာ Views မ်ား အသံုးျပဳနည္း ကို ရွင္းျပေပးထားပါတယ္။ ေအာက္မွာ Download လုပ္ႏိုင္ပါတယ္။



Using Views in Scripter (1)

Using Views in Scripter (2) Label

Using Views in Scripter (3) EditText

Scripter test version 2.1.2

Scripter test version 2.1.2

Download