สวัสดีครับทุกท่านที่เป็นสมาชิกของเว็บ
Sourcecode in Thailand และทุกท่านที่ยังไม่ได้เป็นสมาชิกของเรา ก่อนอื่นผมก็คงต้องออกตัวก่อนนะครับ
ว่าผมศึกษาเรื่อง ของ ActiveX โดยวิธีอ่าน และ หา code มาทดลอง Run เอาเองนะครับ
ยังไม่เคยได้รับการศึกษา หรือ อบรม จากที่ใดทั้งสิ้น แต่ผมเห็นว่ามันมีประโยชน์
สำหรับผู้ที่กำลังหาวิธีการ เขียนโปรแกรมบนอินเตอร์เน็ต รวมทั้งผู้ที่กำลังมองหาโปรเจ็ก
ในบทความนี้ผมได้จะได้กล่าวถึง ActiveForm
ซึ่งเป็น โปรเจ็คนึงใน Delphi ที่เราสามารถสร้างขึ้นได้ สำหรับผู้ที่เคยเล่น
Visual Basic ก็จะมี โปรเจ็ค ActiveX Control ที่จะเป็นการสร้าง Control
ให้รองรับกับเทคโนโลยี ActiveX ซึ่งสามารถ Run อยู่บน Web Browser ได้ ซึ่ง
ActiveForm ของ Delphi ก็เป็นเช่นนั้นเหมือนกันครับ แต่จะมีความยากในการพัฒนามากกว่า
แต่ใช่ว่า Delphi จะไม่มีข้อดีเลยนะครับ ข้อดี(ในหลายข้อ)ของ Delphi ที่เข้ามาทดแทนความยาก
(เมื่อเทียบกับ Visaul Basic) ที่เราต้องศึกษาก็คือ Delphi จะมี Component
มากให้เราอย่างมากมาย ยิ่ง Control ในกลุ่มของ Indy ยิ่งถูกใจผมมาก มันช่วยลดเวลา
ในการพัฒนาของผมไปได้แยะเลยครับ
ที่พูดทั้งหมด ไม่ใช่ว่าจะแนะให้คนเล่น
Delphi กะ VB ตีกันนะครับ(555) เพราะผมเคยเล่น vb มาก่อน ก็รู้ว่า vb มันมีข้อดีข้อเสีย
อย่างไร และพอได้มาจับ Delphi ก็หลงเสน่ห์ จนถอนตัวไม่ขึ้น(เว่อร์ซะ) เพราะฉะนั้น
ก็อยากแนะว่า เล่นมันทั้งสองตัวไปเลย เวลาทำงาน ก็พิจารณาเลือกตัวที่เหมาะกับงานของเราแล้วกันครับ
:-)
ร่ายยาวมาซะนานเลย คงมีการเบื่อการบ่นกันไปบ้างแล้ว
เรามาเริ่มขั้นตอนการสร้าง ActiveForm กันเลยดีกว่าครับ
เปิดโปรแกรม Delphi แล้วเลือก File->New->Other
จาก menu หลังจากนั้นให้เลือกสร้าง โปรเจ็ค ActiveForm จาก tab ActiveX ดังรูป

หลังจากนั้น จะปรากฏหน้าต่าง ดังรูปด้านล่าง
ให้คุณทำการป้อน scActiveForm ลงในช่อง New ActiveForm และให้คลิกเลือกในช่อง
Include About Box เพื่อให้โปรแกรมเพิ่ม ฟอร์ม About ให้กับ ActiveForm นี้ด้วย

ให้ทำการคลิกปุ่ม OK จะมีการแจ้งเตือนขึ้นมา
ก็ให้คลิก OK อีกครั้ง ,Delphi จะทำการสร้าง ActiveForm ให้โดยมีฟอร์ม About
ที่เราเลือกมาให้ด้วย หลังจากนั้นให้ทำการบันทึกโปรเจ็ก
Type Library
ตอนนี้ก็ต้องขออธิบายกันก่อน ว่า โค้ดที่
Delphi สร้างขึ้นให้นั้นจะมีทั้ง Form ที่ Delphi แปลงให้เป็น Active Form
(ActiveX Control) แล้ว และ ฟอร์ม About ซึ่งเป็นฟอร์มธรรมดาที่เราเลือกให้เพิ่มเข้ามา
งานนี้ให้คุณทำการคลิกเลือกที่เมนู
View->Type Library จะปรากฎหน้าต่างดังรูป
ให้คุณคลิกขยายโหนด IscActiveForm
ออกมา จะเห็นได้มี Method และ Property ของ ActiveForm รวมทั้ง Method ที่ชื่อ
Aboutbox ด้วย
ในส่วนของ IscActiveForm นี้จะเป็น
Interface(ผมจะไม่ขออธิบายเรื่อง Interface นะครับเพราะมันยาวไป เอาเป็นว่าให้เข้าใจว่า
Interface เป็นส่วนที่ติดต่อ ที่ทำให้เราสามารถเรียกใช้ Method และ Property
ได้) ซึ่งเราสามารถสร้าง Method และ Property เข้า ไปได้ (อันนี้ผมจะนำมาเขียนในบทความหน้า)
ตอนนี้ก็ให้ดูในส่วนของ Method ที่ชื่อ
AboutBox ซึ่งจะมีโค้ดดังนี้
procedure TscActiveForm.AboutBox;
begin
ShowscActiveFormAbout;
end;
จากโค้ด จะเห็นได้เป็นการเรียกใช้
Method ShowscActiveFormAbout ซึ่งอยู่ใน Unit About1 ซึ่งมีโค้ดดังนี้
procedure ShowscActiveFormAbout;
begin
with TscActiveFormAbout.Create(nil) do
try
ShowModal;
finally
Free;
end;
end;
จะเห็นได้ว่าโค้ดข้างต้นเป็นการสร้างฟอร์ม
About แล้วให้ทำการแสดงแบบ Modal (การแสดงฟอร์ม ที่ไม่สามารถใช้งานฟอร์มอื่นได้
นอกจากจะใช้ฟอร์มที่เราสั่งให้แสดงแบบ Modal เท่านั้น) และเมื่อเรา ทำการคลิกปิดฟอร์มดังกล่าว
โปรแกรมก็จะทำการ Free (ทำลาย และคืนหน่วยความจำ)ฟอร์ม ที่ได้สร้างขึ้น
ต่อไปก็จะเป็นการ Compile และ วิธีการ
Run ActiveForm ที่เราสร้างขึ้น
Web Deploy
ในขั้นตอนนี้จะเป็นการ Compile และ
สร้างไฟล์ 2 ตัวด้วยกัน ซึ่งก็คือ ไฟล์โปรเจ็ค ของเรา และ ไฟล์ Htm ที่จะเรียกใช้,
ก่อนอื่นเราจำเป็นจะต้อง Set ค่าต่างๆ ของ Web Deploy โดยเลือกจากเมนู Project->Web
Deployment Options แล้วให้กำหนดค่าต่างๆดังรูป และให้คลิกเลือก Use CAB
file compression ด้วยครับ
การกำหนดข้างต้น เป็นการกำหนดให้ทำการบอกให้โปรแกรมสร้างไฟล์ที่ได้
ไว้ใน Path ที่เราทำการ บันทึกโปรแกรมไว้ แล้วคลิกปุ่ม ok
หลังจากนั้น ให้คุณทำการเลือก Project->Web
Deploy จาก เมนู เพื่อสร้างไฟล์ .cab และ .htm เมื่อผ่านขั้นตอนนี้เราจะได้ไฟล์
2 ไฟล์ คือ scActiveFormProj1.cab และ scActiveFormProj1.htm
Set IE Security
ก่อนการ Run บน IE เราจำเป็นจะต้อง
Set Security ให้สามารถเปิด ActiveX Control ที่เราสร้างขึ้นได้ (ในที่นี้ผมใช้
IE เป็น Web Browser) โดยให้คุณเลือก Tools->Internet Options จะปรากฏหน้าต่าง
Internet Options ให้เลือก tab Security และเลือก content zone เป็น Local
Intranet , คลิกปุ่ม custom Level จะปรากฏหน้าต่าง Security Setting ให้เลือก
Enable ที่หัวข้อ Download unsigned AcitveX controls ,คลิก OK และ Yes เพื่อยืนยัน
ดังรูป
การ Set ดังกล่าวจะทำให้ IE สามารถ
Downlod ActiveForm(ActiveX Control) ที่เราสร้างขึ้น และ ทำงานต่างๆตามที่เราเขียนโปรแกรมไว้ได้
ตอนนี้ ก็ให้คุณใช้ IE เปิดไฟล์ scActiveFormProj1.htm
จะได้ผลดังรูป
จะเห็นว่า IE สามารถแสดง ActiveForm
ได้ หากคุณทำการวางปุ่ม หรือ control อื่นๆไว้บนฟอร์ม แล้วเขียนการทำงานต่างๆไว้
แล้วทำการ Deploy เราก็จะได้โปรแกรมที่สามารถ run บนอินเตอร์เน็ตได้เลยครับ
AboutBox
เอาหละครับ ต่อไปเราก็จะมาเรียกใช้
Method AboutBox โดยให้คุณทำการ copy ไฟล์ scActiveFormProj1.htm แล้วเปลี่ยนชื่อไฟล์ตัวที่ได้
เป็น scTest.htm หลังจากนั้นให้ใช้ Text Editor ต่างๆ เปิด ไฟล์ scTest.htm
แล้วแก้ไข และเพิ่ม โค้ดลงไป เสร็จแล้วทำการบันทึก
<HTML> <H1> Delphi 6 ActiveX Test Page </H1><p> You should see your Delphi 6 forms or controls embedded in the form below. <HR><center><P> <OBJECT NAME="scObject" classid="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" codebase="./scActiveFormProj1.cab#version=1,0,0,0" width=365 height=223 align=center hspace=0 vspace=0 > </OBJECT>
<Script VBSCRIPT>
scObject.AboutBox();
</Script> </HTML>
แล้ว ใช้ IE เปิดไฟล์ scText.htm จะได้ผลดังรูป
ทิ้งท้าย
วิธีการใช้งาน ActiveForm จริงๆบน
อินเตอร์เน็ตจำเป็นจะต้องศึกษาถึงเรื่องของการ Signing ActiveX Control ซึ่งจะเป็นการยืนยันว่า
ActiveX Control นั้นมีความน่าเชื่อถือ ก่อนที่ผู้ใช้จะทำการ Download มา
Run บนเครื่อง
การ Run ActiveX Control ค่อนข้างจะเป็นเรื่องทีต้องพิจารณาเรื่องความน่าเชื่อถือมาก
เพราะว่า ผู้พัฒนาสามารถที่จะเขียน ActiveX Control ให้ทำงานที่เป็นอันตรายต่อเครื่องที่ลงได้เช่น
Format เครื่อง ,แอบดูข้อความ เมล์ หรือ รหัสผ่านอื่นๆ อันนี้ผมไม่ได้แนะนำให้ทำในสิ่งที่ไม่ดีนะครับ
แต่ ถ้ามองในอีกแง่ มันก็มีประโยชน์ ในการสร้างสรรค์สิ่งดีๆ ได้เช่นกัน แล้วพบกันกับบทความหน้ากับ
9'M |