การเขียนโปรแกรมด้วย PocketC# ตอนที่ 1

เขียนโปรแกรมบน PocketPC คอมไพล์บน PocketPC ใช้งานบน PocketPC เป็นความสะดวกสำหรับนักเขียนโปรแกรมมือสมัครเล่นอย่างผมมากครับ เพราะทำให้เราสามารถพัฒนาโปรแกรมได้ทุกที่ทุกเวลา การเขียนโปรแกรมผมว่าเหมือนนักเขียนหนังสือหรือนักแต่งเพลง ที่มักจะมีไอเดียแจ๋ว ๆ ผุดปิ๊งขึ้นมาโดยไม่รู้เนื้อรู้ตัว บางทีก็ค้นพบทางออกของปัญหาในโปรแกรมที่ติดขัดอยู่นานได้อย่างกะทันหัน เมื่อมี PocketPC อยู่ในมือ เราก็สามารถปรับปรุงพัฒนาโปรแกรมได้ทันทีทันใด เป็นการทดสอบได้ตอนนั้นเลยว่าไอเดีย work หรือไม่ work ไม่ต้องเสียเวลาจดบันทึกไอเดียหรือทางแก้ปัญหาไว้ไปทำที่เครื่อง desktop ที่บ้าน ซึ่งทำให้ขาดอรรถรสความมันในการเขียนโปรแกรมไปไม่น้อย

มีโปรแกรม compiler หลายตัวที่สามารถทำงานบน PocketPC ได้โดยตรง เช่น PocketC# , PGCC, หรือ Basic4PPC ที่ผมเลือกใช้คือ PocketC# เพราะ ฟรี ไม่ต้องเสียเงิน และใช้ภาษา C# (อ่านว่า ซีชาร์ป) ซึ่งอยู่บนมาตรฐานของ .NET Compact Framwork ซึ่งสามารถดัดแปลงโปรแกรมที่เราเขียนขึ้นไปใช้ได้ในคอมพิวเตอร์ทุกแบบที่อยู่บนมาตรฐานนี้ เรียกว่าเขียนโปรแกรมครั้งเดียว เอาไปใช้ได้ทั้งบน PocketPC และบน Desktop ทุกระบบปฏิบัติการ

ดูตัวอย่างโปรแกรมที่ผมเขียนด้วย PocketC# ได้ที่นี่ครับ

http://www.geocities.com/ngoodinja/ppc.htm

ก่อนจะเข้าสู่เนื้อหา ผมต้องออกตัวไว้ก่อนว่าผมไม่ได้เรียนจบมาทางการเขียนโปรแกรม เพียงแต่มีใจรักในการเขียนโปรแกรม ศึกษาตำรับตำราต่าง ๆ ด้วยตนเอง แล้วเขียนโปรแกรมโดยมุ่งผลในการใช้งานเป็นสำคัญ ไม่คำนึงถึงทฤษฎี หลักการใด ๆ ทั้งสิ้น ขอเพียงโปรแกรมให้ผลตามเป้าหมายที่ต้องการใช้งานเท่านั้น ดังนั้น บทความของผมจึงไม่เหมาะจะเอาไปอ้างอิงทางวิชาการใด ๆ หรือใครอยากจะเรียนรู้เทคนิคการเขียนโปรแกรมโครงสร้าง หรือ OOP จากบทความนี้ละก็คงผิดหวังครับ ผมตั้งใจเขียนบทความนี้เพื่อถ่ายทอดประสบการณ์เท่านั้นครับ

จุดประกาย PocketC#

ผมได้ความรู้เรื่อง PocketC# ครั้งแรก จากบทความของคุณ Chan ใน pdamobiz ตาม link นี้ครับ

http://www.pdamobiz.com/show_news.asp?NewsID=25111

หลังจากอ่านบทความของคุณ Chan ผมก็รู้สึกว่านี่แหละคือสิ่งที่เราต้องการ เพราะก่อนหน้านี้ผมใช้เครื่อง Palm มาก่อน และใช้โปรแกรม PocketC ทดลองเขียนโปรแกรมภาษา C ในเครื่อง Palm ครับ แต่โปรแกรม PocketC นั้น ไม่สามารถ Run โดยตรงบนเครื่อง Palm ได้ แต่จะต้องมีโปรแกรม Runtime สำหรับ Run โปรแกรมที่เขียนขึ้นมาอีกทีหนึ่ง ซึ่งทำให้ไม่สะดวกในการใช้งานและการเผยแพร่โปรแกรม แต่สำหรับ PocketC# ที่ใช้บน PocketPC นี้ สามารถ Compile เป็นไฟล์ exe ซึ่งสามารถ Run บน PocketPC ได้โดยตรง และด้วยมาตรฐาน .NET ทำให้สามารถนำตัวอย่างโปรแกรมและเทคนิคต่าง ๆ ของ C# ซึ่งมีอยู่มากมายมาใช้ใน PocketPC ได้ ซึ่งสามารถรองรับความต้องการของผมได้อย่างเพียงพอ ทั้งในด้านกราฟฟิกส์ หรือเสียงประกอบต่าง ๆ

สำหรับโปรแกรมและการติดตั้งโปรแกรม PocketC# นั้นขอให้ศึกษาจากบทความของคุณ Chan ครับ แนะนำให้โหลดโปรแกรม PocketC# Combo 1.10 ซึ่งจะมีโปรแกรมอำนวยความสะดวกอย่าง PocketC#IDE มาให้ใช้ด้วย นับว่าสะดวกมาก การติดตั้งต้องติดตั้งใน Main Memory เท่านั้นครับ

เพื่อความสะดวกในการโหลดผมจึงเอา PocketC#Combo มาลงในเวปของผม โหลดได้ที่นี่

http://www.geocities.com/ngoodinja/pcsharp-full.zip

 

เริ่มเขียนกันเลย

ตามธรรมเนียม โปรแกรมแรกต้องเริ่มด้วย hello world ก่อนใช่ไหมครับ

1.เริ่มต้นด้วยเข้าไปที่ Start/Programs แล้วเรียกโปรแกรม PocketC#IDE ขึ้นมาก่อนเลยครับ

2. จากนั้นคลิกที่ new project[project] ให้เป็นสีดำ แล้วเลือก ที่เมนู Project ข้างล่าง Project/Edit Selected..

3.ตั้งชื่อ Project Name ว่า helloworld ส่วนอีกช่องไม่ต้องใส่อะไร แล้วกด ok

4.จากนั้นเลือก Project/Add Target

5.ที่ช่อง Nameใส่คำว่า all และติ๊กเครื่องหมายถูกที่ช่อง Default แล้วกด ok

6.คลิกที่เครื่องหมายบวกหน้าชื่อ Project จะปรากฏคำว่า all [target] ให้คลิดที่ all ให้เป็นสีดำ แล้วเลือกเมนู Project/Add Action/Compile จะมีช่องให้เรากรอก directory และชื่อไฟล์ที่มีนามสกุล exe ซึ่งเป็นไฟล์ที่จะได้หลังจาก compile แล้ว ให้กดปุ่มที่มี … เพื่อเลือก directory แนะนำว่าควรสร้าง directory เฉพาะใน main memory สำหรับการเขียนโปรแกรมครับ ไม่ควรเก็บใน My Documents เพราะอาจเกิดข้อผิดพลาดในการเรียกโปรแกรม สำหรับผมตั้งชื่อ directory ว่า \pc#\test แล้วตั้งชื่อไฟล์ว่า helloworld.exe ส่วนที่ช่อง Arguments ให้ใส่ว่า –winforms (ต้องมีขีดข้างหน้าคำว่า winforms ด้วยนะครับ) เพื่อบอกให้ทราบว่าโปรแกรม helloworld ของเราเป็นแบบใช้Windows Forms แล้วกด ok

7.เลือก เมนู File/Save Project As… แล้วตั้งชื่อว่า helloworld.csant บันทึกลงใน \pc#\test เป็นอันสิ้นสุดการสร้าง project ต่อไปเป็นการสร้างไฟล์ ด้วยภาษา C# เพื่อจะใช้ใน project นี้ครับ

8.เลือกเมนู File/New File จะเข้าสู่โปรแกรม editor ที่เรียกว่า SrcEditorForm จากนั้นก็ลองป้อนคำสั่งดังนี้ครับ อ้อ ต้องดูตัวอักษรตัวใหญ่ตัวเล็กให้ถูกต้องด้วยนะครับ เพราะภาษา C# นี้เป็นแบบ Case Sensitive ครับ

using System;

using System.Windows.Forms;

class helloworld

{

static void Main()

{

MessageBox.Show(“hello world”);

}

}

 

9.จากนั้นเลือกเมนู Tools/Reformat code เพื่อจัดย่อหน้าให้สวยงามโดยอัตโนมัติ แล้วเลือก File/Save As… เลือก directory \pc#\test แล้วตั้งชื่อว่า helloworld.cs

10.กลับไปที่หน้าจอ Project โดยเลือกเมนู Windows/Project แล้วเลือก sources ให้เป็นสีดำ จากนั้นเลือกเมนู Project/Edit Selected… ให้เลือก tab ที่ Files จะมีช่องให้ใส่ชื่อไฟล์ที่เป็น sources code แล้วเลือกปุ่ม … เพื่อหาไฟล์ชื่อ helloworld.cs ที่เราบันทึกไว้แล้ว กด ok แล้วกด Add ชื่อไฟล์จะปรากฏในช่องข้างล่าง แล้วกด ok กลับไปหน้าจอ Project จะเห็นว่า helloworld.cs อยู่ใน sources เรียบร้อยแล้ว ให้เลือก File/Save Project เพื่อบันทึก Project ที่สมบูรณ์อีกครั้งหนึ่ง

11.มาลอง compile กันเลยครับ เลือก Project/Build ได้เลย หากการเขียนโปรแกรมถูกต้อง จะได้ผลการ compile ที่สมบูรณ์

12.ออกจากโปรแกรม PocketC#IDE แล้วใช้ File Explorer เข้าไปใน \pc#\test ที่เราระบุให้เก็บไฟล์ helloworld.exe ไว้ จะเห็นไฟล์ปรากฏอยู่ 3 ไฟล์ คือ ไฟล์ helloworld.cs ซึ่งเป็น source code ไฟล์ helloworld.csant ซึ่งเป็น project และ helloworld.exe ให้จิ้มที่ไฟล์ helloworld.exe เพื่อ Run ได้โดยตรงเลยครับ

ภาษาไทยก็ใช้ได้ครับ

ตัว editor ของ PocketC#IDE สามารถรองรับภาษาไทยได้ครับ ลองเปลี่ยนข้อความใน MessageBox เป็น “สวัสดีโลกา” ก็สามารถแสดงผลภาษาไทยได้ แต่ในตัวโปรแกรมจะมีช่องว่างหลังภาษาไทยเยอะตามจำนวนอักษรไทยซึ่งปัดเป็น 3 บรรทัด อาจจะยากแก่การแก้ไขหน่อย วิธีแก้ไขแบบง่าย ๆ ของผมคือลบจากอักษรท้ายสุดเข้ามาครับ โดยเริ่มที่ เครื่องหมาย ; ท้ายสุดเลยแล้ว Backspace ลบเข้ามาเรื่อย ๆ จนถึงตัวอักษรที่ต้องการแก้ไขแล้วพิมพ์แก้ไขใหม่จนจบประโยค

เพื่อน ๆ คงได้แนวทางการใช้งาน PocketC# พอสมควรนะครับ ตอนต่อ ๆ ไปจะเป็นตัวอย่างการใช้งาน Controls ต่าง ๆ เช่น การสร้างปุ่ม สร้าง Label กล่องข้อความ ฯลฯ

ขอให้สนุกครับ

[email protected]

25 กรกฎาคม 2550

 

 

 

 

 

 

 

Hosted by www.Geocities.ws

1