Program Delphi 7 fileProgram Delphi 7 เริ่มต้นกับ Delphi 7 Delphi...
Transcript of Program Delphi 7 fileProgram Delphi 7 เริ่มต้นกับ Delphi 7 Delphi...
Program Delphi 7เรมตนกบ Delphi 7 Delphi เปนผลตภณฑ
ของบรษท Borland (ตอมาไดเปลยนชอเปนInprise โดยยงคงใชชอผลตภณฑวา Borland Delphi เชนเดม) ซงประสบความส าเรจจากการพฒนา Turbo Pascal ซงมชอเสยงโดงดงบน Dos จนกระทงมาเปน Delphi ในปจจบน และ Delphi ไดพฒนามาถงเวอรชน 7 แลว
Delphi เปนโปรแกรมส าหรบพฒนาแอปพลเคชนบน Windows ซงภาษาพนฐานทใชในการเขยนโปรแกรม คอ ภาษา Pascal เปนหลกในการพฒนาโปรแกรม ซงโครงสรางภาษาท เขยนงายวชวลโปรแกรมมง (Visual Programming) การพฒนาโปรแกรมแบบวชวลคอการพฒนาโดยเหนผลทจะเกดขนเมอรนโปรแกรมไดตงแตในขณะทก าลงสราง
โดยน าชนสวนตาง ๆ ทตองการ ไดแก ปม(Button), ขอความ(Label), รปภาพ (Image) ฯลฯ ซงเหลานเรยกโดยรวมๆ วา คอมโพเนนต(Component) น ามาวางบนวนโดวทเรยกวาฟอรม (Form) ปรบขนาดและต าแหนงรวมทงคณสมบตตาง ๆ ของคอมโพเนนต และแมแตฟอรมเองใหไดผลตามทตองการ
การโปรแกรมเชงวตถ (Object Oriented Programming - OOP) การโปรแกรมเชงวตถเปนการพฒนาโปรแกรมโดยการสรางวตถ หรอ ออบเจค (Object) ทตองการ ในมมมองของตววตถเองวาตองการใหมลกษณะเปนอยางไรและสามารถท าอะไรไดบาง แทนทจะมองทการสรางรทน(Routine) หรอโพรซเยอร (Procedure) เปนหลกเชนดงกอน ๆ น ประโยชนทไดกคอ เราสามารถสรางวตถโดยเรมจากวตถทงาย ๆ
สงส าคญในการเขยนโปรแกรมเชงวตถคอ จะตองมความเขาใจเกยวกบโครงสรางของออบเจคและหลกการของ OOP ดงน
โครงสรางของออบเจคออบเจค (Object) ทกๆ ออบเจคจะตองม
โครงสรางดงตอไปน
ชนดของออบเจค ออบเจคแตละออบเจคจะถอวาเปนคนละชนด (Type) กน เมอน าออบเจคไปสรางตอใหเปนออบเจคใหม กจะตองเปนชนดใหมเสมอ หรอเรยกไดวาเปนคนละคลาส (Class) กนนนเอง ชนดของออบเจค ไดแก ออบเจคชนดปมและชนดขอความ เปนตน
คณสมบต หรอเรยกวา “พรอพเพอรต”(Property) หมายถงคณลกษณะของออบเจคแตละตวทสามารถก าหนดใหแตกตางกนไปตามความตองการทตางกน เชน ขนาดและสของปม หรอขอความของออบเจคทแสดงอยบนปม เปนตน
พฤตกรรม หรอเมธอด (Method) คอความสามารถในการท างานของออบเจ คตวอยางเชน การแสดงปม (Show) หรอการซอนปม (Hide) เปนตน
คอมไพเลอรอยางแทจรง
Delphi เปนคอมไพเลอรทใชภาษาโปรแกรมเปนภาษาเครอง ซงหลงจากการคอมไพลโปรแกรมเราจะไดไฟล .exe ซงเกบเปนภาษาเครองนนๆ และสามารถท างานไดเลยโดยไมตองผานขนตอนการแปลภาษาในระหวางการท างานอก ท าใหสามารถท างานไดรวดเรวและไมมขดจ ากด
การเรมใชงาน Delphi 71. คลก Start เลอก Programs2. เลอก Borland Delphi 73. เลอก Delphi
Title bar Menu bar Desktops toolbar
ComponentPalette
หนาตางForm
Speedbar
Object TreeView
ObjectInspector
ไตเตลบาร (Title Bar)เปนสวนทอยบนสด แสดงชอโปรแกรม
Delphi และโปรเจคทท างานอยในขณะนนเมนบาร (Menu Bar)
เมนบารจะเปนสวนทแสดงเมนค าสงของ Delphi ซงใชในการท างานตางๆ เกอบทงหมด เชน เมน File ใชท างานกบแฟมขอมลไมวาจะเปนการเปด ปด หรอการบนทกแฟมขอมลเปนตน
เดสกทอปทลบาร (Desktops toolbar)
เดสกทอปทลบาร เปนคณสมบตใหมใน Delphi ซงจะใชส าหรบการบนทกเลยเอาดของเดสกทอปทงในขณะออกแบบและขณะดบกโปรแกรม ซงกคอต าแหนงของวนโดวตางๆ รวมทงไดอะลอกบอกซทเปดขนมาใน Delphi
โดยสวนของเดสกทอปทลบารนประกอบดวย
สปดบาร (Speed Bar)คอกลมของค าสงทใชบอยซงแสดงอยใตเมน
บารทางดานซายของวนโดวหลก ภายในสปดบารประกอบดวยปมแทนรายการตาง ๆ ของเมน เมอคลกเมาสทปมใดกจะเหมอนกบการเลอกค าสงจากเมน และเมอเลอนเมาสไปหยดทบนปมใดกจะเหน กรอบขอความ (tooltips) แสดงชอเมน และฟงกชนคยซงเปนคยลดส าหรบใชแทนปมนน
คอมโพเนนตพาเลต (Component Palette)คอมโพเนนตพาเลตคอสวนทอยถดจากสปดด
บารไปทางขวา ประกอบดวยคอมโพเนนตส าหรบสรางแอปพลเคชน โดยจดกลมไวในแทปตางๆ คลกทแทปเพอแสดงคอมโพเนนตในแตละกลม และเมอเลอนเมาสไปหยดบนคอมโพเนนตใดกจะปรากฏกรอบขอความแสดงชอคอมโพเนนตนนขน
วนโดวออบเจคอนสเปคเตอร(Object Inspector Window)
วนโดวออบเจคอนสเปคเตอรเปนวนโดวซงอยใตวนโดวหลกทางดานซาย ใชส าหรบแสดงและปรบแตงคาพรอพเพอรต (property) และอเวนต (event) ของคอมโพเนนต
วนโดวออบเจคทรวว(Object Tree View)
วนโดวออบเจคทรววเปนวนโดวซงอยใตวนโดวหลกทางดานซาย ใชส าหรบแสดงฟอรมและ คอมโพเนนตทวางลงบนฟอรม
วนโดวฟอรม (Form Window)ฟอรมเปนวนโดวทใชส าหรบออกแบบสวนท
ตดตอกบผใช โดยการน าคอมโพเนนตตางๆ จากคอมโพเนนตพาเลตมาวางลงบนฟอรมเมอรนเปดโปรแกรม Delphi ขนมาหรอสรางแอปพลเคชนใหม Delphi จะสรางฟอรมใหหนงฟอรมเสมอ ในแอปพลเคชนหนงๆ จะประกอบดวยฟอรมอยางนอยหนงฟอรมเสมอ
วนโดวโคตเอดเตอร (Code Editor Window)วนโดว โค ด เอด เ ตอรม ไ วส าหรบ เข ยน
โปรแกรม โดยอาจจะถกบงอยใตฟอรม เมอเลอนวนโดวฟอรมออกไปหรอคลกทปม Minimize ของฟอรม จะเหนวนโดวโคดเอดเตอรปรากฏขนภายในวนโดวโคดเอดเตอร จะประกอบดวยสวนตางๆ ดงตอไปน
การสรางแอพพลเคชนใหม (NewApplication)
คลกเมน File >New Appliction
จะไดฟอรมเปลาขนมาหนงฟอรมพรอมกบโปรเจคใหม แอปพลเคชนทสรางใหมน สามารถรนไดทนทแมวายงไมไดวางคอมโพเนนตใดๆ เลย
ทดสอบการรนแอปพลเคชนใหมไดโดยการเลอกเมน Run >Run และปดแอปพลเคชนทรนอยไดโดยคลกปม Close ()
Standard Component คอมโพเนนตพนฐานทใชในการสรางสวนตดตอกบผใช
Label ใชส าหรบแสดงขอความ
Edit ใชแสดงขอความทละบรรทด ท ผใชสามารถแกไขขอความนนได
Meno มลกษณะเหมอน Edit แต สามารถแสดงไดหลายบรรทด
Button ใชสรางปมพนฐานทวไป
Check Box ใชส าหรบงานทตองการ แสดงตวเลอกใหเลอก ซง
สามารถเลอกไดหลาย ๆ ตวเลอกพรอมกน
Radio Button เหมอน Check Box แต สามารถเลอกไดเพยง 1 ตวเลอกในกลมเดยวกน
List Box ใชส าหรบแสดงขอมลทเปน รายการใหเลอก
Combo Box เปนคอมโพเนนตทผสม ลกษณะของ Edit กบ List Box
Scrollbar เปนคอมโพเนนตทใชแสดง ชวงการเพมขนหรอลดลง
Group Box ใชส าหรบแบงแยกกลมทอยบนฟอรม
Radio Group สราง Radio Button ทอยใน Group Box
Panel ใชในการจดกลมใหคอมโพเนนตในอกรปแบบหนง
การสลบระหวางหนาตางฟอรมกบ Code Edit ในการสรางแอปพลเคชนใด ๆ จะตองมการ
ท างานกบฟอรมและตองเขยนโคตท Code Edit ดงนนถาเราตองการสลบการท างานของสวนนสามารถท าไดดงน
- เลอก Toggle Form/Unit จากเมน View หรอคลก
ไฟลตาง ๆ ในโปรเจค • Project File (.dpr) เปนไฟลทรวบรวมรายละเอยดของโปรเจค วาประกอบดวยฟอรมหรอ ยนตอะไรบางนอกจากนยงท าหนาสรางฟอรมและเรยกฟอรมของแอปพลเคชนขนมาท างานอกดวย ในแอปพลเคชนหนง ๆ จะมโปรเจคไฟลเพยงไฟลเดยว โดยมนามสกลเปน .dpr
แสดงโคดของโปรเจคไฟล
Unit File (.pas) เปนไฟลทเกบ Source Code โปรแกรมเชน รายละเอยดของตวแปร คาคงท ชนดของขอมล โพซเยอรและฟงกชนUnit ไฟลส าหรบฟอรมunit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;typeTForm1 = class(TForm)
private{ Private declarations }
public{ Public declarations }
end;varForm1: TForm1;
implementation{$R *.dfm}end.
Type เปนสวนทใชส าหรบประกาศชนดขอมล โดยมการประกาศให Tform1 เปนคลาส )ชนดของออบเจค) ทสบทอดคณสมบตจากออบเจค Tform และภายในคลาสมการก าหนดขอบเขตของคลาสดวยค าวา private และ public โดยค าวา private หมายถงสงตาง ๆ ทประกาศไวในสวนน จะเปนทรจกและใชงานไดเฉพาะภายในคลาสนสวนค าวา public หมายถงสงทประกาศไวในสวนนจะเปนทรจกและใชงานไดทงภายในคลาสนและทอน ๆ ดวย
{$R *.DFM} เปนค าสงส าหรบคอมไพเลอร (compile directive)
โดยเครองหมาย $ แสดงวาเปนคอมไพเลอรไดเรคทฟ และ R คอ ค าสงทบอกใหรวมเอา Resource จากไฟลของฟอรมซงมชอเดยวกบยนตแตมนามสกลบเปน .dmf เขามาดวย
Var เปนการประกาศตวแปร Form1 ใหมชนดขอมลเปนออบเจค Tform1 โดยชอตวแปรนไดมาจากคาพรอพเพอรต Name ของฟอรมนนเอง
• Form File ในมมมองแบบ TextForm File (.dfm) เกบรายละเอยดของฟอรมและออบเจคตาง ๆ ทอยบนForm เมอเราบนทกโปรเจค Delphi จะสรางไฟลนใหโดยจะมชอเหมอนกบยนต แตนามสกลเปน .dmf
• Resource File (.res) เกบรายละเอยดของรปภาพและ ไอคอนทใชในแอปพลเคชน• Project Group File (.bpg) เกบรวบรวมรายการโปรเจคทก าหนดไวใหอยในโปรเจคกลมเดยวกนนอกจากการสงงานโดยใช Menu และ Speed bar แลวเรายงใชฟงชนคยเพอชวยใหท างานไดรวดเรว
F1 ขอความชวยเหลอF7,8 ใชส าหรบตรวจสอบล าดบการท างาน
ของโปรแกรมเพอหาจดผดพลาดF9 สงรนโปรแกรมF11 เปดวนโดวของ Object Inspector เพอ
ก าหนดคาของ ObjectF12 สลบวนโดวระหวาง Form Window
กบ Editor Window เพอเขยนและออกแบบฟอรม
การเขยนหมายเหตหรอค าอธบายการท างานของโปรแกรม(comment)
ใสหมายเหตไวหลงเครองหมาย // โดยขอความทงหมดในบรรทดทอยตอจากเครองหมาย//จะเปน หมายเหต ตวอยางเชนprocedure TForm1.Button1Click(Sender: TObject);begin
edit1.Text:='Hello'; // Assigns a value to Edit1end; //สนสดโปรแกรมใช
การก าหนดให Editor Window สามารถปอนภาษาไทยได โดยใชเมน Tool/Editor Option…. คลกท Display Tab แลวเลอก Editor Font เปน FixedSys ตามรป
ชนดขอมล (Data Type) ชนดขอมลใน Pascal มมากมายหลายชนด ดงนนกอนทเราจะก าหนดวาใชขอมลชนดใดเราควรจะทราบขอบเขตของแตละชนดขอมลกอน ในทนจะกลาวเฉพาะชนดทนยมใช
ชนดขอมล(Data Type)
ขอบเขตของขอมล(Range) ใชพนท(Byte)
- Integer - 2147483648…2147483647 4
- Real 5.0x10-324…1.7x10308 8
- Char ใชเกบอกขระ 1
- String ใชเกบอกขระตงแต 1 อกขระขนไป
ขนกบการ
ประกาศคา
- Variant
การตงชอตวแปร1. ควรตงชอตวแปรใหสอกบงานทใช เชน mak, cost
แทนทจะตงชอ a, b ซงจะไมไดความหมาย2. ชอตวแปรสามารถใช A–Z, a–z, 0–9 และ
เครองหมายขดลาง (_) ส าหรบตวอกษรพเศษไมสามารถใชได เชน @, % ฯลฯ
3. หามเวนวรรค
4. หามใชค าสงวน (reserved word) ซงจะสงเกตได ว า ถ า เ ป นค าส งวน เ ม อท า ก าร เข ยนโปรแกรมค านนๆ จะเปนตวหนาและไมควรใชชอตรงกบชอทมอยใน Delphi ทไมเปนค าสงวน เชน Integer, real ซงชอพวกนเมอท าการก าหนดจะไมเกด Error แตจะท าใหสบสน
5. ชอตวแปรสามารถมความยาวตงแต 1 ถง 63 ตวอกษร ซงถาตงชอตวแปรเกน 63 ตว การประมวลผลจะสนใจแค 63 ตวแรกเทานน
6. ตวอกษรพมพใหญ พมพเลกถอวาเหมอนกน เชน A3 กบ a3 ถอวาเปนชอเดยวกน
การประกาศตวแปร
กอนทจะมการใชตวแปรใด ๆ ตองท าการประกาศตวแปรกอนใน Delphi จะใชค าวา Varเปนตวบอกวาก าลงจะท าการประกาศตวแปรโดยมรปแบบดงน
Varชอตวแปร : ชนดขอมล ;
เชนVar
Firstname : string[50];num1, num2 : interger;
ตวด าเนนการ (Operator) ตวด าเนนการทางคณตศาสตร+ บวก เชน 5+2 ไดผลลพธ 7- บวก เชน 5-2 ไดผลลพธ 3 * บวก เชน 5*2 ไดผลลพธ 10 / บวก เชน 5/2 ไดผลลพธ 2.5Div หารผลลพธเอาเฉพาะจ านวนเตม (ไมเอาเศษจากการหาร)
เชน 5 Div 2 ไดผลลพธ 2Mod หารผลลพธเอาเฉพาะจ านวนเตม (ไมเอาเศษจากการหาร)
เชน 5 Mod 2 ไดผลลพธ 1
ตวด าเนนการทางการเปรยบเทยบ= เทากบ< > ไมเทากบ> มากกวา< นอยกวา>= มากกวาหรอเทากบ<= นอยกวาหรอเทากบ
ตวด าเนนการทางตรรกะAnd, Or, Not, xor
1. Align left edges จดขอความดานซายของทกคอมโพเนนตตรงกบขอบดานซายของคอมโพเนนตตวแรกทเลอก
2. Align tops จดใหขอบดานบนของคอมโพเนนตตรงกบขอบดานบนของคอมโพเนนตตวแรกทเลอก
3. Align horizontal centers ปรบต าแตงในแนวนอนใหกงกลางตรงกน
4. Align vertical centers ปรบต าแหนงในแนวตงใหกงกลางตรงกน5. Center horizontally in Window จดใหคอมโพเนนตทกตวอย
กงกลางวนโดวในแนวนอน
1 2 3 4 5
6. Center vertically in Window จดใหคอมโพเนนตทกตวอยกงกลางวนโดวในแนวตง
7. Space equally horizontally ปรบระยะหางระหวางคอมโพเนนตในแนวนอนใหมระยะหางเทากน
8. Space equally vertically ปรบระยะหางระหวางคอมโพเนนตในแนวตงใหมระยะหางเทากน
9. Align right edges จดขอความดานขวาของทกคอมโพเนนตตรงกบขอบดานขวาของคอมโพเนนตตวแรกทเลอก
10. Align Bottoms จดใหขอบดานลางของคอมโพเนนตตรงกบขอบดานลางของคอมโพเนนตตวแรกทเลอก
6 7 8 9 10
กฎการใหคะแนนในชวโมงสอน
• ท าลงเครองรนออกเรยกตรวจใหคะแนน• เมอรนออกจดค าสงทท าในเครอง ลงในสมดทกคาบทสอนใหคะแนน
ท าไดทกชวโมงไมตองลงรเกรด