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

Thảo luận trong 'NGAGE: THÔNG TIN PHẦN MỀM' bắt đầu bởi Nguyên Dũng, 1 Tháng ba 2008.

  1. Nguyên Dũng Ex-Mod

    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ứ :) .

    [​IMG]

    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
    dinhthuy, superthien, HuyTim and 11 others like this.
  2. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    "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
    Mã:
    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!
    Mã:
    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
    Mã:
    appuifw.note(u“HelloWorld”, “info”)
    , bạn chỉ cần viết như sau:
    Mã:
    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.
  3. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    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
    Mã:
    >>> 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
    Mã:
    >>> 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é
    Mã:
    >>> 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
    Mã:
    >>> 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
    Mã:
    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
    Mã:
    >>> (1 + 25j)*(13+4j)
    và ta được kết quả là
    Mã:
    (-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:
    Mã:
    >>> 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!
    xuongrongdat, tungtungmap and HuyTim like this.
  4. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    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
    Mã:
    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
    Mã:
    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:
    Mã:
    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ữ
    bên cạnh. Ví dụ :
    Mã:
    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:
    Mã:
    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.
    Mã:
    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:
    Mã:
    <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
    Mã:
    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
    Mã:
    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.
  5. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    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.
    Mã:
    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)
    Mã:
    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ụ
    Mã:
    age = appuifw.query(u“Ban bao nhieu tuoi?”, “number”)
    Minh họa nhé
    Mã:
    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:
    Mã:
    <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é
    Mã:
    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:
    Mã:
    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:
    Mã:
    <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:
    Mã:
    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:
    Mã:
    <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.
  6. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    Cấu trúc của hàm này, không khác mấy so với selection_list(), như sau:
    Mã:
    <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:
    Mã:
    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é!
  7. fatpig

    fatpig Thành viên

    Bài viết:
    386
    Được Like:
    60
    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!
  8. Nguyên Dũng

    Nguyên Dũng Ex-Mod

    Bài viết:
    539
    Được Like:
    1,486
    không biết về lập trình mà khen hay .... thua ku heo mập !!!
  9. dinhthuy

    dinhthuy Thành viên

    Bài viết:
    218
    Được Like:
    142
    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é
  10. TnTonly

    TnTonly Thành viên

    Bài viết:
    73
    Được Like:
    113
    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