PDA

View Full Version : N-gage có thể lập trình như pascal hay C++..tại sao không??


lengo_ltd
24-07-2012, 02:27 PM
Do cũng rất thích lập trình nên muốn cho con N-gage đột phá luôn trong vấn đề này nên đã tìm 1 chương trình lập trình cho nó . Vả cravo đã tìm ra . Đó là chương trình lập trình python có thể các bạn hơi xa lạ với nó nhưng nó cũng dc sánh vai với các chương trình lập trình như C,C++,pascal trên thế giới đấy ạ !!
Nếu bạn rành về lập trình python 1 chút bạn có thể tạo ra 1 chương trình như làm 1 trái bóng rơi từ trên cao xuống,1 bàn cờ,1 chương trình quản lý như Fexplorer,1 game trên điện thoại....trên chương trình lập trình của n-gage.Nếu bạn không quan tâm lập trình bạn cũng có thể học lõm 1 chút đánh vài câu lệnh đơn giản và chạy nó thì bạn cũng có thể phổng mũi với 1 ai đó là ta đây biết lập trình và lại là lập trình trên con n-gage mới ác chứ :) .
http://i116.photobucket.com/albums/o7/Hinhbaxa/appnote.png
Giống như C++ hay Pascal, Python cũng là một ngôn ngữ lập trình. Vì lý do gì mà nó được mang
tên của một loài rắn thì mình vẫn chưa nghiên cứu kỹ. Tuy nhiên, có thể có một lý do là vì Python
cực kỳ mềm dẻo. Giống như Java, và cái mà .NET đang hướng đến, đó là Python có thể chạy được
trên hầu hết các Hệ điều hành, bao gồm Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm
Handhelds, và một số điện thoại di động của Nokia. Tốc độ thực thi của Python cực kỳ nhanh, và
Python có thể tạo ra những chương trình chạy từ những script rất nhỏ cho đến những chương trình
lớn và vô cùng mạnh mẽ. (Với những ai muốn tìm hiểu về độ mạnh mẽ của Python, có thể xài thử
chương trình Blender, một chương trình tuy hơi khó sử dụng, nhưng mạnh gần gấp đôi 3D Studio
MAX!!!, bên cạnh đó hoàn toàn miễn phí)
Một thế mạnh khác của Python là một ngôn ngữ hướng đối tượng, có khả năng tích hợp dễ
dàng vào các ngôn ngữ lập trình khác. Bên cạnh đó, Python có cấu trúc mã đơn giản, dễ hiểu, và
có thể học một cách dễ dàng chỉ trong vài ngày. Một thế mạnh khác của Python, đấy là Python là
một ngôn ngữ lập trình, có lẽ là duy nhất, miễn phí và mã nguồn mở.
Anh Đỗ Cường, kiến trúc sư phần mềm của YouTube.Com đã phát biểu về Python:
"Python thực sự nhanh,quá đủ cho trang web của chúng tôi để có thể cung cấp những tính năng
duy trì được qua thời gian với số lượng chuyên gia ít nhất"
Peter Novig, giám đốc về chất lượng tìm kiếm của Google thì nói:
"Python đã đóng một vai trò hết sức quan trọng đối với Google ngay từ khi mới bắt đầu, và vẫn
còn tồn tại để giúp cho hệ thống lớn mạnh và phát triển. Hiện nay có rất nhiều lập trình viên
Google sử dụng Python, và chúng tôi đang tuyển thêm người với kỹ năng về ngôn ngữ này."
Thêm một số thông tin ngoài lề, đó là NASA cũng sử dụng Python, và ngoài ra còn có rất
nhiều các công ty lớn khác.
Các chi tiết về python có thể xem thêm trên trang web http://www.python.org hay
http://python.sourceforge.net
Túm lại, để nói 1 câu về Python, thì có thể nói, Python là một ngôn ngữ lập trình mạnh mẽ,
mềm dẻo, dễ học, cross-platform, hướng đối tượng, miễn phí và mã nguồn mở.
Ổn chưa? Bây giờ thì mọi người chắc cũng hiểu qua một chút khái niệm về Python. Các bài
tiếp theo chúng ta sẽ đi những bước đầu tiên để bắt đầu lập trình với Python, và sau đó "tiện thể"
học qua để viết chương trình Python cho S60 (Điện thoại di động hỗ trợ Symbian S60 như Nokia
N-Gage, 6600, 7610, 6680, N73...) Có con N-gage kìa ... hãnh diện chưa.
Sau khi down về bạn sẽ có một file .sis, file cài đặt của Symbian. Tiến hành cài đặt như việc cài đặt một chương trình bất kỳ. Sau quá trình cài đặt hoàn tất, trong Menu của bạn sẽ xuất
hiện một con rắn xinh xinh, biểu tượng của Python.
Bây giờ, bạn đã có thể bắt tay vào lập trình trên chiếc điện thoại của bạn.
Bản python mới nhất dành cho N-gage : http://www.mediafire.com/?mnmdozqmd82

vungtau
24-07-2012, 02:27 PM
"Những tài liệu này mình sưu tầm thôi nha"
2. Làm quen với Python S60
Bây giờ bạn hãy chạy Python cho S60. Sau đó nhấp phím mềm bên trái để vào Option, sau
đó chọn Interactive Console. Một màn hình hiện ra với dấu nhắc tại >>>. Bạn đã thấy quen
thuộc chưa? Thực sự không khác gì cửa sổ IDLE của Python mà các bạn đã làm quen đúng không?
Tiếp theo, bạn hãy gõ vào đấy
print “Hello World”
Nhấn Enter thì ngay lập tức, dòng chữ Hello World hiện ngay ở phía dưới, hoàn toàn không khác gì IDLE,
nhỉ? Bây giờ mới biết hóa ra lập trình cho Mobile cũng thật là dễ dàng.
Vậy làm sao để có thể Run một Python Script trên S60? Cũng vô cùng dễ dàng. Làm tương
tự như trên, nhưng thay vì chọn Interactive Console thì bạn chọn Run Script. Sau đó bạn có thể
chọn một script trong list đó để Run. Nói nhỏ cho các bạn nhé, hãy chạy thử file snake.py, sẽ rất
vui đấy.
Vậy, làm sao để có thể copy scipt mà mình viết trên máy tính vào phone? Có hai cách: Nếu
bạn có Bluetooth, bạn có thể “bắn” file đó vào phone, sau đó, APPMGR sẽ hỏi bạn install as Python
script hay Python lib module. Trong hầu hết trường hợp, bạn sẽ install as Python script. (Chỉ
Install As Python lib module nếu bạn được hướng dẫn phải làm như vậy) Sau đó, khi bạn chạy
Python lại, bạn sẽ thấy file của mình được nằm trong list các file python có trong máy (APPMGR
copy vào trong thư mục my của Python) và bạn có thể Run script như bình thường.
Nếu bạn không có cổng Bluetooth? Bạn buộc phải dùng đầu đọc thẻ hoặc cáp nối để copy
file .py của bạn. Để Python có thể chạy được script của bạn, bạn phải copy vào thư mục của
Python, thường là ở E:\System\Apps\Python hoặc E:\System\Apps\Python\my. Đối với lib module,
bạn có thể copy vào thư mục E:\System\Libs, việc này cũng tương tự như khi bạn dùng APPMGR
để install script.
Có thể bạn sẽ hỏi: Tại sao không có New Windows để hiển thị ra một cửa sổ cho bạn soạn
thảo file .py như trên PC? Thực ra thì đúng là không có thật. Mặc dù làm thêm tính năng đấy
không khó, nhưng Python có lẽ đã bỏ tính năng đấy đi để cho các bạn không mất thời gian vào
việc bấm phím điện thoại từng chữ từng chữ một cho đến khi code xong một chương trình nho nhỏ
nào đấy. Hẳn sẽ mất rất nhiều công cho đến khi chương trình của bạn làm được một cái gì đấy,
nhỉ?
Nói thì nói vậy, bạn vẫn luôn có cách để làm như vậy. Đơn giản nhất là tạo ra một file text
nào đấy (bằng X-plore hoặc Office Suite), rename thành .py rồi copy vào thư mục Python để Run
Script. Tuy nhiên, tốt nhất là bạn nên dùng những chương trình Python Editor, như là Editor, pyed,
PyEdit, ppeditor, Ped... Những chương trình này cho phép bạn lập trình ngay trên chính máy điện
thoại của mình, và có thể Run và thậm chí Debug. Tuy nhiên, mình cũng chỉ khuyến cáo bạn dùng
những chương trình này để Debug và fix những bug nho nhỏ trong chương trình của bạn, chứ
không có ý định khuyên bạn dùng chúng để viết chương trình từ đầu. Sẽ mất rất nhiều thời gian
vô ích, mà thời gian đó để dành để chơi game còn sướng hơn.
Mọi thứ ổn cả rồi chứ? Còn gì thắc mắc không? Dùng Python cho S60 cũng hệt như Python
cho PC của bạn ấy mà. Chúng ta bắt đầu lập trình được rồi chứ?
3. HelloWorld, again :D
Phải, bây giờ chúng ta sẽ viết một chương trình HelloWorld khác. Tất nhiên, cái đoạn phía
trên mà các bạn đã viết print “HelloWorld!” cũng có thể coi là một HelloWorld được rồi, nhưng hãy
làm một cái HelloWorld hoàn toàn khác, một HelloWorld rất là S60!
import appuifw
appuifw.note(u“HelloWorld”, “info”)
Hãy Run thử, và bạn thấy gì? Thật tuyệt, một info box hiện ra trong vài giây, hiện lên một
thông báo “HelloWorld”! Một điều mà bạn không thể làm được ở trên PC của mình!
Tất nhiên, bạn có thể làm được điều này, nhưng không hiểu tại sao lại vậy. Chúng ta sẽ
nhìn sâu hơn một chút vào đoạn mã này.
# Chương trình HelloWorld cho S60
import appuifw
# Cái hàm này dùng để import thư viện appuifw trong API của S60, nhờ đó
# có thể sử dụng được những hàm của thư viện này, như là note, query...
# Chi tiết hơn về thư viện này sẽ được nói rõ hơn trong các bài kế tiếp
appuifw.note(u“HelloWorld”, “info”)
# Gọi hàm note của thư viện appuifw có tác dụng để hiển thị info
# Bài sau sẽ nói rõ hơn các sử dụng của hàm này
# Khi chạy chương trình, chữ HelloWorld sẽ được hiện ra
Như bạn thấy ở trên, để gọi hàm note của thư viện appuifw, bạn dùng toán tử dấu chấm
để truy cập appuifw.note, tuy nhiên, nếu bạn thường xuyên sử dụng các hàm của appuifw,
chương trình của bạn có thể được viết như sau
from appuifw import *
Khi đó thay vì phải viết appuifw.note(u“HelloWorld”, “info”), bạn chỉ cần viết như sau:
note(u“HelloWorld”, “info”)
sẽ tiếp kiệm được rất nhiều thời gian khi bạn sử dụng hàm này cũng như những hàm khác
của thư viện một cách thường xuyên.

tqcovtau
24-07-2012, 02:27 PM
PHỤ LỤC: BÍ MẬT CỦA PYTHON - SỬ DỤNG PYTHON THAY CHO MỘT CHIẾC MÁY
TÍNH KHOA HỌC
Bạn đã biết chưa? Bạn có thể sử dụng Python như một chiếc máy tính khi cần. Hãy
thử chạy Python, và trên cửa sổ Interactive Console (trên PC hoặc trên S60) và gõ
thử như sau
>>> 5 + 6
sau khi ấn Enter, số 11 hiện ra. Thật là tài tình, phải không? Thử gõ một cái gì đó
cao siêu xem nào
>>> 6 + 2*3
12
Kết quả hiện ra gần như tức thì, và đúng như mình mong muốn, phải không? Thử một số tính toán cao siêu khác nhé
>>> 15 + 3*sin(3.14)
Ối, lỗi mất rồi. Đó là vì ta dùng hàm sin mà không khai báo. Khắc phục rất dễ dàng.
Ta gõ một dòng lệnh như sau
>>> from math import *
Ai chăm chỉ học bài trên không ngủ gật hoặc làm việc riêng thì cũng biết dòng lệnh
trên để làm gì rồi. Đó là import từ thư viện math để có thể sử dụng được những
hàm của nó (Giống như trong bài học là sử dụng các hàm của thư viện appuifw)
Hãy gõ lại 15 + 3*sin(3.14), và kết quả mười lăm phẩy nhiêu nhiêu đó hiện lên
ngay lập tức.
Các toán tử được hỗ trợ trong Python rất nhiều, trong đó hay dùng nhất vẫn là +
(cộng), - (trừ), * (nhân), / (chia), % (mod-chia lấy phần dư), // (div-chia lấy phần
nguyên), ** (mũ, luỹ thừa)...
Chiếc máy tính khoa học Python của bạn còn tuyệt vời hơn nữa. Hẳn bạn cũng biết
trong các kiểu số của Python có kiểu số phức (complex). Và thế là bạn có một công
cụ tuyệt vời trong tay để tính số phức.
Làm sao để nhập số phức với a là phần thực và b là phần ảo? Rất đơn giản, bạn có
thể dùng complex(a,b) hoặc (a + bj). Hãy thử làm phép tính
>>> (1 + 25j)*(13+4j)
và ta được kết quả là (-87+329j)
Tuyệt chưa? Chưa hết đâu, Python còn một điều vô cùng cao siêu nữa, đó là khả
năng xử lý với số lớn. Hãy thử bật Calculator trên PC, hay bất kỳ một chương trình
máy tính nào cho S60 lên và tính toán những con số lớn (có vài chục chữ số chẳng
hạn). Nếu không Error!!! một phát vào mặt thì hẳn nó cũng hiện ra một số có dạng
kiểu như là 1.23456789E12 (E12 có thể coi như x 1012) Nhưng nếu bạn cũng làm
phép tính như vậy với Python? Kết quả sẽ được thể hiện ra đầy đủ đến từng chữ số!
Ngạc nhiên chưa? Nếu vẫn chưa ngạc nhiên, sao bạn không thử một ví dụ sau:
>>> 12345**123
Nếu như các máy tính khác thì chắc là tự dội nước vào các vi mạch để tự tử rồi.
Nhưng Python thì không. Chỉ cần đợi một khoảng thời gian ngắn, kết quả hiện ra,
và dù có rất nhiều chữ số, kết quả vẫn được hiện ra chính xác đến từng chữ số một.
Chính vì điều này khiến cho Python trở thành một chiếc máy tính không có đối thủ
trên PC, và S60 thì càng không.
Và còn rất nhiều, rất nhiều những khả năng tính toán siêu việt khác mà bạn sẽ có
cơ hội được khám phá sau này. Và chắc chắn, càng khám phá, bạn sẽ càng trở nên
thán phục cái ngôn ngữ lập trình bé hạt tiêu này.
Thật là tuyệt vời phải không nào? Thực sự là bạn đã sở hữu trong tay một chiếc
máy tính khoa học linh động và tuyệt vời trên PC cũng như trên S60 ngay khi bạn
cài Python, mặc dù bạn có biết lập trình hay không!

thienphuong
24-07-2012, 02:27 PM
LESSION SIX: USING APPUIFW
Thư viện appuifw là một thư viện chứa rất nhiều những thao tác quan trọng trong việc xử
lý giao diện của S60. Chúng ta sẽ được học sử dụng rất nhiều hàm của thư viện này, như note,
query, multi_query, popup_menu, selection_list, multi_selectionlist. Do vậy đây sẽ là một
bài học tương đối dài. Mong các bạn sẽ theo học tới cùng. Kết thúc bài học, các bạn sẽ có được
một kiến thức đáng kể để làm được rất nhiều những chương trình cao siêu trên chiếc điện thoại
của bạn.
Tất nhiên, để có thể sử dụng được hầu hết các hàm này, các bạn cần phải gõ một dòng
lệnh như sau để có thể sử dụng
import appuifw
Nhưng vì chúng ta sẽ sử dụng hàm này một cách thường xuyên, cho nên tốt nhất thay vì
viết như trên chúng ta viết
from appuifw import *
Mình sẽ không giải thích gì thêm tại sao lại phải viết như vậy nữa. Mình coi như tất cả các
bạn đều chăm chỉ và đều biết vì sao rồi, okay?
Chúng ta bắt đầu với hàm note
1. note()
Hàm note() dùng để hiển thị một thông báo lên màn hình. Thông báo này sẽ biến mất sau
khi người dùng nhấn một phím bất kỳ. Hoặc nếu không thông báo cũng tự động biến mất sau vài
giây nếu không có phím nào được nhấn.
Cú pháp để sử dụng hàm như sau:
note(<chuỗi thông báo>, <kiểu thông báo>)
* Chuỗi thông báo
Chuỗi thông báo là nội dung chính của thông báo, tất nhiên. Và chuỗi thông báo là kiểu
chuỗi, do đó phải được đặt trong dấu “ ” hoặc ' '. Tuy nhiên, đối với điện thoại di động S60, nếu
bạn đưa chuỗi vào kiểu đó, chương trình không lỗi nhưng... không có gì được hiện ra cả. Nguyên
nhân là vì Symbian chỉ đọc được những ký tự đưa vào là kiểu Unicode. Vì vậy chuỗi của hàm note
cũng như mọi hàm khác sau này bạn sẽ học, nếu muốn nó hiển thị lên màn hình thì phải đưa vào
chuỗi dạng Unicode bằng cách thêm ký tự u vào trước chuỗi. Chẳng hạn như:
u”Xin chào”, u”Con vịt”, u”Unicode String”...
Bên cạnh đó chuỗi thông báo vẫn sử dụng các ký hiệu khác như \n, \t... như một chuỗi
thông thường.
* Kiểu thông báo
Có các kiểu thông báo như sau:
a) “info”
Hiện thị lên một thông báo nào đó. Thông báo như thế này thường được hiển thị với chữ [i]
bên cạnh. Ví dụ :
appuifw.note(u“Day la Python S60.”, “info”)
Các bạn thử gõ vào để xem nó như thế nào nhé!
b) “error”
Được dùng khi cần hiển thị một thông báo lỗi. Điện thoại của bạn sẽ kêu “tít” một cái rất
khó chịu cùng với biểu tượng gạch chéo hay đỏ lòm, tùy máy. Ví dụ bạn code như sau:
appuifw.note(u“Khong thuc hien duoc thao tac!”, “error”)
c) “conf”
Được dùng để hiển thị một thông báo khi công việc gì đó đã hoàn tất. Thông báo của bạn
sẽ đi kèm với một biếu tượng chữ V.
appuifw.note(u“Da thuc hien xong.”, “conf”)
Trong tất cả các câu lệnh trên, nếu bạn đã sử dụng from appuifw import * thì chỉ cần viết
note(...) là đủ, không cần thiết phải appuifw. nữa. Tuy nhiên nếu bạn chi import appuifw thì
bạn vẫn cần phải viết đầy đủ như trên. (Nếu không có import gì hết thì sao? Đơn giản chương
trình của bạn sẽ lỗi và không đọc được)
Tiếp theo là hàm query()
2. query()
Hàm query() cũng tương tự hàm note(), hiển thị một thông báo lên màn hình. Tuy nhiên,
thông báo này sẽ không tự nhiên biến mất khi không có phím nào được ấn. Thông thường thông
báo này sẽ hiển thị cho đến khi người dùng nhập vào một cái gì đó rồi ấn phím chấp nhận. Giá trị
người dùng nhập vào sẽ được gửi vào một biến mà người dùng đưa vào.
Cú pháp hàm này như sau:
<biến> = query(<chuỗi thông báo>, <kiểu thông báo>)
Về chuỗi thông báo thì cũng như hàm note(), phải để ở dạng Unicode bằng cách thêm chữ
u vào trước chuỗi. Mình xin nói luôn về các kiểu thông báo
a) “query”
Chương trình sẽ hiển thị ra một thông báo đòi hỏi người dùng trả lời OK hoặc Cancel. (Ấn
phím mềm phải để OK, phím mềm trái để Cancel). Ví dụ như sau
answer = appuifw.query(u“Ban muon an trai cay khong?”, “query”)
Giá trị trả về sẽ là True nếu người dùng ấn OK, False nếu người dùng ấn Cancel. Để minh
họa rõ hơn, bạn có thể gõ tiếp đoạn mã như sau
if answer == True:
appuifw.note(u“Tuyet, trai cay rat tot cho suc khoe!”, “conf”)
else:
appuifw.note(u“Ban nen an nhieu trai cay vao.”, “info”)
Khi chạy, chương trình sẽ hiện ra câu hỏi “Ban muon an trai cay khong?”. Nếu chọn OK,
chương trình sẽ hiện ra thông báo “Tuyet, trai cay rat tot cho suc khoe” còn nếu người dùng chọn
Cancel, thông báo “Ban nen an nhieu trai cay vao.” sẽ hiện ra.

lesen.dv
24-07-2012, 02:27 PM
b) “text”
Chương trình sẽ dừng lại và hiện ra thông báo đợi bạn nhập vào một chuỗi và ấn OK. Sau
đó chuỗi bạn nhập vào sẽ được lưu vào biến bạn đưa ra.
name = appuifw.query(u“Ten ban la gi?”, “text”)
Bạn có thể gõ thêm dòng lệnh sau: (chỉ mang tính chất minh họa)
appuifw.note(u“Xin chao ban ” + name, “info”)
c) “number”
Tương tự như trên, nhưng bạn chỉ có thể nhập vào một số. Ví dụ
age = appuifw.query(u“Ban bao nhieu tuoi?”, “number”)
Minh họa nhé
appuifw.note(u“O! Tuc la ban sinh nam ” + str(2007 - age) + u“ dung khong?”,
“info”)
Mình thử đánh vào 22, và kết quả là năm 1985 :D
d) “date” và “time”
Cũng hệt như trên, chương trình cho phép mình nhập vào ngày tháng năm (“date”) hoặc
giờ phút (“time”). Các bạn tự tìm hiểu thêm nhé.
Nếu bạn muốn cùng một lúc nhập vào nhiều giá trị, hàm multi_query() tiếp theo sẽ làm
được điều đó.
3. multi_query()
Cũng giống như hàm query(), hàm này cho phép nhập nhiều giá trị cùng lúc, và gán vào
nhiều biến cùng lúc.
Cú pháp hàm này như sau:
<biến1>,<biến2>,...<biếnn> = multi_query(<chuỗi 1>,<chuỗi 2>,...<chuỗi n>)
Mình làm một ví dụ đơn giản nhé
ho, tendem, ten = appuifw.multiquery(u“Ho:”, u“Ten dem:”, u“Ten:”)
appuifw.note(u“Ten day du cua ban la ” + ho + tendem + ten, “info”)
Cũng đơn giản và dễ hiểu thôi, phải không?
4. popup_menu()
Đây là một hàm để gọi ra một cửa sổ popup menu, hiện ra các lựa chọn (và có thể cả câu
hỏi) Giá trị trả về của người dùng sẽ lưu vào một biến số.
Để có thể làm được điều này, trước hết, bạn cần tạo ra một mảng chứa các câu lựa chọn.
Để có thể làm được điều này, các bạn làm như sau: <xem thêm mục 2, bài 4, phần for... in...
trong bài Structure Programming>
<tên mảng> = [<phần tử 1>,<phần tử 2>,...<phần tử n>]
VD: cacluachon = [u”Con ga”, u”Con vit”, u”Con ngan”]
Sau khi đã tạo ra được một mảng các phần tử, ta đã có thể cho hiển thị một popup menu
dùng hàm popup_menu(). Cấu trúc của hàm như sau:
<biến> = popup_menu(<mảng ds lựa chọn>, <tiêu đề (nếu có)>)
Sử dụng luôn ví dụ về tạo mảng lựa chọn ở trên, mình có một ví dụ sau:
from appuifw import *
giacam = [u”Con ga”, u”Con vit”, u”Con ngan”]
luachon = popup_menu(giacam, u”Ban thich an thit con nao nhat?”)
if luachon == 0 #Con ga
note(u”Ga dang co dich cum H5N1 day!”, “info”)
elif luachon == 1 #Con vit
note(u”An vit cung ngon, nhung het mua vit roi.”, “info”)
else #Con ngan
note(u”OK! Chung ta di an ngan nhe!”, “info”)
Ví dụ trên có lẽ hơi bạo lực đối với những người yêu thích gia cầm. Nhưng ở trên chỉ là ví
dụ thôi đấy, còn hiện tại gia cầm nói chung đang bị H5N1, cho nên tốt nhất là không ăn.
Tốt lắm, nếu các bạn đã làm thành thạo cái này, thì cái tiếp theo sẽ chẳng là gì cả.
5. selection_list()
Hàm này, nói một cách nào đó, thì giống hệt hàm popup_menu() ở trên, tuy nhiên, thay vì
nó ”pop” một phát vào giữa mặt một cách rất bất lịch sự, thì hàm selection_list() ở đây lịch sự hơn
rất nhiều. Nó hiển thị một danh sách cho mình có quyền lựa chọn một trong những thứ được liệt
kê ra ở đó. Cách sử dụng không có gì khác cả. Đầu tiên, bạn cũng phải tạo ra một list là một
mảng chứa những phần tử để lựa chọn. Sau đó bạn gọi các lựa chọn đó ra bằng hàm
selection_list() với cú pháp như sau:
<biến> = selection_list(<mảng ds lựa chọn>, search_field=<0 hoặc 1>)
Có thể nói là hoàn toàn giống hệt popup_menu(), ngoại trừ 2 điểm khác biệt nho nhỏ. Một
là không có tiêu đề, vì danh sách lựa chọn này hiển thị hết màn hình, nên không có chỗ cho cái
câu hỏi nữa (Hãy nhớ hỏi han cẩn thận trước khi hiển thị cái selectionlist này, vì đến lúc đó là
không hỏi han gì được nữa đâu.) Hai là cái search_field. Rất đơn giản, nếu đặt cái này bằng 1, khi
đó phía dưới list của bạn có một ô textbox để bạn type vào, giúp bạn search một cách dễ dàng
hơn. (Tương tự cái Contact vậy) Còn nếu đặt bằng 0 thì sẽ không xuất hiện cái panel đấy.
Phần này không phải là quá khó khăn, cho nên mình sẽ không đưa ra ví dụ. Sao bạn không
thử làm 1 ví dụ nho nhỏ tương đương cái popup_menu() ở trên nhỉ?
6. multi_selection_list()
Hàm multi_selection_list() xét một cách cơ bản là giống hàm selection_list(), duy chỉ có
một điểm khác biệt là hàm này cho phép người dùng chọn nhiều lựa chọn hơn là chỉ một lựa chọn
như selection_list(). Hàm trả về giá trị là một mảng chứa các index của các lựa chọn mà bạn đã
chọn. Sau đó bạn chỉ việc thao tác với hàm giá trị trả về này thôi.

khanhgiaco
24-07-2012, 02:28 PM
Cấu trúc của hàm này, không khác mấy so với selection_list(), như sau:
<biến mảng> = multi_selection_list(<mảng ds lựa chọn>, style=<”checkbox” hoặc
“checkmark”>, search_field=<0 hoặc 1>)
Cũng giống selection_list đúng không? Duy chỉ có cái style là không hiểu từ đâu sinh ra mà
thôi. Không phải quá phức tạp, đây là cái để cho phép người dùng có thể chọn được nhiều phần
tử. style có thể được gán một trong hai giá trị:
 style=”checkbox”: Cho phép người dùng chọn nhiều phần tử bằng phím OK, sau khi
chọn được các phần tử theo ý muốn thì nhấn phím mềm bên trái để kết thúc. Kiểu
chọn nhiều phần tử này tương tự với lúc chọn người trong danh bạ để gửi tin nhắn
cho nhiều người.
 style=”checkmark”: Cho phép người dùng chọn nhiều phần tử bằng phím hình cây
bút, sau khi chọn được các phần tử theo ý muốn có thể nhấn phím OK hoặc phím
mềm bên trái để kết thúc. Kiểu chọn này tương tự với kiểu chọn nhiều lá thư một
lúc ở trong Inbox của Messaging.
Mình sẽ làm một cái ví dụ tương tự như trên để các bạn hình dung rõ hơn:
from appuifw import *
giacam = [u”Con ga”, u”Con vit”, u”Con ngan”]
luachon = multi_selection_list(giacam, style=”checkbox”, search_field=1)
for i in luachon:
note(u”Ban thich an con “ + giacam[luachon], “info”)
Bạn hãy về thử chạy và nghiên cứu nhé. Nếu bạn viết đúng như chương trình ở trên, thì
trên màn hình sẽ hiền thị những thứ gia cầm mà bạn thích ăn. :P Nghe ngon nhỉ?
Hãy thử thay style=”checkbox” ở trên thành style=”checkmark” rồi so sánh giữa hai cái để
chọn ra cái nào thích hợp nhất cho chương trình của bạn.
OK! Thế là cuối cùng, sau một bài dài và vất vả, cuối cùng chúng ta cũng đã chiến đấu
xong cái hàm appuifw. Chúng ta còn rất nhiều hàm ở phía trước, nhưng tạm thời mình chưa cần
quan tâm đến. Chúng ta sẽ nghiên cứu dần dần hết những hàm thông dụng. Trước mắt chúng ta
sẽ cùng nhay quay về với ngôn ngữ lập trình Python, học những cái cao siêu hơn nữa, để sau đó
có thể làm được những cái cao siêu hơn nữa. Khi đấy chúng ta sẽ quay lại với cái di động yêu quý
của mình, nhé!

dalatbeco
24-07-2012, 02:28 PM
Bài viết hay nhưng em chả biết gì về lập trình cả, đọc xong lỗ tai nghe lùng bùng luôn!

tandaiphat
24-07-2012, 02:28 PM
không biết về lập trình mà khen hay .... thua ku heo mập !!!

hechang
24-07-2012, 02:28 PM
nó cũng là chương trình hay cho những người muốn hoặc mới học IT tuy nhiên soft này cũng chỉ giới hạn lập trình những ứng dụng hoặc trò chơi nhỏ trên mobi nêu muốn viết những chương trình lớn ứng dụng cho mobi hoặc máy tính thì đã có máy tính đảm nhiệm vì sức mạnh và sự đa tiện dụng của nó cổm ơn theogai nhé

hechang
24-07-2012, 02:28 PM
Tài liệu này tớ đang biên soạn, xong rồi lâu quá rồi bận, cũng quên luôn. :D Tự nhiên bạn theogai post lên tớ mới nhớ ra. Nhất định sau đợt thi này tớ sẽ viết tiếp.

Tài liệu ở trên bạn cravo tìm trên trang web của tớ, thường là không được cập nhật sau những thay đổi, và bên cạnh đó bạn ý cũng không cóp đầy đủ nữa cho nên còn thiếu rất nhiều. Để down bản full 16 phút, à nhầm, ý mình là bản PDF Full thì các bạn down cái link ở dưới nhé.

Download original PDF (http://www.4shared.com/file/39995039/5dde8a9/py_s60_4dummies.html)
(http://www.websamba.com/tntonly/storage/py_s60_4dummies.pdf)