วันอังคารที่ 17 มิถุนายน พ.ศ. 2557

การแสดง/ซ่อน Disable/Enable ปุ่ม บน ริบบิ้น ของ Access 2010

ความรู้พื้นฐานก่อนศึกษาเรื่องนี้

การสร้างริบบิ้น
การสร้างปุ่มบนริบบิ้นโดยใช้ภาพที่สร้างเอง
การ Disable ปุ่มบนริบบิ้น

การแสดง/ซ่อน หรือกำหนดสถานะเป็น ไม่ทำงาน/ทำงาน (Disable/Enable) ปุ่ม บน ริบบิ้น ของ Access 2010 ต้องดำเนินการผ่าน Callback โดยกำหนดให้เรียกใช้ ใน USysRibbons เช่น ถ้าต้องการให้ปุ่ม btnNewAcc มีสถานะทำงาน หรือไม่ทำงาน ก็ต้องเพิ่ม getEnabled = "ชื่อไฟล์คำสั่ง" เช่น

<button id="btnTransaction" label="ฝาก-ถอน"  onAction="myButtonCallback"  getEnabled="CallbackGetEnabled" />

จากนั้นจึงไปเขียนคำสั่ง ใน CallbackGetEnabled อีกครั้งหนึ่ง เช่น

Sub CallbackGetEnabled(control As IRibbonControl, ByRef enabled)
    enabled = bolEnabled
End Sub

ในตัวอย่างข้างบน มีการกำหนดตัวแปร bolEnabled ให้เป็น global variable แล้วจากนั้น จึงไปกำหนดค่า ให้เป็น True หรือ False เมื่อต้องการ ในไฟล์ตัวอย่างที่แนบให้ดาวน์โหลดข้างล่างนี้ มีการกำหนดค่า เมื่อมีการคลิกปุ่มเลือกให้แสดงสถานะ การวาดริบบิ้นใหม่ (Redraw) ใช้คำสั่ง invalidate เช่น gobjRibbon.Invalidate

การซ่อนแถบ ก็ทำนองเดียวกัน เช่น กำหนดในปุ่ม ใน USysRibbons ดังนี้

<tab getvisible="myGetVisible" id="Tab2" label="การกู้เงิน" > และไปเขียนคำสั่ง ใน myGetVisible ดังนี้

Public Sub myGetVisible(control As IRibbonControl, ByRef visible)
Select Case control.id
    Case "Tab2"
        If showStatus = False Then
            visible = False
        Else
            visible = True
        End If
    Case Else
        visible = True
End Select
End Sub

ในตัวอย่าง ปุ่ม btnNewAcc ไม่ได้เรียกใช้งาน CallbackGetEnabled ดังนั้นจึงอยู่ในสถานะพร้อมใช้งานตลอด ไม่ถูกบังคับจากคำสั่งใน CallbackGetEnabled

ศึกษารายละเอียดได้จากไฟล์ตัวอย่าง



ดาวน์โหลดไฟล์ คลิกที่นี่


วันอาทิตย์ที่ 15 มิถุนายน พ.ศ. 2557

ตัวหนังสือ รอยเย็บแนวขอบ ด้วย Illustrator CS6

ต้องการสร้างตัวหนังสือ รอยเย็บแนวขอบ ตามตัวอย่างข้างล่างนี้

หลักการ
ใช้ Appearance Panel สร้างเส้นขอบ (Stroke) และกำหนดรูปแบบเป็นเส้นประ หรือ Dashed Line

ปัญหาคือ ใน Illustrator CS6  ไม่สามารถสร้างเส้นขอบ หรือ Stroke ให้กับตัวหนังสือได้ หรือจะจัดตำแหน่งของเส้น Stroke ก็ไม่สามารถทำได้

วิธีการ

  1. เปิดไฟล์ใหม่ และใช้ Type Tool เขียนข้อความ โดยเลือกตัวหนังสือตัวหนา ๆ ในตัวอย่างนี้ เลือกตัวหนังสือ TP Kubua ขนาด 150pt
  2. เปิด Appearance Panel โดยไปที่ Window > Appearance
  3. ตรงนี้ เราไม่สามารถสร้าง Stroke เพิ่มให้กับตัวหนังสือได้ ต้องเปลี่ยนเครื่องมือ ไปคลิกที่ลูกศรสีดำ (Selection Tool) เพื่อเปลี่ยนจากตัวหนังสือ เป็น Object
  4. ที่ Appearance Panel คลิกที่มุมขวาด้านบน คลี่ลงมา และเลือก Add New Stroke
  5. คลิกเปลี่ยนสีของ Stroke เป็นสีน้ำเงินเข้ม และปรับขนาดของ Stroke เป็น 2px ซึ่งจะทำให้เมื่อลากไปไว้ข้างหลัง Fill จะได้เส้นขนาด 1px เนื่องจากไม่สามารถปรับ Stroke ให้อยู่ชิดด้านนอกได้ 
  6. คลิกที่ข้อความ Stroke และเลือกลักษณะเส้น เป็น Dashed Line กำหนด dash = 4 pt และ gap = 3 pt
  7. ลาก Stroke มาไว้ด้านล่าง ต่อจาก Character
  8. คลิกที่มุมขวาด้านบนของ Appearance Panel คลิก Add New Fill
  9. เปลี่ยนสีพื้นของ Fill เป็นสีขาว
  10. คลิกมุมขวาด้านบนของ Appearance Panel เลือก Add New Stroke
  11. คลิกที่ Stroke ของ เส้นขอบที่สร้างใหม่ เปลี่ยนขนาดเป็น 10pt และกำหนดลักษณะให้เป็นปกติ โดยไม่เลือก Dashed Line
  12. ลาก Stroke ที่สร้างใหม่ มาวางไว้หลัง Stoke ที่เป็นเส้นประที่สร้างไว้แล้ว
  13. เปลี่ยนสีของ Stroke ที่สร้างใหม่ เป็นสีเทา (C=0 M=0 Y=0 K=20)
  14. จะได้ตัวหนังสือ ที่มีขอบเป็นตะเข็บที่ต้องการ
  15. ถ้าต้องการเก็บรูปแบบนี้ไว้เป็น Graphic Style เพื่อเรียกใช้ภายหลัง ก็สามารถทำได้ เปิด Graphic Style (Window > Graphic Style) และคลิกที่สี่เหลี่ยม หน้าคำว่า Type ใน Appearance
  16. และลากมาวางไว้ใน Graphic Style
  17. ดับเบิ้ลคลิกที่ Style ที่สร้างใหม่ และตั้งชื่อตามต้องการ
  18. เมื่อพิมพ์ตัวหนังสือใหม่ หรือสร้างรูปร่างใหม่ จาก Pen Tool หรือ จากเครื่องมืออื่น ๆ สามารถลาก Style ที่บันทึกไว้ มาใช้งานได้ทันที


การเปลี่ยนรูปแบบชุดข้อมูล จากแนวตั้ง เป็นแนวนอน

สมมติว่า มีข้อมูลที่อยู่ เรียงลำดับลงมาเป็นคอลัมน์ ตามแนวตั้ง และต้องการเปลี่ยนให้เรียงเป็นแถว 1 แถว คือ 1 ที่อยู่ ตามภาพข้างล่าง จะทำอย่างไร

วิธีที่ง่ายที่สุด คือ Copy และ Paste ทีละ Cell แต่ถ้ามีเยอะ ๆ ก็ไม่ไหวเหมือนกัน วิธีที่ดีที่สุด คือการใช้สูตรช่วย ทำให้ง่ายและเร็วขึ้น

สูตรที่จะใช้คือ index() เพื่อคัดลอกข้อมูลใน Cell ไปยังที่ใหม่  สูตรการใช้ index() คือ

index(array, row_num, [column_num])

array ในที่นี้ ก็คือ คอลัมน์ A ทั้งหมด เพราะข้อมูลอยู่ในคอลัมน์ A 
row_num ในกรณีนี้ ต้องใช้อ้างอิงจากตำแหน่งแถวแรกของข้อมูลแต่ละชุด
-ข้อมูลชุดชุดที่ 1 คือ เลขที่ 99 หมู่ที่ 8 เริ่มที่คอลัมน์ 2
-
ข้อมูลชุดชุดที่ 2 คือ เลขที่ 9 หมู่ที่ 6 เริ่มที่คอลัมน์ 7
-ข้อมูลชุดชุดที่ 3  คือ เลขที่ 30 หมู่ที่ 8 เริ่มที่คอลัมน์ 12
column_num ในกรณีนี้ เราไม่ต้องใช้

ดังนั้นถ้าจะใช้สูตรคัดลอกจากแนวตั้ง เป็นแนวนอน จะได้ดังนี้

D2 =index(A:A,2)
E2 =index(A:A,3)
F2 =index(A:A,4)
G2 =index(A:A,5)

เพื่อให้สามารถลากสูตร โดยใช้ Auto Fill ได้ จึงต้องกำหนดค่าตัวเลข โดยใน คอลัมน์ C กำหนดให้เป็นตัวเลขเริ่มต้นแถวของข้อมูลแต่ละชุด และ D1:G1 เป็นตัวเลขอ้างอิงจากตำแหน่งแรกของข้อมูลชุดนั้น ๆ ดังนั้น จะได้ตัวเลข 0-3 เพราะมี 4 แถวลงมา
สูตรในช่อง D2 มีดังนี้
=INDEX($A:$A,$C2+D$1)
จากสูตร จะเห็นว่า $C2+D$1 ได้เท่ากับ 2 ซึ่งเหมือนกับสูตรของเซลล์ D2 ในตารางข้างบน

จากนั้น จะสามารถลากปุ่ม Auto Fill ให้ครอบคลุมทั้งหมด จะได้ ดังนี้

ถ้าต้องการซ่อนตัวเลขหัวแถว และด้านบน ให้จัดรูปแบบเป็นชนิด กำหนดเอง และกำหนดรูปแบบเป็น ;;; จะซ่อนตัวเลขในเซลล์

จะได้เหมือนกับข้อมูลในตัวอย่างข้างบน




เดินวันละชั่วโมงป้องกันโรคข้อเข่าเสื่อมได้

ฟังหมอดาเลียพูดว่า เดินวันละ 6,000 ก้าว ช่วยลดอัตราเสี่ยงต่อการเป็นโรคข้อเข่าเสื่อมได้ รู้สึกสนใจ
เลยหาข้อมูลต่อ

คนอายุมากที่มีปัญหาเรื่องข้อเข่า มักจะเดินลำบาก ขึ้นบันไดยากมาก หรือแม้แต่ลุกขึ้นจากเก้าอี้ก็ลำบาก แต่ผลการวิจัยต่อไปนี้แสดงให้เห็นว่า การเดินจะช่วยให้ทำสิ่งต่าง ๆ ข้างต้นได้ดีขึ้น เดินสบาย ขึ้นบันไดสบาย ลุกนั่งจากเก้าอี้คล่องแคล่วไม่มีปัญหา

Professor Daniel White มหาวิทยาลัย Boston University ได้ศึกษาวิจัยเรื่องนี้กับกลุ่มตัวอย่างเกือบ 1,800 คน และสรุปว่า ตัวเลข 6,000 ก้าว ใช้เป็นเกณฑ์ได้ ใครก็ตาม ถ้าสามารถเดินได้วันละ 6,000 ก้าว ก็ถือว่าปลอดภัย

ผู้ที่มีความเสี่ยงที่จะเป็นโรคข้อเข่าเสื่อม ควรจะเดินให้ได้วันละ 6,000 ก้าว ยิ่งเดินมาก ความเสี่ยงยิ่งลดลง
โดยปกติ คนเดิน 100 ก้าว ใช้เวลาประมาณ 1 นาที เพราะฉะนั้น 6,000 ก้าว ก็จะใช้เวลาประมาณ 1 ชั่วโมง อย่างไรก็ตาม ไม่จำเป็นต้องเดินติดต่อกันทั้งชั่วโมง เดินตอนไหนก็ได้ทั้งวัน ให้ได้ 6,000 ก้าวก็พอ และถ้าจะให้ดี ก็ต้องมีเครื่องมือวัดจำนวนก้าวที่เดินด้วย เครื่องมือที่ว่า เรียกว่า Pedometer
ไอ้เจ้า Pedometer นี่ เดี๋ยวนี้ มี Apps สำหรับโทรศัพท์ที่ดาวน์โหลดมาใช้ได้ เช่นของ Accupedo Pedometer Noom Walk: Pedometer Pedometer และอื่น ๆ อีกจำนวนมาก ใครสนใจก็ดาวน์โหลดมาใช้ได้

Professor Daniel White บอกว่า สำหรับผุ้ที่เป็นโรคข้อเข่าเสื่อมอยู่แล้ว ในตอนแรก ควรตั้งเป้าหมายไว้แค่ วันละ 3,000 ก้าว ก็พอ

การวิจัยนี้ ตีพิมพ์ในวารสาร Arthritis Care & Research วันที่ 12 เดือนมิถุนายน ทำการวิจัยโดยวัดจำนวนก้าวเดินของผู้ใหญ่ที่มีความเสี่ยงต่อโรคข้อเข่าเสื่อม หรือที่เป็นโรคนี้อยู่แล้ว โดยใช้เวลาประมาณ 1 อาทิตย์ ผู้ที่เข้าร่วมเป็นประชากรวิจัยครั้งนี้ ทุกคนมีเครื่องวัดการเดิน (Pedometers) ทุกคน

อีก 2 ปีต่อมา ผู้วิจัยได้ประเมินปัญหาการเคลื่อนไหวที่เกี่ยวข้องกับโรคข้อเสื่อมของกลุ่มประชากรการวิจัย และพบว่า ทุก ๆ 1,000 ก้าว จะสามารถลดปัญหาลงได้ ร้อยละ 16 ถึง ร้อยละ 18 Professor Daniel White สรุปว่า การเดินนอกจากจะช่วยสร้างความแข็งแกร่งให้กับกล้ามเนื้อแล้ว ยังช่วยลดอาการเจ็บปวดจากโรคข้อเข่าเสื่อมได้อีกด้วย

การเดิน ไม่ต้องเสียสตางค์ และทุกคนเดินเป็นกันหมด คนอายุมากขึ้นทุกคน มีความเสี่ยงต่อโรคข้อเข่าเสื่อมทุกคน ป้องกันไว้ก่อน หรือผู้ที่กำลังมีปัญหาเรื่องนี้ ก็น่าจะลองทำดู


อ้างอิง
http://www.webmd.com/arthritis/news/20140612/can-6000-steps-a-day-keep-knee-arthritis-at-bay


วันเสาร์ที่ 14 มิถุนายน พ.ศ. 2557

Windows 7 ใช้เวลา Boot นานมาก

โดยปกติ เมื่อ Windows  ใช้เวลา Boot นานมาก เรามักจะเรียกโปรแกรม msconfig เพื่อจัดการกับโปรแกรมที่ load เข้ามาตอน Startup เพื่อให้โหลดเร็วขึ้น

แต่หลายครั้งที่ไม่ค่อยประสบผลสำเร็จ

โปรแกรม Windows 7 รุ่น Ultimate, Professional และรุ่น Enterprise มีเครื่องมือสำหรับวิเคราะห์และแก้ไขปัญหาการ Boot เครื่องมือนี้เรียกว่า Windows Boot Performance Diagnostics

วิธีการใช้งาน
  1. เรียกใช้งานโปรแกรม gpedit.msc โดยคลิกที่ไอคอนรูป Windows และพิมพ์ gpedit.msc 
  2. คลิกเลือก Show/Hide Console Tree (ปกติเมื่อเปิด จะคลิกเปิดอยู่แล้ว)
  3. เลือก Computer Configuration > Administrative Templates > System
  4. ดับเบิ้ลคลิก Troubleshooting and Diagnostics
  5. ดับเบิ้ลคลิก Windows Boot Performance Diagnostics เพื่อเปิดหน้าต่างใช้งาน
  6. เลือก Configure Secnario Excution Level
  7. คลิก Policy setting
  8. เปิดใช้งาน โดยคลิก Enable และเลือก Detection, Troubleshooting and Resolution
เป็นอันเสร็จสิ้นการให้ Windows วิเคราะห์และแก้ไขการ Boot ช้า ของ Windows 7

ที่มา
http://www.guidingtech.com/2955/fix-slow-windows-startup-boot-performance-diagnostics/

วันอาทิตย์ที่ 1 มิถุนายน พ.ศ. 2557

การสร้างลิงค์ใน Dialog ของ jQuery

ถ้าต้องการสร้างลิงค์ ใน Dialog ของ jQuery ตามตัวอย่างข้างล่าง จะทำอย่างไร


มีวิธีการสร้างได้หลายอย่าง วิธีที่ง่ายที่สุด คือ การเพิ่มลิงค์ ในส่วนเนื้อหาของ
ที่จะนำมาเป็นข้อความใน Dialog เช่น

<div id="dialog-modal" title="ยินดีต้อนรับ">
  <p style = "text-align: center">เรียบร้อยแล้ว <br>กลับหน้าหลัก <a href = 'http://www.thongjoon.com'>คลิกที่นี่</a></p>
</div>

ในส่วนการเรียกใช้งาน Dialog ก็เรียกตามปกติ เช่น  (อ่านเรื่อง การสร้าง Dialog ด้วย jQueryUI ประกอบ)

    $( "#dialog-modal" ).dialog({
      height: 150,
      modal: true
    });

อีกวิธีหนึ่ง คือ การใช้ function .html() เพื่อเปลี่ยนข้อความในส่วนของ
ที่จะนำมาแสดงใน Dialog

ตัวอย่าง


ฟังก์ชัน .html() 

ฟังก์ชัน .html() เป็นฟังก์ชัน สำหรับอ่าน/คัดลอกข้อความ html หรือ เปลี่ยนข้อความให้เป็น html ในส่วนที่เลือก เช่น ใน
หรือ ที่กำหนด

ตัวอย่าง การอ่าน/คัดลอกข้อความ

สมมุติว่า มีข้อความต่อไปนี้

<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>

ถ้าต้องการคัดลอกข้อความใน class demo-container เขียนดังนี้
   $( "div.demo-container" ).html();

ผลที่ได้คือ
   <div class="demo-box">Demonstration Box</div>

ทั้งนี้  อาจจะนำไปใส่ไว้ในตัวแปร และเรียกใช้งานภายหลัง เช่น var myHtml = $("div.demo-container").html(); เป็นต้น

หมายเหตุ ถ้า มี class ชื่อเดียวกันนี้ หลายแห่ง jQuery จะเอามาเฉพาะ class แรกเท่านั้น

ตัวอย่าง การเปลี่ยนข้อความ

สมมุติว่า มีข้อความต่อไปนี้

<div class="demo-container">

 <div class="demo-box">Demonstration Box</div>
</div>

เราสามารถเปลี่ยนข้อความภายใน  class demo-container ได้ ดังนี้

$( "div.demo-container" )
     .html( "All new content. You bet!
" );

ผลลัพธ์ที่ได้ คือ

<div class="demo-container">
<p>All new content. <em>You bet!</em></p>
</div>


jQuery ตั้งแต่รุ่น 1.4 เราสามารถใช้ฟังก์ชัน เพื่อเป็นข้อมูลป้อนเข้าใน .html() ได้เลย เช่น



ตัวอย่าง การสร้างลิงค์ภายในด้วย html()

$('#dialog-modal').html("<div style=\"text-align: center;\"><br />เรียบร้อยแล้ว <br />กลับหน้าหลัก <a href=\"http://www.thongjoon.com\">คลิกที่นี่</a></div>").dialog();


ดาวน์โหลดไฟล์ตัวอย่าง คลิกที่นี่



อ้างอิง
http://api.jquery.com/html/