thongkorn โพสต์ 2017-12-23 15:34:42

[VB6] Project Firenze Label การทำป้าย Label Control ธรรมดาที่ไม่ธรรมดา

http://www.g2gnet.com/webboard/images/vb6/FirenzeLabel.png

http://www.g2gnet.com/webboard/images/vb6/FirenzeLabelRun.png

นี่คือมนต์เสน่ห์ของ Microsoft Visual Basic 6.0 (1998) ที่แอดมินยากจะตัดใจให้ลืมได้ลง 5555+ ... วันนี้แอดมินเลยมาขอนำเสนอในภาคภาษาไทยถึงกระบวนการขั้นตอนและวิธีการใช้การทำให้ได้รับรู้กัน อันดับแรกก็ต้องให้เครดิตกับลิ้งค์ต้นฉบับก่อนครับ FIRENZE LABEL - label control with so many functions เผื่อสำหรับบางท่านที่อาจจะขี้เกียจอ่านภาษาไทย ก็สามารถเข้าไปอ่าน English ได้โดยตรงทันทีเลยครับ แหะๆๆๆ ...

ดาวน์โหลดโค้ดต้นฉบับตัวอย่าง VB6 (Matt)

ดาวน์โหลด Cairo Graphics and vbRichClient-Framework (Martin Vartiak)

ดาวน์โหลด Windows font FontAwesome (สำหรับแสดงผลไอคอนจากฟอนต์ แทนการใช้ไฟล์ Images) ... เมื่อแตกไฟล์ออกมาเรียบร้อย ให้ Copy ไฟล์ FontAwesome.OTF ไปเก็บไว้ที่ C:\Windows\Fonts ...

สำหรับ vbRichClient หลังจากที่แตกไฟล์ออกมาเรียบร้อยแล้ว ให้เลือกไฟล์ที่เลือกทั้งหมด (ตามภาพ) ทำการ Copy ไปไว้ที่ C:\Windows\SysWOW64 (กรณี Windows 64 Bit) หรือ C:\Windows\System32 (กรณี Windows 32 Bit)
http://www.g2gnet.com/webboard/images/vb6/RC5.png

ให้ดับเบิ้ลคลิ๊กไฟล์ VBScript ชื่อ RegisterRC5inPlace.vbs เพื่อทำการ Register เข้าสู่ระบบ ... ต้องทำก่อนใช้งานในครั้งแรกครับผม
http://www.g2gnet.com/webboard/images/vb6/RC5Register.png

สำหรับ vbWidgets หากคุณต้องการใช้งานด้วย ก็ทำเช่นเดียวกันกับ vbRichClient โดยการรีจีสเตอร์ด้วย VBScript โดยมีชื่อไฟล์ RegisterVBWidgetsInPlace.vbs

เริ่มต้นการสร้างโปรเจค VB6 ...
http://www.g2gnet.com/webboard/images/vb6/KaroRef.png
ไปที่เมนู Project --> References ... เลือก vbRichClient5.dll และ vbScript.dll ตามภาพด้านบน

มาที่ Project ...
http://www.g2gnet.com/webboard/images/vb6/KaroProp.png
ให้ Add Module ที่มีชื่อว่า modMousePositions.bas และ User Control ที่มีชื่อว่า FirenzeLabel.ctl ซึ่งทั้ง 2 ไฟล์นี้จะอยู่ในไฟล์ตัวอย่างของเจ้าของผลงาน หรือ คลิ๊กดาวน์โหลดที่นี่ (อย่าลืม Save As เพื่อเก็บเอาไว้ในโปรเจคของตัวเองด้วยล่ะครับ)

Design Time ...
http://www.g2gnet.com/webboard/images/vb6/KaroDesign.png
คลิ๊กเลือกแล้วไปกวาดลงบนฟอร์ม

http://www.g2gnet.com/webboard/images/vb6/KaroDesignProp1.png
การกำหนดคุณสมบัติ (Properties) ในส่วนที่สำคัญหลักๆ ที่เหลือก็ดูจากโค้ดที่แอดมินทำเป็นตัวอย่างง่ายๆไว้นะครับผม ...
เช่น สังเกตว่า karo3 Control เอาไปวางแปะไว้บน karo2 ดังนั้นเวลาเกิดการคลิ๊กเมาส์ ทั้ง 2 ส่วนจะเกิดความสัมพันธ์กัน เราจึงกำหนดให้คุณสมบัติของ karo3 ให้มี ParentControl อยู่บน karo2 ... ส่วนที่เหลือก็ลองเล่นลองศึกษากันดูเอาเองเพิ่มเติมล่ะกันครับ ...

http://www.g2gnet.com/webboard/images/vb6/FirenzeLabelProp.png

โค้ดตัวอย่างง่ายๆ ...
Option Explicit

Private Sub Form_Load()
    karo1.Picture = App.Path & "\img\me.jpg"
End Sub

Private Sub karo2_Click()
    Unload Me
End Sub

Private Sub karo2_MouseEnter()
    karo2.BackColor = &HA7CE33
End Sub

Private Sub karo2_MouseLeave()
    karo2.BackColor = &H80FF&
End Sub
สั่งรันโปรแกรม ...
http://www.g2gnet.com/webboard/images/vb6/KaroRun.png

Addition: ...
การใช้งานไอคอนจาก Font Awesome สามารถดู Icon Reference ได้จาก Cheat Sheet ... ให้ดูค่ารหัสเลขฐาน 16 ของไอคอนแต่ละตัวอยู่ทางด้านขวาสุดใน Sheet เช่น F2BC ซึ่งหากเรานำมาใช้งานบน VB6 ก็จะกลับสลับค่าที่คู่กันกันเป็น BCF2 แทนนะครับผม ...
ค่า F2 และ BC เป็นเลขฐาน 16 มีขนาด 8 บิท (แต่ละหลักมีค่า 4 บิท) เวลาเรากระจายเลขฐาน 2 (Binary) จะได้ดังนี้ คือ
F2 = 1111 0010 = 242 (ฐาน 10)
BC = 1011 1100 = 188 (ฐาน 10)
http://www.g2gnet.com/webboard/images/vb6/FirenzeLabelFont.png

ดาวน์โหลดโค้ดต้นฉบับตัวอย่าง VB6 ได้ที่นี่

exzajung โพสต์ 2017-12-23 17:15:44

มีของเล่นมาตลอดเลยครับ
หน้า: [1]
ดูในรูปแบบกติ: [VB6] Project Firenze Label การทำป้าย Label Control ธรรมดาที่ไม่ธรรมดา