• Hiện tại trang web đang trong quá hình chuyển đổi và tái cấu trúc lại chuyên mục nên có thể một vài chức năng chưa hoàn thiện, một số bài viết và chuyên mục sẽ thay đổi. Nếu sự thay đổi này làm bạn phiền lòng, mong bạn thông cảm. Chúng tôi luôn hoan nghênh mọi ý kiến đóng góp để chúng tôi hoàn thiện và phát triển. Cảm ơn

Lập trình cho Smart Device với .NET Framework (2)!!!

ichte

Well-Known Member
IchTe chào lại mọi người nhé:
Vào năm học mới rồi, hôm nay post bài viết dài chút, tuần sau không biết có thời gian để mà vọc .net không!!!

Từ hôm dùng con O2 XDA IIs này, cứ thắc mắc mãi sao người ta gọi nó là Smart Device nếu thế PC của tớ là Super Smart Devicce rồi còn gì nữa. Thực ra cái Smart Device của tớ, tớ thấy nó chẳng thông minh tí nào, NGU!!!. Theo tớ, những cái mà ta vẫn xếp nó vào dạng Smart Device phải gọi tên lại cho nó: Chúng nó là những NÔ LỆ của những người thông minh (là bạn đấy, bạn bảo nó làm gì - lập trình - thì nó làm theo đó, bảo nó làm việc ngu thì nó ngu bảo nó làm việc thông minh thì nó thông minh, chứ bản thân nó là CỤC GẠCH).

Như mình nói ở bài trước, mình mới dùng PPC được hơn một tuần lên những gì tớ Post đơn giản lắm (vì giang hồ cứ nghe thấy lập trình là thấy hóc - khó hiểu) , rất mong cao thủ phản hồi chỉ giáo để học hỏi thêm, còn IchTe thì cứ học được cái gì là mình Post cái đấy!!!Mình viết tiếp bài lập trình hôm trước nhé:
Bạn có muốn biết mình có khả năng lập trình cho PPC không?
Bài hướng dẫn hôm trước dễ quá, ai cũng làm được mà, tuy nhiên để theo đuổi lập trình PPC theo mình bạn cần một số thứ sau:

  • Biết chút ít về lập trình trong PC: bạn nên tìm hiểu sơ về một ngôn ngữ lập trình (hướng đối tượng càng tốt - lên đọc và C++ hoặc C#) để biết thế nào là biến, là hàm, là lớp thế là OK, cũng chẳng cần nghiền sâu làm gì cả, trừ khi định sống bằng nghề Programming!!!
  • Có sức khỏe (nghiện Programming rồi lọ mọ 1 -2 giờ sáng là chuyện bình thường).
  • Có đam mê (hầu như bạn không kiếm được Money khi bạn bắt đầu lập trình đâu).
  • Có ý tưởng và hiểu biết những thứ linh tinh (muốn con PPC của mình làm được những gì ... hãy gạch đầu dòng ra, mỗi cái gạch đấy là một ý tưởng đấy, hoặc là quan sát xem thế giới xung quanh có gì mà liên hệ được với PPC khống, ví dụ: Đang cầm con O2 XDA hoành tráng đi với bồ, nàng lại rót vào tai "Máy anh to thế mà có tính được ngày em rụng đâu ?" - thế là có ý tưởng viết phần mềm tính ngày người yêu rụng rồi còn gì, tiếp theo lại phải hiểu cái ba chấm .... linh tinh đấy rồi :)).
Nếu có được những điều trên sao bạn không thử chọc ngoáy PPC của mình đi!

Bài lập trình số 2

Ở bài này, bạn sẽ học cách lấy thông tin về con PPC của bạn nha (ví dụ xem nó đạng chạy hệ điều hành nào...), học cách tạo các menu lệnh, tạo và gọi một form mới và một số cái khác rất cơ bản liên về ngôn ngữ lập trình. Bạn sẽ viết một chương trình như sau (gọi là chương trình PDAViet)

bai2h7ca1.jpg
bai2h8sb5.jpg
bai2h9da5.jpg

Chương trình PDAViet http://cid-b062c88f8d234f53.skydrive.live.com/self.aspx/Public/PADViet.exe
Mã nguồn PDAViet http://cid-b062c88f8d234f53.skydrive.live.com/self.aspx/Public/PADViet.rar

Lý thuyết của bài 2:
1) Sử dụng hàm SystemParametersInfo Function
Do thằng SystemParametersInfo Function là một API (không cần biết API là gì) của Windows, nó lằm trong các file thư viện liên kết động của hệ thống ở đây là file coredll.dll lên để gọi được thằng này đầu tiên bạn phải có đoạn mã sau nạp hàm vào chương trình của bạn:
//----------------------------
[DllImport("coredll.dll")]
privatestaticexternvoid SystemParametersInfo(uint whichParam, uint size, StringBuilder platformType, uint notUsed);
//----------------------------
Trong đó [DllImport("coredll.dll")] là bảo .netframe load và sử dụng các hàm trong file hệ thống coredll.dll của Windows. Ở đây sử dụng hàm SystemParamersInfo.
Khai báo thể rồi sau này vô tư gọi nó ra.Hàm này chuyên lấy (cũng như thiết lập) thông tin về hệ thống. Có các tham số đó là:
whichParam:
Chỉ ra định lấy hay thiết lập thông tin nào của hệ điều hành. Có nhiều thứ lắm ở đây bạn sẽ lấy thông tin hệ thống nếu bạn cho nó giá trị là 257. Bạn định nghĩa cái này bằng tên cho dễ nhớ nha, thêm dòng mã sau:
privateconstuint SPI_GETPLATFORMTYPE = 257;
// Con nhiều thông số khác nữa ban tham khảo chi tiết ở file đính kèm này nha: // Số 257 xem trong file winuser.h trong thư mục C:\Program Files\Windows Mobile 5.0 SDK R2\
Lúc nào cần gọi hàm này để lấy thông tin về máy thì viết đoạn mã sau:
//----------------------------
StringBuilder platformTypeString = newStringBuilder(255); //Cái này tạo một chỗ để chứa chữ dài 255 ký tự.
SystemParametersInfo(SPI_GETPLATFORMTYPE, (uint)platformTypeString.Capacity,platformTypeString, 0);
//----------------------------
//(uint)platformTypeString.Capacity là cho nó biết platformTypeString mà sắp tới nó điền thông tin vào đó có đủ chỗ cho 255 ký tự. Lúc này xâu ký tự platformTypeString chứa thông tin về máy rồi đó. Nếu xâu này chứa "SmartPhone" thì thiết bị của bạn là SmartPhone (kiểm tra bằng lệnh tìm vị trí xâu ký tự đó SystemTypeString.IndexOf("SmartPhone") >= 0) , nếu xâu này chứa "PocketPC" thì thiết bị của bạn là Pocket PC, ngoài ra trên máy của bạn tồn tại file \Windows\Phone.dll thì thiết bị của bạn là điện thoại (PPC chưa chắc là phone mà) kiểm tra bằng hàm:
//----------------------------
File.Exists(@"\Windows\Phone.dll"); // nếu trả về True là điện thoại
//----------------------------
Để lấy phiên bản của hệ điều hành dùng lệnh: Environment.OSVersion.Version
Hoặc convert nó thẳng ra string dùng để sau này hiện thị lên màn bằng câu lệnh: Environment.OSVersion.Version.ToString();
//----------------------------
Xem trong đoạn mã tải về nha.


2) Thực hành bài lập trình số 2(Hướng dẫn kỹ chút, bài sau nếu có Post thì coi như biết rồi)
Bạn hãy tạo ra một dự án lập trình cho PPC mới đặt tên là PADViet (xem lại bài 1).
Trong Solution Explore (ấn Ctrl +W, bỏ hết tay ra rồi lại nhấn S). Tìm đến Form1.CS đổi tên thành VoCa.CS.
Phải chuột vào VoCa.CS[Design], đổi mục Text từ Form1 thành PDA Programming (Pro không)!!!
Nhìn vào màn hình làm việc VoCa.CS[Design], phải chuột vào mainMenu1 và chọn Properties; Trong mục (Name) hãy đổi tên mainMenu1 thành menuPDAViet;
Đây là menu sẽ xuất hiện ở góc của điện thoại đấy. Giờ ta soạn thảo menu này nhé: Khi bạn Click chuột vào menuPAD Việt, nhìn lên trên có dòng Type Here, hãy bấm chuột vào đó và gõ vào dòng chữ Chọc vào đây. Rồi!!!
bai2h1tk0.jpg



Lên dòng phía trên tiếp tục thay Type Here bằng Thông tin hệ thống. Enter.
Tiếp tục thêm các mục menu : Sử dụng control1, Sử dụng control2, Sử dụng control3 (Cái này làm sẵn để dùng cho bài lập trình 3, 4...).
Đặt lại tiên các mục menu cho dễ nhớ (mặc định VS2008) sinh ra tên các menu vừa rồi của bạn là menuItem1, menuItem2...., để dễ nhớ hơn hãy vào Properties của nó (vào Properties của cái gì cứ phải chuột vào nó là thấy sau này không nói đến phải chuột nữa). Thay (Name) cho nó: (Tớ đặt cho các mục tương ứng là menuSystemInfo, menuControl1, menuControl2, menuControl3).


bai2h4pn4.jpg

Thêm môt menu nữa, Click vào góc phải (dưới) của Form PDA Programming (Mỗi cửa sổ mình tạo ra để làm việc gọi là Form nhé), Gõ thêm menu "Đóng em lại" và đặt tên em là menuExit.
bai2h2xe1.jpg

Xong rồi, nháy hai phát vào Đóng em lại. Để VS2008 tạo một hàm khi câm bút thọc vào nút này, thọc vào đây là thoát chương trình. Bạn hay thêm lệnh Close(); vào trong hàm
menuExit_Click do VS2008 đẻ ra nhé (bạn cũng thử cho một thông điệp hiện lên trước khi thoát xem). Nó thành thế này:

//----------------------------
privatevoid menuExit_Click(object sender, EventArgs e)
{
MessageBox.Show("Có thấy khoái không?", "Hỏi tí trước khi thoát", MessageBoxButtons.YesNo,MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
Close();
}
//----------------------------
// Nếu sốt ruột thì dịch và chạy thử xem. Còn không thì tiếp tục viết.


Bây giờ bạn sẽ tạo một Form mới để hiện thị thông tin của máy bạn:
Quay trở về VoCa.CS[Design], bạn nháy một phát vào Chọc vào đây , rồi nháy hai phát vào Thông tin hệ thống thế là có hàm menuSystemInfo_Click, hàm này để đó tí quay lại viết code cho nó.
Trên menu của VS2008, chọn Project, chọn Add Windows Form....
Trọng mục Name của hộp thoại hiện ra, đổi Form1.CS thành Thongtinhethong.CS rồi Click vào Add.
Lại vào Properties của Thongtinhethong.CS đổi mục Text có chữ Thongtinhethong thành Thông tin
Giờ trình bày cửa sổ Thông tin:
a) Gọi ToolBox (Ctrl + Alt +X) kéo Label vào form Thông tin, đổi Text của label1 thành Phiên bản hệ điều hành. Chỉnh nó cho vừa mắt.
b) Tiếp tục kéo Label nữa đặt phía dưới Phiên bản hệ điều hành. Đổi text của thằng này thành ... (ba chấm), và (Name) thành OSversion.
c) Kéo Label tiếp theo đổi text thành Loại thiết bị.
d) Kéo Lable nữa, đổi text thành ...., và (Name) thành nameDevice.
Trình bày dạng như hình này nha:
bai2h3lw5.jpg



Giờ quay lại VoCa.CS[Design]. (chọn ở tab phía trên í).
Nháy hai phát vào menu: Thông tin hệ thống để vào hàm xử lý menu này.
Viết đoạn mã để gọi hộp thoại Thông tin ra. Thêm hai dòng mã để nó thành như sau
//----------------------------
privatevoid menuSystemInfo_Click(object sender, EventArgs e)
{
Thongtinhethong thongtin = newThongtinhethong();
thongtin.ShowDialog();
}
//----------------------------
Đến đây có thể dịch và chạy thử gọi hộp thoại đó ra như thế nào. Tất nhiên thông tin thì chưa biết gì!!!!
Chú ý: Nếu bạn làm được môt form nào đó rồi nếu form đó có tên là FormName thỉ để chạy form này bạn dùng cấu trúc lệnh:
FormName hopthoai = new FormName();
hopthoai.ShowDialog();


Bây giờ đến phần lấy thông tin của máy đây, cũng lằng nhằng ra phết:
Đầu tiên bạn tạo ra một lớp để chuyên lấy thông tin hệ thông: lớp đó có tên là NoiVeEm. Khai báo lớp đó như sau:
//----------------------------
classNoiVeEm
{
}
//----------------------------


 
Chỉnh sửa cuối:

ichte

Well-Known Member
Lập trình cho Smart Device với .NET Framework (2)!!! - Tiếp

Vì coi bạn cũng mới cóng như tớ, nên dành chút giải thích lý thuyết lập trình về lớp, hàm, dữ liệu nhé
Nhớ là mỗi dòng lệnh viết bằng C# kết thúc nó bằng dấu chấm phẩy (;). Một cụm đoạn mã nào đó thường gom vào giữa hai dấu { ...... }

Phát thứ nhất

Biến: là biến số (như toán cấp II, cấp III í, mở sách toán ra mà đọc). Lúc nó nhận giá trị này, lúc nó nhận giá trị kia. Tuy nhiên, trong lập trình cần biết thêm: biến là cái tên, cái tên này nó chỉ vào chỗ nào đó trong memory của máy, nó giữ chỗ trong memory để mình nhớ cái cần nhớ, lúc nào hết cần nhớ thì bảo với Soft của bạn thả mấy cái chỗ vừa chiếm trong memory ra để thằng khác dùng, việc này gọi là giải phóng bộ nhớ.

(Bộ nhớ là tài nguyên quan trọng của hệ thống, không sử dụng thì phải giải phóng ngay, nếu không giải phóng kịp thời sẽ nhanh chóng cạn kiệt tài nguyên thiên nhiên, và thế là không còn không khí để thở, và thế là Soft của bạn bị die, năng hơn thì làm Soft thằng khác die theo - Hình như bác Bill Gate làm cho mấy thằng lập trình nghiệp dư mới như mình yên tâm hơn khi bác thông báo là .netframe của bác í có cơ chế tự động dọn rác rưởi kiểu như là quyên giải phóng bộ nhớ,nên nếu bạn lỡ quyên cũng không sao - lập trình .net hay chưa :), chả phải làm gì, ăn xong thằng khác đổ vỏ).

Cái cần nhớ là những dữ liệu. Ví dụ bạn cần lưu vào bộ nhớ để sau này dùng số huy chương vàng mà Olympic Việt nam dành được hôm nay; thì đầu tiên phải phải đặt tên, dành chỗ đề ghi thông tin này nha viết mã như sau: int32 sohuychuong - cái này gọi là khai báo bién; sohuychuong là tên của biến đấy. Còn cái int32 gọi là kiểu dữ liệu, int32 cho biết đấy là số nguyên (sau này đừng có mà bảo máy hôm này Việt Nam vừa dành 0.5 huy chương, 32 là 32 bít, nghĩa là bạn mỗi số nguyên chiếm 4byte bộ nhớ, nếu máy bạn có 128MB bộ nhớ bạn lại bảo nó dành chỗ cho anh ghi 40.000.000 số nguyên nhé, thì máy bạn nó ngoan ngoãn vâng lời ngay vì nó ngu lắm, nhưng lúc sau soft bạn die luôn - không đủ memory), như vậy kiểu dữ liệu quy định kích cỡ, tính chất, đặc tính... của dữ liệu rồi (không nhập nhằng được đâu). Lúc nào cần sử dụng biến, ví dụ VTC thông báo Việt Nam vừa dành 30 huy chương vàng, bạn vội vã bật Soft của bạn lên và bảo với nó sohuychuong là 30. Bạn làm điều đó bằng cách viết mã sohuychuong = 30; việc làm này gọi là gán giá trị cho biến, tiếp theo Soft của bản xử lý tính một hồi rồi lên thông báo: "Vậy là hôm nay Việt Nam dành được hơn hôm qua 15 huy chương vàng ông chủ ạ, ông lại tốn thêm 150,000 đô tài trợ rồi đấy". Việc làm sao nó tính ra được hơn hôm qua 15 huy chương và lượng tiền tài trợ đấy là sử dụng các phép toán cộng trừ nhân chia số học (+-*/) ,rồi đạo hàm, tích phân, khai căn, logarit....(nhiều lắm, tìm hiểu sau - .net có hết - giờ chỉ cần biết là có phép cộng (huychuonghomnay = huychuongBuoiSang + huychuongBuoiChieu), tương tự phép trừ (-), nhân (*) và chia (/) còn dấu bằng là gán).

Tóm lại để khai báo một biến bạn dùng cú pháp đơn giản này trước: [kiểu dữ liệu] [tên biến];

Kiểu dữ liệu có một số thứ, hãy quan tâm mấy cái này: int32, int, int16, int64 (là số nguyên), floatdouble là số thực, string là kiểu xâu ký tự (nó là một lớp của .net, gọi tên theo khái niệm cũ), char là kiểu ký tự (một ký tự thôi í), bool là kiểu logic đúng/sai (True/False), ngoài ra còn có kiểu dữ liệu do bạn tự định nghĩa ra còn những cái vừa rồi và nguyên gốc.

Phát thứ hai

Giờ thì nói đến hàm, hàm là tập hợp nhiều lệnh để giải quyết một việc nào đó. Mình cứ dùng cấu trúc đơn giản nhất trước. Ví dụ bạn viết hàm là dùng một hàm để đoán ngày hôm đó đề về bao nhiêu, căn cứ vào mấy thông số: ngày_tháng_năm_đoán_đề, nhiệt_độ_dự_báo_thời_tiết_hà_nội :)
Bạn viết mã cho cái hàm đó như sau:
//-----------------------------------------------------
int DeRaDeMaO(DateTime ngaydoan, int nhietdo)
{
//Khai báo các biến đề làm nháp, biến này gọi là biến cục bộ (nội bộ) gì đó. Hàm này làm việc xong, biến cũng tiêu luôn. Ví dụ khai báo biến
int sode;
//Chỗ này bạn viết một đống lệnh để dự đoán đề, kể cả gọi hàm khác ..... để quyết định đề về bao nhiêu như:
sode = nhietdo + PhanTich(ngaydoan);
// PhanTich là một hàm khác mà bạn viết trước rồi đó, Nếu tính được đề rồi thì dùng lệnh
return sode;
//nghĩa là trả về giá trị cho hàm, mỗi hàm phải có một kiểu dữ liệu, ở đây là kiểu int.
//(đặc biệt nếu hàm làm gì đó mà không cần trả về kiểu dữ liệu thì dùng kiểu void)
}
//-----------------------------------------------------

DeRaDeMaO
là tên hàm, sau này ở chỗ nào cần gọi hàm này ra để tính chỉ cần viết lại tên hàm, và truyền tham số ngày tháng, và nhiệt độ cho nó. Ví dụ
sodehomnay = DeRaDeMaO(DateTime.Now, 42);
DateTime.Now là lấy ngày tháng hôm nay từ hệ thống của bạn (thư viện của .net).

Phát thứ 3

Tớ nói về lớp (classs), tất nhiên thật đơn giản (từ từ tìm hiểu dần, chẳng thằng nào đọc cái mà hiểu class là cái gì ngay đâu - để thực sự hiểu về class chắc phải đọc và thực hành đến vài chục trang tài liệu), đây là cốt lõi của lập trình hướng đối tượng đấy (Không có nó thì trên đời không có C++, C#). Lớp là một khái niệm trừu tượng (very trừu tượng), lớp nó mô tả cài gì đó chung chung, mô tả một giai cấp, tầng lớp, mô tả một loại đồ vật (chứ không phải một vật cụ thể),nói chung là về ... về...cái chung chung...
Ví dụ một lớp mô tả các bà vợ nhé, bạn viết mã cho lớp đó như sau:
class CacBaVo
{
public int tuoi;
public string tenbavo;
public float vong1;
public float vong2;
public float vong3;
public bool DeBiThangHangXomDe() //Kiểm tra vui thôi
{
//........viết lệnh gì đấy
}

public float DiemGoiCam() //10 điểm là cao nhất chẳng hạn.
{
//........viết lệnh gì đấy
}
static int Tongsobavo;
}
Đấy, lớp là thế đấy. Bạn thấy lớp đó có phải là vợ bạn, là vợ tui đâu và cũng chẳng phải vợ thằng hàng xóm..., nó mô tả chung chung (về một giai cấp) là các bà vợ đấy chứ. Lớp thì có tên lớp rồi CacBaVo.
Những cái gì mà lớp làm được và diễn tả đều nằm trong hai dấu {} của lớp.
Nhìn vào trong lớp ta thây có các biến: tuoi, vong1, vong2, vong3 .... cái này gọi là thành viên dữ liệu của lớp.
Có các hàm (DiemGoiCam, DeBiThangHangXomDe) để làm gì đó dựa trên thành viên dữ liệu của lớp gọi nó là thành viên (member) hàm của lớp.
Nếu trước các biến có thêm chữ static thì đó là hàm, biến tĩnh (Tongsobavo). Hàm và biến tĩnh thì có dạng toàn cục, viết trong lớp cho dễ nhìn, dễ gọi, dễ quản lý chứ chẳng liên quan đếch gì đến lớp đó.
Biết thế thôi: còn các khái niệm liên quan đến lớp như protected, kế thừa, hàm tạo, hàm hủy, lăng nhăng gì nữa thì làm đến đâu học đến đó.Chứ đọc hết một lúc ngộ chữ, đọc xong mai cứ ngửa cổ lên nhìn trời chân thì đá ống bơ lại đổ tội cho ICHTE viết bài thâm độc. :)
Có lớp rồi, nếu không mang nó ra sử dụng cho một đối tượng cụ thể nào đó thì lớp đó viết ra làm gì nhỉ. Bạn muốn xem vợ thằng Nguyễn Văn A mà mình học cùng đại học thế nào nha: Viết đoạn mã sau.
CacBaVo vothangA = new CacBaVo(); // Bây giờ bạn có biến vothangA nó lưu trữ, đại diện cho vợ thằng A cụ thể chứ không phải là CacBaVo chung chung.
//Thiết lập, hoặc gọi hàm liên quan tới vothangA làm như sau.
vothangA.tuoi = 20;
vothangA.vong1 = 90;
vothangA.vong2 = 40;
vothangA.vong1 = 90;
vothangA.ten = "Vàng Thị Nở";
diemgoicam =vothangA.DiemGoiCam();
--> Để truy cập vào dữ liệu của một đối tượng cụ thể bạn gõ tên đối tượng (vothangA) tiếp theo là dâu chấm . tiếp theo là tên biến, tên hàm.
 
Chỉnh sửa cuối:

ichte

Well-Known Member
Lập trình cho Smart Device với .NET Framework (2)!!! - Tiếp

Quay lại vấn đề xây dựng lớp NoiVeEm nhé
Bạn có thể viết mã theo cách thủ công trên, tuy nhiên theo tui để thêm lớp NoiVeEm thì trong VS2008 vào Project, tiếp đó là Add Class...
Trong mục Name của hộp thoại hiện ra thay class1.cs thành NoiVeEm.cs rồi nhấn Add. VS2008 sinh ra cho bạn lớp NoiVeEm lồng trong một namespace của chương trình. Bạn chỉ cần viết mã cho nó:
namespace PADViet
{
class NoiVeEm
{
//Viết mã ở đây
}
}
Bạn hãy gõ vào các hàm lấy thông tin hệ thống (các hàm này đều là thành viên static, tức là hàm toàn cục - khi gọi nó không cần một đối tượng cụ thể vẫn gọi được, cứ gõ tên hàm phía sau NoiVeEm.). Toàn bộ NoiVeEm.CS có nội dung là: Chú ý là nhớ gõ mấy cái using lại, cái này gọi là sử dụng namespace dấy. Nếu không gõ thể thì các lệnh bị dài ra, khó quản lý. Ví dụ File.Exists(@"\Windows\Phone.dll") thì File nó nằm trong namespce System.IO nếu không gõ using System.IO; trên đầu thì bạn phải viết đủ: System.IO.File.Exists(@"\Windows\Phone.dll")

using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace PADViet
{
classNoiVeEm
{
//----------------------load file, hàm từ thư viện
[DllImport("coredll.dll")]
private static extern void SystemParametersInfo(uint whichParam, uint size, StringBuilder platformType, uint notUsed);
private const uint SPI_GETPLATFORMTYPE = 257;
//----------------------lấy xâu ký tự mô tả máy
static string DongChuMoTaEm()
{
StringBuilder platformTypeString = new StringBuilder(255);
SystemParametersInfo(SPI_GETPLATFORMTYPE, (uint)platformTypeString.Capacity, platformTypeString, 0);
return platformTypeString.ToString();
}

//----------------------H…m kiểm tra xem c¢ phải l… SmartPhone kh“ng
publicstaticbool EmLaSmartPhone()
{
return (DongChuMoTaEm().IndexOf("SmartPhone") >= 0);
}
//----------------------H…m kiểm tra xem c¢ phải l… Pocket PC kh“ng
publicstaticbool EmLaPocketPC()
{
return (DongChuMoTaEm().IndexOf("PocketPC") >= 0);
}
//----------------------H…m kiểm tra xem có phải l… Phone không
publicstaticbool EmLaPhone()
{
returnFile.Exists(@"\Windows\Phone.dll"); ;
}
}
}

Từ Thongtinhethong.cs[Design] vào properties. Trong Properties bấm vào Events. Sau đó tìm đến mục Load, nháy hai phát vào bên cạnh để VS2008 sinh mã cho sự kiện này.
Nó đẻ ra hàm: Thongtinhethong_Load
bai2h6en1.jpg


Hàm này tự chạy cứ khi nào có sự kiện Load, tức là khi form Thông tin của bạn được mở ra thì nó chạy cái này. Mình chặn sự kiện này lại viết mã để cập nhật nội dung cho ba chấm (...) trên form.
Giờ biến đổi hàm privatevoid Thongtinhethong_Load(object sender, EventArgs e)
Bằng cách viết Code vào cho nó như dưới:
private void Thongtinhethong_Load(object sender, EventArgs e)
{
if (NoiVeEm.EmLaSmartPhone())
{
nameDevice.Text = "SmartPhone";
}
else if (NoiVeEm.EmLaPocketPC())
{
nameDevice.Text = "Pocket PC";
if (NoiVeEm.EmLaPhone())
nameDevice.Text += " - Phone Edition";
}
else
{
nameDevice.Text = "Kh“ng hiểu thiết bị g";
}
OSVersion.Text = Environment.OSVersion.ToString();
}
wow.....Dịch và chạy thử đi, toàn bộ chương trình rồi đấy.
Bổ xung, đoạn mã cuối có thêm lệnh if: cấu trúc của lệnh if
if (dieukien)
{
//Làm việc này
}
else
{
//Làm việc khác
}
Có nghĩa là nếu điều kiện đúng thì làm việc này nếu không đúng thì làm việc khác. dieukien là một biểu thức logic, biểu thức logic trả về một trong hai giá trị đúng/sai đó là True/False. Phép toán liên quan đến đúng sai như là (lớn hơn, lớn hơn hoặc bằng, nhỏ hơn, nhỏ hơn hoặc bằng, và bằng nhau) : >, >=, <, <=, == ví dụ (a > b) nếu số a lớn hơn b thật thì toàn bộ cái (a>b) cho giá trị True và làm việc này.
Rút gọn:
if (dieukien)
{
//Làm việc này
}
Đúng thì làm không đúng thì chả làm gì (chứ không phải việc khác, còn không đúng thì không làm việc gì hết).
...........................................................................................................................................................................................
Giời, mệt quá !!! Gõ đau cả tay. Cứ từ từ mà vọc nhé, đừng nóng vội đốt cháy giai đoạn (là cháy hết luôn đó). Từ từ rồi vào tính năng của điện thoại call, contact..điều khiển wifi, blutooth, truy cập web, ... cứ tìm hiểu cái nền tảng này đã.
Bái bai............
 

love_rain_2303

New Member
Bài viết thật sự rất hữu ích, thiết thực. Đọc rất dễ hiểu và không quá cơ bản với dân lập trình. Từ C# trên PC có thể chuyển qua viết cho PPC. Sau khi đọc bài của ichte thì có thể tham khảo thêm các open source từ codeproject, từ đó sẽ quen dần với PPC.
 

nikitavn

New Member
vấn đề làm sao khi đóng gói xong... cài phần mềm trên PPC nó ko đòi thư viện dll... nghĩa là ko bắt cài thêm .Net cho PPC

bạn có thể hướng dẫn mình được ko vậy
 
J

JerryBC

Guest
@nikitavn: theo mình thì bản thân nền tảng của .NET đã là dựa trên một loạt thư viện .Net rùi, trên PC thì là .NET Framework còn trên PPC thì là .NET Compact Framework nên nếu bạn lập trình các phần mềm chạy trên PPC bằng .NET thì kiểu gì bạn cũng phải cài CF trên PPC.
 

baby1982

New Member
Bài viết khá hay, nhưng "làm ơn" type tiếng Việt cho chính xác chút đi nha. Đây là dạng văn viết chứ không phải văn nói. Nói gì viết nấy thì không giống "thầy" lắm đâu. Bài viết truyền đạt tuy có dễ hiểu nhưng đọc mấy cái từ cái chữ ấy sao mà thấy khó chịu thật.
 

MinhGTHue

New Member
Cảm ơn nhiều, nhưng mình làm mãi vẫn không hiển thị đúng tiếng việt Unicode như trên PC được, mong các Bạn chỉ thêm.
 

nghien_rbc

New Member
cảm ơn rất là nhiều về bài viết bổ ích này, nhân dịp này ai có tài liệu tổng hợp một chút về lập trình cho PPC bằng VC++ thì post lên cho mình tham khảo với nha
 

letung

New Member
Bạn viết hay wa! Có bài thực hành nào nữa không? tớ đang học về lập trình PPC mà không có tài liệu !Bạn có thể cho tớ được không! cảm on nhiều!!
 

cuongdoannhat

New Member
Nhưng bạn ơi, làm sao mình biết các hàm trong API. Bạn có tài liệu tham khảo không? Cho mình với
 

thang_12b40

New Member
mình cũng đang muốn học lập trình bạn nào có tài liệu cho ngưồi mới học share cho minh xin.thanks
 
Top