Friday, November 27, 2015

Background Gmail Sending in BMP2 Pro

Background Gmail Sending in BMP2 Pro
BMp2 မွာ Gmail Login ကို အသံုးျပံဳနိုင္တယ္။
     ပထမဆံုး မိမိ အသံုးျပဳမယ့္ Gmail က POP/Imap Enabled ျဖစ္ရမယ္။
------------------------------------------------------------------------------
1 - Browser က မိမိ Gmail ဆီ Destop view နဲ႕ သြားပါ

2 -  Setting ကို ၀င္ကိုပါ
3 - Forwarding and POP/IMAP ကို ၀င္ပါ။
4 - Enable POP for all mail နဲ႕ Enable IMAP ကို အမွတ္ ခ်စ္ပါ
5 -  Save Change လုပ္လိုက္ပါ။
6 - Mail တေစာင္ ႀကိဳက္တဲ႕ဆီ ပို႕ပါ( မပို႕ရင္ SMTP အလုပ္မလုပ္ဘူး)
----------------------------
ဒါဆို ဒီ Gmail  ကို မိမိ App ကေန Login ၀င္ႏိုင္ပီ ...
BMP Code ကေတာ့ ----

addr = "mymail@gmail.com"
pass = "mypassword"
GmailLogin(addr, pass)

otheruser = "example@gmail.com"
GmailSend("subject","body", otheruser)
  '-----------------------------------------------------------
it's nice ;) ;)

Aunt Htoo Aung - Test it

Wednesday, November 25, 2015

Open File Explore and Pick File in 2.1.1

Open File Explore and Pick File
-------------

OpenExplore(Type)
နမူနာ --
    
    a =  OpenExplore("mp3")
    Msgbox( a )

Zip and Unzip ! In 2.1.1

Zip and Unzip !
  Zip နဲ႕ Unzip ကို 2.1.1 ေပၚမွာ ၇ႏိုင္ပါတယ္။
အသံုးျပဳပံုကေတာ့
Zip("sdcard/exampleFolder" , "sdcard/abc.zip")
Unzip("sdcard/abc.zip" , "sdcard/exampleFolder")
ဒလိုပါပဲ
variable ေတနဲ႕ တြဲပီးေတာ့ အသံုးျပဳႏိုင္ပါတယ္။ ဥပမာ

sdroot = DirStorage &"/"
UnZip(sdroot & "abc.zip" , sdroot &"exampleFolder")

Using ContentChooser In 2.1.1 Final -

Using ContentChooser In 2.1.1 Final -
      Content Chooser ဆိုတာ ဖုန္းထဲမွာ ရွိတဲ႕ Video /Photo/ music / တျခား ဖိုင္ေတကို  လွမ္းယူ ဖြင့္တာပါ။
အာ့လို လွမ္းယူတဲ႕ အခါမွာ မိမိ App ကေန Browser ဖြင့္ယူတာမ်ိဳးမဟုတ္ပဲ ဖုန္းထဲမွာ ရွိေနတဲ႕ သက္ဆိုင္ရာ App ကို ဖြင့္ပီး ယူတာမ်ိဳးေပါ့။
ဥပမာ mp3 တပုဒ္ ယူခ်င္တယ္ဆိုရင္ Music Player ကို ဖြင့္ယူမယ္။
Photo တပံုယူခ်င္တယ္ဆိုရင္ Gallery ကို ဖြင့္ယူပဲေပါ့။
ContentChooser ရဲ႕ Usage ကေတာ့
OpenContent(Type , Title )  အာ့လိုပါ။
အခု နမူာ Gallery ကေန ပံုယူပီး ImageView မွာ သံုးပါမယ္။

----  Main Code Selection ----------

AddImageView("Img",0,0,100%X,90%y,"")
AddButton("btn1",0,90%y,100%x,10%y,"")
  SetText("btn1" , "Choose Photo")

--------- event and Subs Selection --------------

Sub Button_Click(Who)
IF Who = "btn1" Then
  OpenContent("image" , "Choose Photos")
End IF
End Sub

Sub ContentChooser_Result(Dir , FileName)
   SetImage("Img" , Dir, FileName)
End Sub

USSD Code ကို Run ဖို႕ _ with 2.1.1

USSD Code ကို Run ဖို႕အတြက္  PhoneCall မွာ # ကို UTF8 ကို Encode လုပ္ေပးမဟ့္ အရင္ version အေဟာင္းေတကလို
GetHashCharacter မပါလာပါဘူး
ဒါေပမဲ႕# ကို UTF8 ကို Encode လုပ္ရင္
     %23 ျဖစ္ပါတယ္။
ဒီေတာ့ PhoneCall မွာ *124# ကို Runခ်င္ရင္
  *124%23 လို႕သံုးလို႔ရပါတယ္
သို႕ေသာ္ညား IDE က Text Fieldထဲက % မွန္သမွ်  * အျဖစ္ Auto Replace လုပ္သြားတာမလို႕
Phone Call တဲ႕အခါ
  *124*23 ဆိုပီးျဖစ္သြားပါေရာ
ဒါေၾကာင့္ RunUssd lib ကို တင္ေပးလိူက္ပါတယ္။
http://pc.cd/rPOrtalK
USSD.xml ကို
sdcard ထဲက BMP_Subs folder ထဲမွာထည့္ပါ
BMP မွာ Custom subsကိုဖြင့္ပီး
USSD ကိုအမွတ္တပ္ပါ
ပီးရင္ ေတာ့

RunUssd("*124#")

  စသျဖင့္ သံုးႏိုင္ပါပီ
ပံုမွန္ပဲ သံုးရမွာ ျဖစ္ပါတယ္
RunUssd("*123*123246525685324643#")
စျဖင့္ေပါ့

  RunUssd က # ပါတဲ႕ ဖုန္းCall အတြက္ကိုပဲ အသံုးျပဳဖို႕ပါ။

Making a Tabhost on 2.1.1

Making a Tabhost on 2.1.1

'ပထမဆံုး TBH အမည္ TabHost တခုလုပ္မယ္။
'--------  Add TabHost TBH ---------
AddTabHost("TBH",0,0,100%x,100%y,"")

'TBH ထဲမွာ Tab 3ခု (Panel 3ခု) လုပ္ယူမယ္။
'3ခုဆိုတာ နမူနာ လိုသေလာက္လုပ္ယူပါ
'------Create 3 Panel in TBH -------
AddTab("Page 1" ,"Pnl1", "TBH")
AddTab("Page 2", "Pnl2", "TBH")
AddTab("Page3",  "Pnl3", "TBH")

TBH ထဲမွာ လုပ္ယူထားတဲ႕ Panel တခုခ်င္းေပၚကို View ေတထည့္မဟ္။ နမူနာ Button ေတထည့္ျပထားတာပါ။
'------- Add Views to Panels ----------
AddButton("btn1",10%x,10%y,80%x,10%y, "Pnl1")
SetText("btn1", "Page1")

AddButton("btn2",10%x,10%y,80%x,10%y, "Pnl2")
SetText("btn2", "Page2")

AddButton("btn3",10%x,10%y,80%x,10%y, "Pnl3")
SetText("btn3", "Page3")

SeekBar နဲ႕ Audio Player ကို ခ်ိတ္ဆက္ပံု (only version 2.1.1)

SeekBar နဲ႕ Audio Player ကို ခ်ိတ္ဆက္ပံု

'=======Main Code Selection=======

AddSeekBar("SB",0,20%y,100%x,7%y,"")

LoadAudioFile(DirAssets,"abc.mp3")
SetTimer1Interval(100)
SetTimer1Enabled(True)
PlayAudio

'======== Event Selection =======

Sub Timer1_Tick
a = (100/AudioDuration)*GetAudioPosition
SetValue("SB", a )
End Sub

Sub SeekBar_ValueChanged(who, Value, uchange)
If uChange = True Then
a = (AudioDuration/100) * Value
  SetAudioPosition( a)
End If
End Sub

Seekbar တခုထည့္မဟ္
Audio ကို Laod file လုပ္မယ္
Timer တခု run ခိုင္းမယ္
    Timer ထဲကေန Seekbar ရဲ႕ တန္ဖိုးကို Change ေပးပါမယ္။
   Seekbar ရဲ႕ Max တန္ဖိုးက 100
ဒါေပမဲ႕ audio ဖိုင္ရဲ႕ Duration ကေတာ့ မတူညီပါဘူး
ဒါေၾကာင့္ 100 ကို audioDuration နဲ႕စားပီး ရလာတဲ႕ တန္ဖိုးကိုမွ Audioplayer ရဲ႕ Current position နဲ႕ေျမွာက္ရင္ 100 ေပၚမ အေျခံပီး Percent ခ်ႏိုင္မွာပါ၊
      Seekbar Value ခ်ိန္းတဲ႕အခါ လည္း ဒီသေဘာပါပဲ။