กฎการเขียนและการทำงานใน Pyth 2.1.0
* **การประกาศฟังก์ชัน:** ต้องระบุ {} ต่อท้ายชื่อฟังก์ชันเสมอ แม้ว่าฟังก์ชันนั้นจะไม่มีพารามิเตอร์ เช่น ฟังก์ชัน ชื่อฟังก์ชัน {}
* **การสร้างปุ่มแบบแยกส่วน:** ให้ระบุชื่อปุ่มและตำแหน่งในคำสั่งสร้างปุ่ม เช่น ปุ่มดาวน์โหลด ที่ 30,155 กว้าง390 สูง40 เพื่อให้ Parser แยกชื่อปุ่ม ตำแหน่ง และขนาดได้อย่างถูกต้อง
* **การผูกเหตุการณ์ (Event Handling):** ใช้บล็อก เมื่อกด[ชื่อปุ่ม] สำหรับกำหนดสิ่งที่จะเกิดขึ้นเมื่อผู้ใช้คลิกปุ่ม ไม่จำเป็นต้องระบุตำแหน่งหรือขนาดของปุ่มซ้ำ
* **การทำงานเบื้องหลัง (Background Threading):** ใช้คำสั่ง ทำเบื้องหลัง [ชื่อฟังก์ชัน] สำหรับงานที่อาจใช้เวลานาน เช่น การดาวน์โหลดไฟล์ เพื่อไม่ให้หน้าต่าง GUI ค้างหรือขึ้น Not Responding
* **Progress Bar สำหรับการดาวน์โหลด:** หากใช้ ดาวน์โหลดไฟล์ ... แสดงความคืบหน้า ระบบจะจัดการเปอร์เซ็นต์การดาวน์โหลดระหว่างทำงานให้ จึงควรเริ่ม Progress Bar ที่ 0 และไม่ควรตั้งเป็น 50 ก่อนเริ่มดาวน์โหลด เพราะค่าความคืบหน้าจริงอาจเริ่มตั้งแต่ 0–100%
* **การตรวจข้อมูลก่อนเริ่มงาน:** ควรตรวจสอบค่าที่ผู้ใช้กรอก เช่น URL ว่างหรือไม่ ก่อนเริ่ม Background Task
---
ตัวอย่างโค้ดที่ถูกต้อง (GUI ดาวน์โหลดไฟล์)
```text
นำเข้า gui
# 1. หน้าต่างหลัก
หน้าต่างปกติชื่อ=โปรแกรมดาวน์โหลด MP4 กว้าง=450 สูง=220
# 2. ส่วนรับข้อมูล
ข้อความ กรุณากรอก URL วิดีโอ MP4: ที่30,25
ช่องกรอก ชื่อ=ช่องลิงก์ ที่30,55 กว้าง390
ข้อความ สถานะ: พร้อมใช้งาน ที่30,95
แถบความคืบหน้า ชื่อ=หลอดโหลด ค่า=0 ที่30,120 กว้าง390
# 3. ฟังก์ชันดาวน์โหลด
ฟังก์ชัน กระบวนการดาวน์โหลด {}
ดาวน์โหลดไฟล์ ลิงก์=ช่องลิงก์ บันทึกเป็น=video.mp4 แสดงความคืบหน้า
ตั้งความคืบหน้า หลอดโหลด ค่า=100
แจ้งเตือน สำเร็จ ดาวน์โหลดไฟล์ video.mp4 เรียบร้อยแล้ว
จบฟังก์ชัน
# 4. สร้างปุ่มดาวน์โหลด
ปุ่มดาวน์โหลด ที่30,155 กว้าง390 สูง40
# 5. ผูกเหตุการณ์เมื่อกดปุ่ม
เมื่อกดดาวน์โหลด
ถ้า ช่องลิงก์ เท่ากับ ""
แจ้งเตือน เตือน กรุณากรอก URL ก่อนกดดาวน์โหลด
ไม่งั้น
ตั้งความคืบหน้า หลอดโหลด ค่า=0
ทำเบื้องหลัง กระบวนการดาวน์โหลด
จบ
จบ
แสดงหน้าต่าง
## ลำดับการทำงาน
เมื่อผู้ใช้กดปุ่ม `ดาวน์โหลด` ระบบจะทำงานตามลำดับดังนี้
1. ตรวจสอบว่าช่อง URL มีข้อมูลหรือไม่
2. หากไม่มี URL จะแสดงข้อความเตือน
3. หากมี URL จะรีเซ็ต Progress Bar เป็น `0`
4. เรียก `กระบวนการดาวน์โหลด` ด้วยคำสั่ง `ทำเบื้องหลัง`
5. ดาวน์โหลดไฟล์โดยไม่ทำให้หน้าต่างหลักค้าง
6. `แสดงความคืบหน้า` จะอัปเดตเปอร์เซ็นต์ระหว่างการดาวน์โหลด
7. เมื่อเสร็จจะตั้ง Progress Bar เป็น `100`
8. แสดงข้อความแจ้งว่าดาวน์โหลดสำเร็จ
## หมายเหตุ
ตัวอย่างนี้ใช้สำหรับ URL ที่ชี้ไปยังไฟล์ที่สามารถดาวน์โหลดได้โดยตรง เช่นไฟล์ `.mp4`
ตัวอย่าง:
```text
https://example.com/video.mp4
คำสั่ง ดาวน์โหลดไฟล์ ไม่ได้หมายถึงระบบดาวน์โหลดวิดีโอจากหน้าเว็บไซต์ทุกประเภทโดยอัตโนมัติ เช่น URL หน้าวิดีโอจากแพลตฟอร์มที่ไม่ได้เป็นลิงก์ไฟล์โดยตรง
แนวทางนี้ช่วยให้โค้ด Pyth อ่านง่าย และแยกหน้าที่ออกเป็นส่วนชัดเจน ได้แก่ **GUI → Event → Validation → Background Task → Download → Progress → Result**