กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
385 8
URL.หัวข้อ /
URL
ทำอย่างไร
คุณแบดแมนครับ จากตัวอย่างในการสร้างพลาสเวิดของคุณ ถ้าจะดัดแปลงให้กรอบที่บินได้นั้นเล็กลงจะทำอย่างไร
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00831
เอ..กรอบที่บินได้หมายถึงอะไรครับ..
ถ้าหมายถึงกรอบของ Form Login หรือ Form Title ละก็ให้เข้าไปแก้ไข ตัวเลข ที่ Event OnOpen ของแต่ละ Form นะครับที่บรรทัด
Anim.FormHeight = 2950
Anim.FormWidth = 7580
2 @R00833
ถ้ามีการแก้ไขจากไฟล์ตัวอย่างพลาสเวิดของคุณแบดแมน ขั้นตอนอำนาจการใช้งานของUSER ถ้ามีการเปลี่ยนแปลงแก้ไขต้องไปแก้ที่จุดใดบ้าง ในฟอร์มในตาราง ในโมดูลใช่หรือไม่ ถ้าจะลดขั้นตอนการใช้สิทธิ์ลงเพียงลบทิ้งใช่หรือไม่ จะมีผลต่อการทำงานของระบบหรือไม่ อีกกรณีหนึ่งจะเห็นมีเมนูที่สร้างมาเอง ถ้าไม่เอาเมนูนั้น จะลบทิ้งอย่างไร
3 @R00834
ผมจะบอกหลักการ การทำตามแบบตัวอย่าง กว้างๆให้นะครับ แล้วคุณสมรัตน์ ดูเปรียบเทียบกับตัวอย่าง ศึกษาดู..
1. คุณต้องออกแบบเมนูของโปรแกรมคุณก่อน ว่าจะมีกี่เมนู, กี่ sub เมนู
2. เขียนรายการออกมาเรียงเป็นแถวยาวลงมาเลยครับ
3. เมนูใหญ่สุดที่เราเห็นอยู่ด้านบนจะมี Index เป็น 0,1,2,3.... แล้วแต่ที่คุณออกแบบเช่น เมนูแฟ้ม(0), เมนูรายงาน(1),เมนูเครื่องมือ(2)
4. Sub menu ต่อลงมาก็จะเริ่มจาก 0,1,2,3... เช่น เมนูแฟ้ม(0) พอคลิก ก็จะมีเมนูย่อยไหลลงมาให้เลือก ก็จะเป็น เมนูเปิด(0,0),เมนูปิด(0,1),เมนูออกจากโปรแกรม(0,2) ...ส่วนเมนูที่ 2 คือ เมนูรายงาน(1) ก็จะมีเมนูย่อยเป็น รายงาน1(1,0), รายงาน2(1,1), รายงาน3(1,2)...
5. สามารถมีเมนูได้ 3 ระดับ ตัวอย่างเช่น เมนูแฟ้ม(0) --> เมนูเปิด(0,0) --> ทะเบียนลูกค้า(0,0,0) จะไม่สามารถย่อยต่อไปได้อีก
6. ให้คุณเก็บรายการเมนูที่เขียนไว้พร้อมเลข Index ที่กำกับไว้ใช้ตอนกำหนดสิทธิ์ User
7. คอยพบกับตอนต่อไป...
4 @R00837
ตอนต่อครับ...
...สมาชิกทุกคนสามารถศึกษาไปได้พร้อมๆกันนะครับ ผมอยากให้ทุกคน D/L ตัวอย่างจากคำถามที่ 365 ไปดูประกอบด้วยนะครับ จะได้เข้าใจง่าย...
...ขั้นตอนต่อไปเริ่มสร้างเมนู ด้วย Macro ครับ..
1. เปิด New Macro ตั้งชื่อว่า เมนูหลัก(ความจริงชื่ออะไรก็ได้ครับ)
2. ที่ Action = AddMenu ในการสร้างเมนูแถวบนสุดที่มี Index เท่ากับเลขหลักเดียวนะครับเช่น สร้างเมนู แฟ้ม, รายงาน, เครื่องมือ ดังนี้..
---------------------------------------------------------------------------------------------------------------
Action Menuname Menu Macro Name
(คำสั่ง) (ชื่อเมนูที่จะให้แสดง) (ชื่อ macro ที่เราจะสร้างต่อไป)
---------------------------------------------------------------------------------------------------------------
AddMenu เมนูหลอก
AddMenu แ&ฟ้ม เมนูแฟ้ม
AddMenu &รายงาน เมนูรายงาน
AddMenu เ&ครื่องมือ เมนูเครื่องมือ
หมายเหตุ : เมื่อถึงจุดนี้ทุกท่านคงจะสงสัยแล้วว่า ทำไมต้องมีเมนูหลอกด้วย ผมก็ไม่สามารถอธิบายเหตุผลทางวิชาการได้ครับ(คงต้องให้ อ.สุภาพ ช่วยหาคำอธิบายหน่อยนะครับ !) เพราะถ้าไม่ใส่ การทำงานจริงก็จะไม่ Work คือ เมนูแฟ้มแทนที่จะเริ่มต้น Index ด้วย 0 ก็ใช้ไม่ได้ เริ่มต้นด้วย 1 ก็ไม่ได้ แต่พอลองใส่เข้าไปมันสามารถทำงานได้...ก็ OK
3. สร้าง Macro ใหม่ชื่อ เมนูหลอก, เมนูแฟ้ม, เมนูรายงาน, เมนูเครื่องมือ(สร้างขึ้นใหม่โดยยังไม่ต้องใส่ Action อะไรก็ได้ครับ แล้ว Save ไว้ตามชื่อ ที่เราประกาศใช้ไปแล้วใน เมนูหลัก)
ติดตามตอนต่อไปนะครับ..
5 @R00838
ตอนต่อครับ...(อ้อ..ลืมไปครับ ตัวอย่างที่ถูกต้องอยู่ที่คำถามที่ 350 ครับ D/L ได้เลย)
4. เมนูหลอกไม่ต้องมีคำสั่งอะไร ปล่อยว่างไว้เฉยๆครับ
5. เมนูแฟ้ม ทำดังนี้..
---------------------------------------------------------------------------------------------------------------
Action Menuname Menu Macro Name
(คำสั่ง) (ชื่อเมนูที่จะให้แสดง) (ชื่อ macro ที่เราจะสร้างต่อไป)
---------------------------------------------------------------------------------------------------------------
AddMenu เ&ปิด เมนูเปิด
---------------------------------------------------------------------------------------------------------------
Action Object Type Object Name
---------------------------------------------------------------------------------------------------------------
Close Form ชื่อฟอร์ม
- ' ใช้เป็นเส้นขั้น
---------------------------------------------------------------------------------------------------------------
Action Option
---------------------------------------------------------------------------------------------------------------
Quit Save All
6. เมื่อสร้าง Macro ครบตามเมนูเรียบร้อยแล้ว(โดยดูตัวอย่างที่คำถาม 350 ประกอบด้วยนะครับ)
7. ตอนนี้สามารถทดลองใช้งานเมนูดูได้นะครับ โดยเวลาใช้งาน ถ้าต้องการให้ฟอร์มไหนมีเมนูขึ้นที่ด้านบน ซึ่งโดยส่วนใหญ่ฟอร์มนั้นมักจะเปิดแบบให้เต็มจอ คือใช้คำสั่ง Maximize และข้อจำกัดอย่างหนึ่งของการสร้าง Menu ด้วย Macro คือ ฟอร์มนั้นจะ set popup, Modal เป็น Yes ไม่ได้ครับ..
เปิดฟอร์มนั้นในมุมมองออกแบบแล้วเลือกแถบ Other --> Menu bar ป้อนชื่อ เมนูหลัก ลงไปในช่องนี้ แล้วลองสั่งเปิดฟอร์มดูจะเห็นเมนูที่เราสร้างขึ้นมาอยู่ด้านบนของฟอร์มนั้นครับ (ต้องการให้ฟอร์มไหนมีเมนูก็ต้องทำอย่างนี้กับทุกฟอร์มครับ)
8. ถ้าไม่มีการกำหนดสิทธิ์ให้กับ User การทำเมนูด้วย Macro ก็เสร็จสิ้นแค่นี้ครับ ..แต่ถ้ามีละก็ จะต้องมีการกำหนดลึกลงไปในการเขียน Module ซึ่งคงจะเป็นตอนต่อไปนะครับ..
หมายเหตุ : อาจจะขาดตกบกพร่องบ้าง ก็ขอให้ดูตัวอย่างจากคำถามที่ 350, 365 ประกอบไปด้วยนะครับ
6 @R00840
งง จัง 0 1 2 เอาไว้ที่ไหน ทำอย่างไร ไม่รู้เรื่องเลย
7 @R00842
อ๋อ .. ถ้าขั้นตอนการทำเมนูด้วย Macro นั้น รหัส Index ยังไม่ได้ใช้ครับ จะไปใช้ในขั้นตอนการกำหนดสิทธิ ของ User ซึ่งยังไม่ได้กล่าวถึงครับ
...จะได้ใช้ในการ set MenuItem ให้เป็น Gray คือไม่สามารถใช้งานได้ อ้าว..เดี๋ยวยิ่งฟังจะยิ่ง งง ค่อยดูต่อไปนะครับ (อย่าลืม D/L ตัวอย่างไปดูประกอบนะครับ เพราะผมเขียนคงไม่ละเอียดเท่าไรครับ)
8 @R00859
- ขั้นตอนการกำหนดสิทธิของ User โดยต้องสร้างตารางเก็บ ชื่อผ่าน, รหัสผ่าน, ชื่อสกุลจริง, รายการเมนูที่เรากำหนดไว้(อย่าลืมดูตามตัวอย่างนะครับ ไม่งั้นไม่รู้เรื่องครับ)
- ที่ Module ตั้งตัวแปรชนิด Global เท่ากับจำนวนเมนูที่เรากำหนด
- ตอน Login ให้นำชื่อผ่าน, รหัสผ่าน ไปเปรียบเทียบกับที่มีในฐานข้อมูล ถ้ามีก็เอาสิทธิที่กำหนดให้แต่ละเมนูไปเก็บในตัวแปรชนิด Global แล้วนำไปตรวจสอบใน Function ที่สร้างไว้สำหรับตรวจสอบสิทธิ
...โอย.ยย... ตอนนี้ผมอธิบายลำบากจริงๆครับ...สู้ ดูตัวอย่างดีกว่านะครับ แล้วหลักการกว้างๆที่ผมกล่าวไว้
Time: 0.0991s