ส่วนประกอบสำหรับการแสดงข้อมูลกราฟิกในเดลฟี การนำเสนอในหัวข้อ "การแสดงข้อมูลกราฟิกใน Delphi" ข้อมูลโดยย่อจากทฤษฎี
การทำงานกับกราฟิกใน Delphi ไม่ใช่แค่เส้นและภาพวาดเท่านั้น แต่ยังรวมถึงการพิมพ์ด้วย เอกสารข้อความ. ดังนั้นใน เดลฟีในที่ทำงานพร้อมกราฟิกคุณต้องใช้เวลาสักหน่อย ทำงานกับ กราฟิกใน Delphiเกี่ยวข้องกับการเข้าถึงแคนวาส - คุณสมบัติแคนวาสของส่วนประกอบ แคนวาส เดลฟีนี่คือผืนผ้าใบที่ช่วยให้โปรแกรมเมอร์สามารถเข้าถึงแต่ละจุด (พิกเซล) และแสดงสิ่งที่จำเป็นเช่นเดียวกับศิลปิน แน่นอนว่าต้องวาดทีละพิกเซลเพื่อ การทำงานกับกราฟิกไม่จำเป็นใน Delphi ระบบ Delphi มอบพลังอันทรงพลัง เครื่องมือกราฟิกทำให้งานของโปรแกรมเมอร์ง่ายขึ้น
เมื่อทำงานกับกราฟิกใน Delphi โปรแกรมเมอร์จะมีโครงร่าง (ผืนผ้าใบ, ผืนผ้าใบ - คุณสมบัติ) ผ้าใบส่วนประกอบเดลฟี) ดินสอ (คุณสมบัติ ปากกา) แปรง (คุณสมบัติแปรง) ของส่วนประกอบหรือวัตถุที่คุณควรทาสี ที่ดินสอ ปากกาและแปรง แปรงคุณสามารถเปลี่ยนสี (คุณสมบัติสี) และสไตล์ (คุณสมบัติสไตล์) การเข้าถึงแบบอักษรมีให้โดยคุณสมบัติ canvas แบบอักษร. เครื่องมือเหล่านี้ช่วยให้คุณสามารถแสดงทั้งข้อความและกราฟที่ค่อนข้างซับซ้อนของเนื้อหาทางคณิตศาสตร์และวิศวกรรมตลอดจนภาพวาด นอกจาก, การทำงานกับกราฟิกอนุญาตให้คุณใช้ทรัพยากรดังกล่าวใน Delphi หน้าต่างเช่นไฟล์กราฟิกและวิดีโอ
แน่นอนว่าไม่ใช่ทุกองค์ประกอบใน Delphi จะมีคุณสมบัติเหล่านี้ บนแท็บ เพิ่มเติมมีส่วนประกอบเฉพาะอยู่ ทีอิมเมจออกแบบมาโดยเฉพาะสำหรับการวาดภาพแต่ยังรวมถึงคุณสมบัติด้วย ผ้าใบมี ตัวอย่างเช่น ส่วนประกอบเช่น ListBox, ComboBox, StringGrid รวมถึงตัวแบบฟอร์มเองซึ่งวางส่วนประกอบของเรา! นอกจากนี้ ในการพิมพ์เอกสาร Delphi ยังเข้าถึงคุณสมบัติ Canvas ของวัตถุ เช่น เครื่องพิมพ์
คุณสมบัติหลักของวัตถุเช่น Canvas Delphi คือ พิกเซลพิมพ์ ทีคัลเลอร์นั่นคือเป็นอาร์เรย์สองมิติของจุด (พิกเซล) ที่ระบุด้วยสี การวาดภาพบนผืนผ้าใบเกิดขึ้นในขณะที่กำหนดสีให้กับจุดใดๆ บนผืนผ้าใบ แต่ละพิกเซลสามารถกำหนดได้สำหรับ สีของหน้าต่าง. เช่น การดำเนินการตามคำสั่ง
Image1.Canvas.Pixels:=clRed;
จะส่งผลให้วาดจุดสีแดงพร้อมพิกัด คุณสามารถค้นหาสีของพิกเซลได้โดยการกำหนดแบบผกผัน:
สี:=รูปภาพ1.ผ้าใบพิกเซล;
พิมพ์ ทีคัลเลอร์กำหนดเป็นจำนวนเต็มยาว (LongInt) ไบต์สี่ไบต์ประกอบด้วยข้อมูลเกี่ยวกับสัดส่วนของสีน้ำเงิน (B) สีเขียว (G) และสีแดง (R) ในระบบเลขฐานสิบหก ดูเหมือนว่า: $00BBGGRR. สัดส่วนของแต่ละสีอาจแตกต่างกันได้ตั้งแต่ 0 ถึง 255 ดังนั้น เพื่อที่จะแสดงจุดสีแดงสูงสุด จึงจำเป็นต้องกำหนด สี $000000FF.
สำหรับสีมาตรฐานใน Delphi จะมีการกำหนดชุดค่าคงที่ของข้อความ คุณสามารถดูได้โดยการเปิดคุณสมบัติ สี เช่น ของแบบฟอร์มเดียวกันในตัวตรวจสอบวัตถุ
ตารางต่อไปนี้มีคุณสมบัติและวิธีการของแคนวาส:
ขั้นตอน TextOut (X, Y: จำนวนเต็ม; ค่าคงที่ข้อความ: WideString); สร้างเอาต์พุตสตริง ข้อความเริ่มต้นจาก (X, Y) - พิกเซลซ้ายบนของข้อความ |
คุณสมบัติข้อความกว้าง( varข้อความ: สตริง): จำนวนเต็ม; ประกอบด้วยความยาวของสตริง ข้อความเป็นพิกเซล |
คุณสมบัติข้อความความสูง( varข้อความ: สตริง): จำนวนเต็ม; ประกอบด้วยความสูงของเส้น ข้อความเป็นพิกเซล |
ขั้นตอน MoveTo(X, Y: จำนวนเต็ม); ย้ายตำแหน่งไปที่พิกเซลพร้อมที่อยู่ (X, Y) |
ขั้นตอน LineTo(X, Y: Integer); ลากเส้นตรงจากจุดของตำแหน่งปัจจุบันไปยังพิกเซลด้วยที่อยู่ (X, Y) ที่อยู่ (X, Y) จะกลายเป็นจุดของตำแหน่งปัจจุบัน |
ขั้นตอน FillRect( ค่าคงที่สี่เหลี่ยมผืนผ้า: TRect); เติมสี่เหลี่ยม สี่เหลี่ยมผืนผ้าบนผืนผ้าใบโดยใช้แปรงปัจจุบัน สามารถใช้เหนือสิ่งอื่นใดเพื่อลบส่วนหนึ่งของรูปภาพบนผืนผ้าใบ |
มาเขียนแอปพลิเคชันสำหรับรูปภาพบนแคนวาสส่วนประกอบโดยใช้วิธีแคนวาสเหล่านี้เท่านั้น ภาพข้อความที่ป้อนลงในส่วนประกอบ บันทึก:
สิ่งแรกที่เราจะทำคือเตรียมใช้งานตัวแปรเมื่อโปรแกรมเริ่มทำงาน มีความจำเป็นต้องกำหนดขนาดของพื้นที่วาดภาพ (เราจะสร้างตัวแปรสากล Rect ประเภท TRect สำหรับสิ่งนี้) และตั้งค่าสีพื้นหลัง ภาพสีขาว:
ขั้นตอน TForm1.FormCreate (ผู้ส่ง: TObject);
เริ่ม
สี่เหลี่ยมผืนผ้าซ้าย:=0;
สี่เหลี่ยมผืนผ้าด้านบน:=0;
Rect.Right:=Image1.Width;
สี่เหลี่ยมผืนผ้าด้านล่าง:=Image1.Height;
Image1.Canvas.Brush.Color:=clWhite;
จบ;
จากนั้นวาดกรอบด้านข้างของภาพ:
ขั้นตอน TForm1.เพจ;
เริ่ม
กับ Image1.ผ้าใบ ทำ
เริ่ม
ย้ายไป(0, 0);
LineTo(Image1.Width-1, 0);
LineTo(Image1.Width-1, Image1.Height-1);
LineTo(0, Image1.Height-1);
เส้นถึง(0, 0);
จบ;
จบ;
มาลองดูว่าเกิดอะไรขึ้น ใช้งานได้ทุกอย่างแต่ยังไม่แสดงเฟรม ดังนั้นเรามาเพิ่มขั้นตอนกัน หน้าหนังสือในขั้นตอน สร้างแบบฟอร์ม. ตอนนี้ก็สวยแล้ว ต่อไปเราจะเขียน ขั้นตอนง่ายๆการลบล้างภาพ จะต้องถูกเรียกก่อนการอัปเดตรูปภาพใดๆ ไม่เช่นนั้นรูปภาพก่อนหน้าและถัดไปจะทับซ้อนกัน
ขั้นตอน TForm1.การหักล้าง;
เริ่ม
Image1.Canvas.FillRect(Rect); //สี่เหลี่ยมผืนผ้า สี่เหลี่ยมผืนผ้าเต็มไปด้วยสีขาวและภาพถูกลบ
จบ;
ตอนนี้ถึงคราวของขั้นตอนการส่งออกข้อความแล้ว มาเริ่มวาดข้อความจากจุด (3, 3) - มุมซ้ายบนของแผ่นงานโดยมีการเยื้องเล็กน้อย 3 พิกเซล แต่ละบรรทัดต่อมาจะถูกชดเชยด้วยความสูงของบรรทัด:
ขั้นตอน TForm1.prn;
varฉัน: จำนวนเต็ม;
เริ่ม
กับ Image1.ผ้าใบ ทำ
สำหรับฉัน:=1 ถึง Memo1.Lines.นับ ทำ
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
จบ;
ตอนนี้ทุกอย่างพร้อมที่จะแสดงข้อความแล้ว เราจะทำสิ่งนี้โดยใช้เหตุการณ์ OnChange:
ขั้นตอน TForm1.Memo1Change(ผู้ส่ง: TObject);
เริ่ม
การหักล้าง;
พรน;
หน้าหนังสือ;
จบ;
และสุดท้าย ขั้นตอนการเปลี่ยนขนาดตัวอักษร:
ขั้นตอน TForm1.Edit1Change (ผู้ส่ง: TObject);
เริ่ม
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(ผู้ส่ง);
จบ;
คุณสามารถแก้ไขโปรแกรมนี้เพื่อพิมพ์ข้อความได้ ในการทำงานกับเครื่องพิมพ์คุณต้องเชื่อมต่อโมดูล เครื่องพิมพ์:
หน่วยบทที่ 1;
อินเตอร์เฟซ
การใช้งาน
Windows, ข้อความ, SysUtils, ตัวแปร, คลาส, กราฟิก, การควบคุม, แบบฟอร์ม,
กล่องโต้ตอบ, StdCtrls, เครื่องพิมพ์
;
เมื่อทำงานกับเครื่องพิมพ์เป็นผืนผ้าใบ วิธีการนี้จะถูกเรียกเพื่อเริ่มการพิมพ์ เริ่มต้นหมอจากนั้นเอกสารจะถูกส่งออก การพิมพ์จะเสร็จสิ้นโดยการเรียกเมธอด EndDoc:
เครื่องพิมพ์BeginDoc;
กับเครื่องพิมพ์ผ้าใบ ทำ
เริ่ม
...พิมพ์เอกสาร...
จบ;
เครื่องพิมพ์EndDoc;
ความกว้างและความสูงของเว็บเครื่องพิมพ์สามารถดูได้จากคุณสมบัติ เครื่องพิมพ์ PageWidthและ เครื่องพิมพ์ PageHeight. คุณสามารถพิมพ์หน้าหนึ่งให้เสร็จและเริ่มพิมพ์อีกหน้าหนึ่งโดยใช้วิธีนี้ เครื่องพิมพ์.NewPage.
รายการส่วนประกอบการแสดงผล ข้อมูลกราฟิก
ในการแสดงข้อมูลกราฟิก ไลบรารี Delphi ได้จัดเตรียมส่วนประกอบต่างๆ ไว้ตามรายการที่ระบุไว้ในตารางที่ 4.1 ตาราง 4.1 ส่วนประกอบการแสดงข้อมูลกราฟิก รูปสัญลักษณ์ ส่วนประกอบ หน้าหนังสือ คำอธิบาย ภาพ ใช้เพื่อแสดงกราฟิก: ไอคอน บิตแมป และเมตาไฟล์ PaintBox (หน้าต่างสำหรับวาดภาพ) ใช้เพื่อสร้างพื้นที่บนแบบฟอร์มที่คุณสามารถวาดได้ DrawGrid (ตารางภาพวาด) ใช้เพื่อแสดงข้อมูลที่ไม่ใช่ข้อความในแถวและคอลัมน์ แผนภูมิ (แผนภูมิและกราฟ) ส่วนประกอบนี้เป็นของส่วนประกอบตระกูล TChart ซึ่งใช้ในการสร้างแผนภูมิและกราฟ ผ้าใบ ผ้าใบไม่ใช่ส่วนประกอบ ดังนั้นหากพูดอย่างเคร่งครัดแล้วไม่ควรพิจารณาภายในขอบเขตของหนังสือเล่มนี้ แต่เนื่องจากส่วนประกอบจำนวนมาก โดยเฉพาะรูปแบบ มีโครงร่างและโครงร่างทำให้สามารถแสดงข้อมูลกราฟิกต่างๆ ได้ จึงแนะนำให้ให้ข้อมูลเบื้องต้นเกี่ยวกับโครงร่าง ผืนผ้าใบเป็นพื้นที่ของส่วนประกอบที่คุณสามารถวาดหรือแสดงภาพที่เสร็จแล้วได้ ประกอบด้วยคุณสมบัติและวิธีการที่ทำให้กราฟิก Delphi ง่ายขึ้นอย่างมาก การโต้ตอบที่ซับซ้อนทั้งหมดกับระบบจะถูกซ่อนไว้สำหรับผู้ใช้ ดังนั้นผู้ที่ไม่มีประสบการณ์ด้านคอมพิวเตอร์กราฟิกเลยสามารถวาดใน Delphi ได้ แต่ละจุดของเค้าร่างมีพิกัด เอ็กซ์และ ย. ระบบพิกัดผืนผ้าใบ เช่นเดียวกับที่อื่นๆ ในเดลฟี มีต้นกำเนิดที่มุมซ้ายบนของผืนผ้าใบ ประสานงาน เอ็กซ์เพิ่มขึ้นเมื่อเคลื่อนที่จากซ้ายไปขวาและพิกัด ย- เมื่อย้ายจากบนลงล่าง พิกัดวัดเป็นพิกเซล พิกเซลเป็นองค์ประกอบที่เล็กที่สุดของพื้นผิวการออกแบบที่สามารถปรับเปลี่ยนได้ คุณสมบัติที่สำคัญที่สุดของพิกเซลคือสีของพิกเซล ผ้าใบมีคุณสมบัติ พิกเซล. คุณสมบัตินี้เป็นอาร์เรย์สองมิติที่รับผิดชอบสีของผืนผ้าใบ ตัวอย่างเช่น, ผ้าใบ. พิกเซลจับคู่สีของพิกเซลที่ 10 จากซ้ายและที่ 20 จากด้านบน คุณสามารถปฏิบัติต่ออาร์เรย์ของพิกเซลได้เหมือนกับคุณสมบัติใดๆ ก็ได้ เช่น เปลี่ยนสีโดยให้ค่าใหม่แก่พิกเซล หรือกำหนดค่าสีจากค่าที่เก็บไว้ในนั้น ตัวอย่างเช่น, ผ้าใบ. พิกเซล:=0หรือ ผ้าใบ. พิกเซล:=clBlack- นี่คือการตั้งค่าพิกเซลให้เป็นสีดำ คุณสมบัติ พิกเซลสามารถใช้วาดภาพบนผืนผ้าใบได้ ลองวาดกราฟไซนัสอยด์แบบพิกเซลต่อพิกเซลบนโครงร่างของแบบฟอร์ม เมื่อต้องการทำเช่นนี้ในตัวจัดการเหตุการณ์ของฟอร์ม ออนเพ้นท์(รูปวาด) คุณสามารถใส่รหัสต่อไปนี้: ทีฟอร์ม1. FormPaint (ผู้ส่ง: TObject); var,Y:จริง; // พิกัดฟังก์ชัน,PY: ยาว; // พิกัดพิกเซล เริ่ม:=clWhite; สำหรับ PX:=0 ถึงความกว้างของไคลเอ็นต์ ทำ (X คืออาร์กิวเมนต์กราฟ :=PX*4*Pi/ClientWidth;:=บาป(X); (PY - พิกัดพิกเซล : =trunc (ClientHeight - (Y+1) *ClientHeight/2); (กำหนดสีของภาพที่เลือก พิกเซล (เกี่ยวกับความสว่าง). พิกเซล: = 0; จบ;
เรียกใช้แอปพลิเคชันทดสอบนี้แล้วคุณจะเห็นผลลัพธ์ดังแสดงในรูปที่ 4.1 ก กราฟคลื่นไซน์ปรากฏออกมาแม้ว่าจะไม่ค่อยดีนักก็ตาม แบ่งออกเป็นแต่ละจุด - พิกเซล Canvas - วัตถุคลาส ทีแคนวาสมีวิธีการมากมายที่ให้คุณวาดกราฟ เส้น รูปร่างโดยใช้คุณสมบัติได้ ปากกา- ขนนก. คุณสมบัตินี้คือออบเจ็กต์ ซึ่งจะมีคุณสมบัติจำนวนหนึ่ง หนึ่งในนั้นคือทรัพย์สินที่คุณรู้จักอยู่แล้ว สี- สีที่ใช้วาดภาพ ทรัพย์สินที่สอง - ความกว้าง(ความกว้างของเส้น) ความกว้างระบุเป็นพิกเซล ความกว้างเริ่มต้นคือ 1 คุณสมบัติ สไตล์กำหนดประเภทของเส้น คุณสมบัตินี้สามารถรับค่าต่อไปนี้: ผ้าใบมีคุณสมบัติ ปากกาโปสพิมพ์ ทีพอยท์(ซม ลองวาดกราฟไซน์จากตัวอย่างก่อนหน้าด้วยปากกา ในกรณีนี้คือตัวจัดการเหตุการณ์ของฟอร์ม ออนเพ้นท์อาจมีลักษณะดังนี้: ขั้นตอนทีฟอร์ม1. FormPaint (ผู้ส่ง: TObject); var,Y:จริง; // พิกัดฟังก์ชัน,PY: ยาว; // พิกัดพิกเซล เริ่ม: =clWhite;. MoveTo(0,ความสูงของไคลเอ็นต์ div 2); สำหรับพิกเซล: =0 ถึงความกว้างของไคลเอ็นต์ ทำ (X คืออาร์กิวเมนต์กราฟ ตรงกับพิกเซลที่มีพิกัด Рх):=PX*4*Pi/ClientWidth;:=บาป(X); (PY - พิกัดพิกเซล ตรงกับพิกัด Y):=trunc(ClientHeight - (Y+1) *ClientHeight/2); (มีการวาดเส้นบนกราฟ). เส้นถึง(PX,PY); คุณสามารถดูผลลัพธ์ของแอปพลิเคชันในเวอร์ชันนี้ได้ในรูปที่ 4.1 b. อย่างที่คุณเห็นคุณภาพของกราฟิกได้รับการปรับปรุงอย่างมาก ปากกาสามารถวาดได้ไม่เพียงแต่เป็นเส้นตรงแต่ยังสามารถวาดรูปร่างได้อีกด้วย สำหรับรายการวิธีการ Canvas ทั้งหมดที่ใช้ปากกา โปรดดูวิธีใช้ในตัวของ Delphi ในตอนนี้ เราจะยกตัวอย่างเพียงรายการเดียวเท่านั้น - วงรีซึ่งวาดวงรีหรือวงกลม โดยประกาศให้เป็น ขั้นตอนวงรี(X1, Y1, X2, Y2: จำนวนเต็ม); พารามิเตอร์อยู่ที่ไหน X1, X2, Y1, Y2กำหนดพิกัดของสี่เหลี่ยมที่อธิบายวงรีหรือวงกลม ตัวอย่างเช่นผู้ดำเนินการ วงรี(10, 40, 20, 50); จะวาดวงกลมที่มีเส้นผ่านศูนย์กลาง 10 และพิกัดศูนย์กลาง (15, 45) ในกรณีทั่วไป ตัวเลขจะไม่ว่างเปล่า แต่กรอกโดยใช้คุณสมบัติ canvas แปรง- แปรง. คุณสมบัติ แปรงเป็นวัตถุที่มีคุณสมบัติหลายประการ คุณสมบัติ สีกำหนดสีเติม คุณสมบัติ สไตล์กำหนดรูปแบบการเติม (แรเงา) ค่าเริ่มต้น สไตล์เท่ากับ บีเอสโซลิดซึ่งหมายถึงการลงสีแบบทึบ สี. ที่ปากกา ปากกามีทรัพย์สินอีกอย่างหนึ่งที่เรายังไม่ได้พิจารณา คุณสมบัตินี้คือ โหมด(โหมด). ค่าเริ่มต้น โหมด = pmCopy. ซึ่งหมายความว่าเส้นจะถูกวาดด้วยสีที่ระบุในคุณสมบัติ สี. แต่โหมดอื่นๆ ก็สามารถทำได้เช่นกัน โดยไม่เพียงคำนึงถึงสีเท่านั้น สีแต่ยังรวมถึงสีของพิกเซลพื้นหลังที่เกี่ยวข้องด้วย สิ่งที่น่าสนใจที่สุดของโหมดเหล่านี้คือ น.ไม่ใช่Xor- การบวกกับพื้นหลังโดยใช้เอกสิทธิ์เฉพาะแบบผกผันหรือ หากตั้งค่าโหมดนี้ การวาดรูปเดิมอีกครั้งในตำแหน่งเดิมบนผืนผ้าใบจะเป็นการลบรูปภาพที่วาดไว้ก่อนหน้านี้ และคืนค่าสีพิกเซลที่อยู่ก่อนรูปภาพแรกของรูปภาพ คุณสมบัติของโหมดนี้ น.ไม่ใช่Xorสามารถใช้เพื่อสร้างภาพเคลื่อนไหวอย่างง่าย การวาดบางอย่างก็เพียงพอแล้วลบสิ่งที่คุณวาดวาดใหม่โดยเปลี่ยนแปลงเล็กน้อย - แล้วภาพวาดจะดูมีชีวิตขึ้นมา ลองทำแอนิเมชั่นง่ายๆ ด้วยตัวเอง - วงกลมที่เคลื่อนไหว เริ่มแอปพลิเคชันใหม่และไปที่ การดำเนินการแทรกโฆษณา X,Y: จำนวนเต็ม; สิ่งนี้จะแนะนำตัวแปรส่วนกลาง เอ็กซ์และ ย- พิกัดภาพปัจจุบัน ในงานฟอร์ม ออนเพ้นท์แทรกคำสั่ง แปรง. สี:=clWhite;:=clWhite;. ปากกา. โหมด:=pmNotXor; ตัวดำเนินการตัวแรกจะตั้งค่าสีแปรงเป็นสีขาว แปรง. ซึ่งหมายความว่าวงกลมของคุณจะถูกทาสีขาวภายใน ตัวดำเนินการที่สองตั้งค่าสีพื้นหลังของพื้นผิวแบบฟอร์มเป็นสีขาว ตัวดำเนินการที่สามตั้งค่าโหมดปากกา น.ไม่ใช่Xorซึ่งจะช่วยให้คุณสามารถลบภาพเก่าก่อนที่จะวาดภาพใหม่ได้ แม้แต่แอนิเมชั่นที่ง่ายที่สุดก็ยังต้องมีการซิงโครไนซ์ มิฉะนั้นความเร็วในการเคลื่อนที่จะถูกกำหนดโดยความเร็วของคอมพิวเตอร์ ดังนั้นให้โอนส่วนประกอบไปที่แบบฟอร์ม ตัวจับเวลา- จับเวลาจากหน้าระบบ ส่วนประกอบนี้อธิบายไว้ในส่วน 5.7 คุณสามารถดูได้ที่นั่น คำอธิบายโดยละเอียด. สำหรับตอนนี้ ให้ตั้งค่าคุณสมบัติของมัน ช่วงเวลาเท่ากับ เช่น 30 (นี่คือเวลาเปิดรับแสงเป็นมิลลิวินาที แต่ เวลาจริงความเร็วชัตเตอร์จะนานขึ้น - ดูหัวข้อ 5.7) และตั้งค่าคุณสมบัติ เปิดใช้งานแล้วเท่ากัน เท็จ(ซึ่งหมายความว่าตัวจับเวลาจะไม่เริ่มโดยอัตโนมัติเมื่อเปิดแอปพลิเคชัน) ในตัวจัดการเหตุการณ์ขององค์ประกอบนี้ ออนไทม์เมอร์แทรกคำสั่ง // ลบภาพก่อนหน้า. วงรี (X-5, Y, X+5, Y-1Q);(X); // วาดภาพใหม่. วงรี (X-5, Y, X+5, Y-10); // หยุดเมื่อถึงจุดสิ้นสุดของแบบฟอร์ม ถ้า(X >= ความกว้างของไคลเอ็นต์-20) แล้ว. เปิดใช้งาน: = เท็จ; ตัวดำเนินการตัวแรกจะวาดวงกลมในตำแหน่งที่วาดไว้ก่อนหน้านี้ เช่น ลบภาพก่อนหน้า ตัวดำเนินการตัวสุดท้ายหยุดรูปภาพที่ขอบของแบบฟอร์ม ตอนนี้เพิ่มปุ่มลงในแบบฟอร์ม ปุ่มและวางตัวดำเนินการไว้ในตัวจัดการการคลิกบนตัวดำเนินการนั้น เอ็กซ์: =10;: =100;. วงรี (X-5, Y, X+5, Y-10);. เปิดใช้งาน: =จริง; ตัวดำเนินการสองตัวแรกระบุพิกัดเริ่มต้นของวงกลม เจ้าหน้าที่คนที่สามวาดวงกลมที่ตำแหน่งเริ่มต้น และผู้ปฏิบัติงานคนที่สี่เริ่มจับเวลา ออกอากาศแอปพลิเคชัน เรียกใช้ คลิกที่ปุ่ม คุณจะเห็นภาพวงกลมเคลื่อนผ่านรูปร่างจากซ้ายไปขวา จากนั้นใช้จินตนาการของคุณและแปลงแอปพลิเคชันที่ไม่น่าสนใจนี้ให้กลายเป็นสิ่งที่น่าตื่นเต้นยิ่งขึ้น ผืนผ้าใบสามารถแสดงไม่เพียงแต่รูปภาพที่สร้างขึ้นโดยทางโปรแกรมเท่านั้น แต่ยังรวมถึงรูปภาพที่จัดเก็บไว้ในไฟล์กราฟิกด้วย เฉพาะผืนผ้าใบเท่านั้นที่ไม่มีวิธีการโหลดรูปภาพจากไฟล์ ดังนั้นจึงต้องโหลดไฟล์ลงในออบเจ็กต์กราฟิกอื่นที่สามารถรับข้อมูลจากไฟล์กราฟิกได้ จากนั้นเขียนรูปภาพจากวัตถุนี้ใหม่ไปยังแคนวาสโดยใช้วิธีแคนวาส วาด. คำอธิบาย: วาด (X, Y: จำนวนเต็ม; กราฟิก: TGraphic); นี่คือพารามิเตอร์ เอ็กซ์และ ยกำหนดพิกัดของมุมซ้ายบนของตำแหน่งภาพบนผืนผ้าใบ กราฟิก- วัตถุที่เก็บข้อมูล วัตถุดังกล่าวสามารถเป็นได้ ตัวอย่างเช่น วัตถุประเภท TBitMapออกแบบมาเพื่อเก็บเมทริกซ์บิต เรามาดูกันว่าทั้งหมดนี้มีลักษณะอย่างไรในทางปฏิบัติ เปิดแอปพลิเคชันใหม่ ลากส่วนประกอบลงบนแบบฟอร์ม OpenPictureDialogจากหน้าไดอะล็อก (นี่คือส่วนประกอบของไดอะล็อกสำหรับการเปิดไฟล์กราฟิก - ดูหัวข้อ 8.2 ขั้นตอนทีฟอร์ม1. Button1Click(ผู้ส่ง: TObject); var: TBitMap; // การเลือกผู้ใช้ ไฟล์กราฟิก
ถ้า OpenPictureDialog1. ดำเนินการ แล้ว // สร้างวัตถุ BitMap ประเภท TBitMap: =TBitMap. สร้าง; // ถ่ายโอนรูปภาพไปยังฟอร์มแคนวาส. วาด (10, 10, บิตแมป); //ทำลายวัตถุ BitMap. ฟรี; จบ;
รหัสนี้สร้างวัตถุชนิดชั่วคราว TBitMapพร้อมชื่อ บิตแมป. จากนั้นจะเรียกกล่องโต้ตอบสำหรับเปิดไฟล์กราฟิก OpenPictureDialog1และหากผู้ใช้เลือกไฟล์ไว้ ก็จะถูกดาวน์โหลดไปที่ บิตแมปวิธี LoadFromFile. แล้วใช้วิธี วาดรูปภาพที่โหลดจะถูกคัดลอกลงบนผืนผ้าใบในพื้นที่ที่มีพิกัดของมุมซ้ายบน (10,10) หลังจากนี้เป็นวัตถุชั่วคราว บิตแมปถูกทำลาย เปิดแอปพลิเคชันของคุณและคลิกที่ปุ่ม คุณจะเห็นว่าคุณสามารถอัปโหลดไฟล์กราฟิกประเภทใดก็ได้ บีเอ็มพีและจะปรากฏบนโครงร่างของแบบฟอร์ม (ดูรูปที่ 4.2 ก) คุณสามารถค้นหาไฟล์กราฟิกได้ในไดเรกทอรีรูปภาพ ใน Delphi 5 และ 4 มักจะอยู่ในไดเร็กทอรี \program files\Common Files\Borland Shared. ใน Delphi 3 จะอยู่ในไดเร็กทอรี \program files\Borland\Delphi 3 และใน Delphi 1 - ในไดเร็กทอรี Delphi 16 ในไดเร็กทอรี Images จะมีไดเร็กทอรีย่อย \Images\Splash\16Color\ โดยเฉพาะ ซึ่งเก็บไฟล์ที่โหลดไว้ในตัวอย่างในรูป . 4.2 คุณได้สร้างแอปพลิเคชันที่ดีสำหรับการดูไฟล์กราฟิก แต่ตอนนี้เรามาดูข้อเสียเปรียบที่สำคัญของมันกัน โดยไม่ต้องปิดแอปพลิเคชันของคุณ ให้ไปที่โปรแกรมอื่น เช่น กลับไปที่ Delphi จากนั้นโดยไม่ต้องทำอะไรเลย ให้กลับไปที่แอปพลิเคชันที่กำลังทำงานอยู่ หากหน้าต่างโปรแกรมที่คุณเข้าไปบล็อกหน้าต่างแอปพลิเคชันของคุณโดยสมบูรณ์ เมื่อคุณกลับมาที่หน้าต่างนั้นคุณจะเห็นว่ารูปภาพในหน้าต่างหายไป หากหน้าต่างแอปพลิเคชันของคุณซ้อนทับเพียงบางส่วนเท่านั้น เมื่อคุณกลับมาที่แอปพลิเคชันของคุณ คุณอาจเห็นผลลัพธ์คล้ายกับที่แสดงในรูปที่ 4.2 b คุณจะเห็นว่าหากหน้าต่างของแอปพลิเคชันอื่นซ้อนทับหน้าต่างแอปพลิเคชันของคุณชั่วคราว รูปภาพที่วาดบนโครงร่างของแบบฟอร์มจะเสีย มาดูกันว่าเราจะกำจัดข้อเสียเปรียบนี้ได้อย่างไร ถ้าหน้าต่างถูกบังและรูปภาพเสียหาย ระบบปฏิบัติการจะบอกแอปพลิเคชันว่ามีบางอย่างเปลี่ยนแปลงไปในสภาพแวดล้อม และแอปพลิเคชันควรดำเนินการอย่างเหมาะสม ทันทีที่จำเป็นต้องมีการอัปเดตหน้าต่าง เหตุการณ์จะถูกสร้างขึ้น ออนเพ้นท์. ในตัวจัดการเหตุการณ์นี้ (ในกรณีของเราคือเหตุการณ์ในแบบฟอร์ม) คุณต้องวาดภาพใหม่ การวาดใหม่สามารถทำได้ วิธีทางที่แตกต่างขึ้นอยู่กับแอปพลิเคชัน ในตัวอย่างของเรา เป็นไปได้ที่จะประกาศตัวแปร บิตแมป(ผู้ดำเนินการ var BitMap: TBitMap) นอกเหนือจากขั้นตอนข้างต้น เช่น ทำให้ตัวแปรนี้เป็นสากลโดยวางไว้ในส่วนโดยตรง การดำเนินการ. ผู้ดำเนินการ บิตแมป ฟรีสามารถย้ายไปยังตัวจัดการเหตุการณ์แบบฟอร์มได้ ออนทำลายซึ่งเกิดขึ้นเมื่อปิดรับสมัคร จากนั้นในระหว่างดำเนินการแอปพลิเคชันของคุณ คุณจะมีสำเนาของรูปภาพในส่วนประกอบ บิตแมปและคุณเพียงแค่ต้องเข้าสู่ตัวจัดการเหตุการณ์ ออนเพ้นท์แบบฟอร์มมีตัวดำเนินการเพียงตัวเดียวเท่านั้น: วาด (10, 10, บิตแมป); ทำเช่นนี้แล้วคุณจะเห็นว่ารูปภาพในแบบฟอร์มไม่ลดลงเนื่องจากการทับซ้อนกันของหน้าต่าง นอกจากวิธีการพิจารณาแล้ว วาดเค้าร่างก็มีวิธีการคัดลอกเช่นกัน คัดลอกRect: CopyRect (ปลายทาง: TRect; Canvas: TCanvas; ที่มา: TRect); วิธีการคัดลอกพารามิเตอร์ที่ระบุ แหล่งที่มาพื้นที่รูปภาพในพื้นที่ต้นทางของรูปภาพ ผ้าใบไปยังพารามิเตอร์ที่ระบุ ปลายทางพื้นที่ของผืนผ้าใบนี้ พิมพ์ ตร, กำหนดลักษณะของพื้นที่สี่เหลี่ยม แหล่งที่มาและ ปลายทางตามที่อธิบายไว้แล้วในส่วน 3.2 ตัวอย่างเช่นผู้ดำเนินการ CopyRect (MyRect2, Bitmap. Canvas, MyRect1); คัดลอกไปยังโครงร่างแบบฟอร์มในพื้นที่ MyRect2ภาพจากพื้นที่ MyRect1ผ้าใบส่วนประกอบ บิตแมป. วิธีการคัดลอก คัดลอกRectดำเนินการในโหมดที่ระบุโดยคุณสมบัติ โหมดการคัดลอก. โดยค่าเริ่มต้นคุณสมบัตินี้มีค่า cmSrcCopyซึ่งหมายถึงการแทนที่รูปภาพที่มีอยู่เดิมในพื้นที่นั้น ปลายทางไปยังภาพที่คัดลอก ค่าอื่นๆ ที่เป็นไปได้ โหมดการคัดลอกอนุญาตให้คุณรวมภาพได้ แต่การพิจารณานั้นอยู่นอกเหนือขอบเขตของหนังสือเล่มนี้ เราจะจำกัดตัวเองอยู่เพียงข้อมูลพื้นฐานเกี่ยวกับการแสดงข้อมูลกราฟิกบนผืนผ้าใบ ในส่วนที่ 3.2 ส่วนประกอบหน้าต่างที่มีคุณสมบัติ ผ้าใบ- ผ้าใบ. ส่วนประกอบรูปภาพและ PaintBox ส่วนประกอบ ภาพและ เพนท์บ็อกซ์นำเสนอพื้นผิวที่จำกัดด้วยผืนผ้าใบที่สามารถเขียนภาพได้ ดังที่อธิบายไว้ในส่วน 4.2 แต่นอกเหนือจากความสามารถเหล่านี้แล้วส่วนประกอบ ภาพมีคุณสมบัติที่ช่วยให้คุณทำงานด้วยได้ หลากหลายชนิดไฟล์กราฟิก รองรับไฟล์สามประเภท - บิตเมทริกซ์ ไอคอน และเมตาไฟล์ ไฟล์ทั้งสามประเภทจัดเก็บรูปภาพ ความแตกต่างอยู่ที่วิธีการจัดเก็บภายในไฟล์และวิธีการเข้าถึงเท่านั้น บิตเมทริกซ์ (ไฟล์ที่มีนามสกุล . บีเอ็มพี) แสดงสีของแต่ละพิกเซลในภาพ ในกรณีนี้ ข้อมูลจะถูกจัดเก็บในลักษณะที่คอมพิวเตอร์ทุกเครื่องสามารถแสดงภาพที่มีความละเอียดและจำนวนสีที่สอดคล้องกับการกำหนดค่าได้ รูปสัญลักษณ์ (ไฟล์ที่มีนามสกุล . ไอโอ) เป็นเมทริกซ์ขนาดเล็ก มีการใช้กันอย่างแพร่หลายในการกำหนดไอคอนแอปพลิเคชัน ในปุ่มด่วน ในรายการเมนู ในรายการต่างๆ วิธีการจัดเก็บรูปภาพในไอคอนจะคล้ายกับการจัดเก็บข้อมูลในรูปแบบบิตเมทริกซ์ แต่ก็มีความแตกต่างเช่นกัน โดยเฉพาะอย่างยิ่ง ไอคอนไม่สามารถปรับขนาดได้ แต่จะคงขนาดเท่ากับขนาดที่สร้างขึ้น Metafiles ไม่ได้จัดเก็บลำดับของบิตที่ประกอบเป็นรูปภาพ แต่เป็นข้อมูลเกี่ยวกับวิธีการสร้างรูปภาพ โดยจะจัดเก็บลำดับของคำสั่งการวาดภาพ ซึ่งสามารถทำซ้ำได้เมื่อสร้างภาพขึ้นมาใหม่ ทำให้ไฟล์ดังกล่าวโดยทั่วไปมีขนาดกะทัดรัดกว่าเมทริกซ์บิต ส่วนประกอบ ภาพช่วยให้คุณสามารถแสดงข้อมูลที่มีอยู่ในไฟล์กราฟิกทุกประเภทที่ระบุ นี่คือความสำเร็จโดยทรัพย์สินของมัน รูปภาพ- ประเภทวัตถุ ทีรูปภาพ.
รูปที่.4.3หน้าต่างแก้ไขรูปภาพ หากต้องการทำความคุ้นเคยกับคุณสมบัตินี้ ให้เปิดแอปพลิเคชันใหม่แล้วลากส่วนประกอบลงบนแบบฟอร์ม ภาพ. ยืดหรือกำหนดคุณสมบัติของมัน จัดตำแหน่งเท่ากัน อัลไคลเอนท์เพื่อให้ครอบคลุมพื้นที่ไคลเอนต์ทั้งหมดของแบบฟอร์ม คลิกที่ปุ่มที่มีจุดไข่ปลาถัดจากคุณสมบัติ รูปภาพในหน้าต่าง Object Inspector หรือเพียงดับเบิลคลิกที่ ภาพ. หน้าต่าง Picture Editor จะเปิดขึ้นตรงหน้าคุณ (รูปที่ 4.3) ทำให้คุณสามารถโหลดเข้าสู่คุณสมบัติได้ รูปภาพไฟล์กราฟิกบางไฟล์ (ปุ่มโหลด) และยังบันทึกไฟล์ที่เปิดอยู่ภายใต้ชื่อใหม่หรือในไดเร็กทอรีใหม่ คลิกโหลดเพื่อโหลดไฟล์กราฟิก คุณจะเห็นหน้าต่างสำหรับเปิดไฟล์กราฟิกดังแสดงในรูปที่ 4.4 เมื่อคุณเลื่อนเคอร์เซอร์ในรายการไฟล์กราฟิก รูปภาพที่มีอยู่จะแสดงในหน้าต่างด้านขวา และด้านบนคือตัวเลขที่แสดงขนาดของรูปภาพ . คุณสามารถเลือกไฟล์กราฟิกประเภทใดก็ได้ที่คุณต้องการ เราขอเตือนคุณว่าคุณสามารถค้นหาไฟล์กราฟิกที่มาพร้อมกับ Delphi ได้ในไดเร็กทอรีรูปภาพ ใน Delphi 5 และ 4 มักจะอยู่ในไดเร็กทอรี \program files\Common Files\Borland Shared. ใน Delphi 3 จะอยู่ในไดเร็กทอรี \program files\Borland\Delphi 3 และใน Delphi 1 - ในไดเร็กทอรี Delphi 16 เมื่อไฟล์โหลดแล้ว คลิกตกลงในหน้าต่าง Picture Editor และในส่วนประกอบของคุณ ภาพรูปภาพที่คุณเลือกจะปรากฏขึ้น คุณสามารถเปิดแอปพลิเคชันของคุณและชื่นชมมันได้ อย่างไรก็ตาม คุณเห็นภาพแล้วโดยไม่ต้องเปิดแอปพลิเคชันเลย เมื่อคุณโหลดรูปภาพจากไฟล์ลงในส่วนประกอบระหว่างกระบวนการออกแบบ ภาพไม่เพียงแสดงข้อมูลเท่านั้น แต่ยังบันทึกลงในแอปพลิเคชันด้วย สิ่งนี้ทำให้คุณสามารถส่งมอบแอปพลิเคชันของคุณได้โดยไม่ต้องมีไฟล์กราฟิกแยกต่างหาก อย่างไรก็ตาม ดังที่เราจะได้เห็นในภายหลัง ภาพคุณยังสามารถโหลดไฟล์กราฟิกภายนอกในขณะที่แอปพลิเคชันกำลังทำงานอยู่ กลับไปพิจารณาคุณสมบัติของส่วนประกอบกัน ภาพ. หากคุณกำหนดคุณสมบัติ ขนาดอัตโนมัติวี จริงแล้วตามด้วยขนาดส่วนประกอบ ภาพจะปรับขนาดของภาพที่วางไว้โดยอัตโนมัติ ถ้าทรัพย์สิน ขนาดอัตโนมัติติดตั้งใน เท็จจากนั้นรูปภาพอาจไม่พอดีกับส่วนประกอบหรือในทางกลับกันพื้นที่ของส่วนประกอบอาจมีขนาดใหญ่กว่าพื้นที่ของรูปภาพมาก ทรัพย์สินอื่น - ยืดช่วยให้คุณไม่ปรับส่วนประกอบตามขนาดของรูปภาพ แต่ปรับรูปภาพเป็นขนาดของส่วนประกอบ ติดตั้ง ขนาดอัตโนมัติวี เท็จยืดหรือหดขนาดของส่วนประกอบ ภาพและติดตั้ง ยืดวี จริง. คุณจะเห็นว่าการวาดภาพจะใช้พื้นที่ทั้งหมดของส่วนประกอบ แต่เนื่องจากไม่น่าจะสามารถกำหนดขนาดได้อย่างสมจริง ภาพสัดส่วนกับขนาดของภาพพอดี ภาพจะบิดเบี้ยว ติดตั้ง ยืดวี จริงอาจสมเหตุสมผลสำหรับบางรูปแบบเท่านั้น แต่ไม่ใช่สำหรับรูปภาพ คุณสมบัติ ยืดไม่ส่งผลต่อภาพไอคอนที่ไม่สามารถปรับขนาดได้ คุณสมบัติ - ศูนย์, ตั้งค่าให้ จริง, จัดกึ่งกลางภาพบนพื้นที่ ภาพหากขนาดส่วนประกอบใหญ่กว่าขนาดรูปภาพ ลองพิจารณาคุณสมบัติอีกอย่างหนึ่ง - โปร่งใส(ความโปร่งใส) ถ้า โปร่งใสเท่ากับ จริงแล้วภาพก็เข้า ภาพกลายเป็นโปร่งใส ซึ่งสามารถใช้เพื่อวางซ้อนภาพไว้ด้านบนของแต่ละภาพได้ วางองค์ประกอบที่สองลงในแบบฟอร์ม ภาพและโหลดภาพอื่นลงไป เพียงลองถ่ายภาพโครงร่างที่กระจัดกระจาย ตัวอย่างเช่น คุณสามารถถ่ายภาพจากสิ่งที่มักจะวางไว้บนปุ่มได้ เช่น ลูกศร (file.\program files\common files\borland shared\images\buttons\arrow1l.bmp) ย้ายของคุณ ภาพเพื่อให้ซ้อนทับกันและอยู่ในชุดส่วนประกอบด้านบน โปร่งใสเท่ากัน จริง. จะเห็นว่าภาพบนไม่บดบังภาพล่างอีกต่อไป การใช้คุณสมบัตินี้อย่างหนึ่งที่เป็นไปได้คือการซ้อนทับบนจารึกรูปภาพที่ทำในรูปแบบของเมทริกซ์บิต คำจารึกเหล่านี้สามารถทำได้โดยใช้โปรแกรม Image Editor ที่มีอยู่ใน Delphi โปรดทราบว่าทรัพย์สิน โปร่งใสส่งผลต่อเมทริกซ์บิตเท่านั้น ในกรณีนี้สีของพิกเซลด้านซ้ายล่างของบิตเมทริกซ์จะโปร่งใสตามค่าเริ่มต้น (เช่นแทนที่ด้วยสีของรูปภาพที่อยู่ด้านล่าง) เรากล่าวถึงการโหลดรูปภาพจากไฟล์ในระหว่างขั้นตอนการออกแบบ แต่ทรัพย์สิน. รูปภาพนอกจากนี้ยังทำให้ง่ายต่อการจัดระเบียบการแลกเปลี่ยนด้วยไฟล์กราฟิกทุกประเภทระหว่างการดำเนินการแอปพลิเคชัน เพื่ออธิบายเทคนิคการแลกเปลี่ยนดังกล่าว เราต้องพิจารณารายละเอียดทรัพย์สินให้มากขึ้นก่อน รูปภาพ. คุณสมบัตินี้เป็นออบเจ็กต์ ซึ่งจะมีคุณสมบัติย่อยที่ชี้ไปยังออบเจ็กต์กราฟิกที่เก็บไว้ ถ้าเข้า. รูปภาพเมทริกซ์บิตจะถูกจัดเก็บและระบุโดยคุณสมบัติ รูปภาพ. บิตแมป. หากมีการจัดเก็บไอคอนไว้ จะชี้ไปที่ที่พัก รูปภาพ. ไอคอน. เมตาไฟล์ที่เก็บไว้จะถูกระบุโดยคุณสมบัติ รูปภาพ. เมตาไฟล์. สุดท้ายนี้ คุณสมบัติจะระบุออบเจ็กต์กราฟิกทุกประเภท รูปภาพ. กราฟิก. วัตถุ รูปภาพและคุณสมบัติของมัน บิตแมป, ไอคอน,
เมตาไฟล์และ กราฟิกมีวิธีอ่านและเขียนไฟล์ LoadFromFileและ บันทึกไปยังไฟล์:
ขั้นตอนโหลดจากไฟล์( ค่าคงที่ชื่อไฟล์: เชือก); ขั้นตอนบันทึกไปยังไฟล์( ค่าคงที่ชื่อไฟล์: เชือก);
สำหรับคุณสมบัติ รูปภาพ. บิตแมป, รูปภาพ. ไอคอนและ รูปภาพ. เมตาไฟล์รูปแบบไฟล์จะต้องสอดคล้องกับคลาสอ็อบเจ็กต์: บิตเมทริกซ์, ไอคอน, เมตาไฟล์ เมื่ออ่านไฟล์เข้าไปในคุณสมบัติ รูปภาพ. กราฟิกไฟล์จะต้องอยู่ในรูปแบบ metafile และสำหรับวัตถุนั้นเอง รูปภาพวิธีการอ่านและเขียนจะถูกปรับตามประเภทไฟล์โดยอัตโนมัติ ลองอธิบายเรื่องนี้ด้วยตัวอย่าง มาสร้างแอปพลิเคชันที่คล้ายกับตัวอย่างการดูไฟล์กราฟิกที่กล่าวถึงในหัวข้อ 4.2 เพื่อความหลากหลาย คุณสามารถควบคุมได้โดยใช้สิ่งอื่นที่ไม่ใช่ปุ่ม ปุ่มและเมนู วางส่วนประกอบบนแบบฟอร์ม ภาพ. ยืดหรือกำหนดคุณสมบัติของมัน จัดตำแหน่งเท่ากัน อัลไคลเอนท์เพื่อให้ครอบคลุมพื้นที่ไคลเอนต์ทั้งหมดของแบบฟอร์ม ลากส่วนประกอบกล่องโต้ตอบการเปิดไฟล์กราฟิกไปยังแบบฟอร์ม OpenPictureDialog(ดูหัวข้อ 8.2 (OpenPictureDialog1.ดำเนินการ) แล้ว. รูปภาพ. LoadFromFile(.FileName); โอเปอเรเตอร์นี้จะเรียกกล่องโต้ตอบเพื่อเปิดไฟล์กราฟิก (ดูรูปที่ 4.4) และโหลดลงในส่วนประกอบ ภาพที่ 1รูปภาพจากไฟล์ที่ผู้ใช้เลือก (ดูรูปที่ 4.5) นอกจากนี้ ไฟล์สามารถเป็นประเภทใดก็ได้: บิตเมทริกซ์ ไอคอน หรือเมตาไฟล์ รูปที่.4.5รูปภาพในองค์ประกอบ ภาพบิตเมทริกซ์ (a) และรูปสัญลักษณ์ (6) ในแอปพลิเคชันนี้วิธีการ LoadFromFileนำไปใช้กับ ภาพที่ 1 รูปภาพ. หากจะเปิดเฉพาะไฟล์เมทริกซ์บิตเท่านั้น ตัวดำเนินการโหลดไฟล์จะถูกแทนที่ด้วย รูปภาพ. บิตแมป LoadFromFile(.FileName); สำหรับรูปสัญลักษณ์ สามารถใช้ตัวดำเนินการได้ รูปภาพ. ไอคอน. LoadFromFile(.FileName); และสำหรับ metafiles - ตัวดำเนินการ รูปภาพ. เมตาไฟล์ LoadFromFile(.FileName); หรือ. รูปภาพ. กราฟิก LoadFromFile(.FileName); แต่ในทุกกรณีหากรูปแบบไฟล์ไม่ตรงกับที่ต้องการจะเกิดข้อผิดพลาด วิธีการทำงานคล้ายกัน บันทึกไปยังไฟล์กับความแตกต่างที่นำมาใช้กับ รูปภาพหรือเพื่อ รูปภาพ. กราฟิกมันจะบันทึกรูปภาพในรูปแบบใด ๆ ลงในไฟล์ ตัวอย่างเช่น หากคุณขยายแอปพลิเคชันของคุณด้วยกล่องโต้ตอบ บันทึกรูปภาพกล่องโต้ตอบ(ดูหัวข้อ 8.2 บันทึก PictureDialog1. ดำเนินการ แล้ว. รูปภาพ. SaveToFile(SavePictureDialog1. ชื่อไฟล์); จากนั้นผู้ใช้จะสามารถบันทึกรูปภาพทุกรูปแบบในไฟล์ด้วยชื่อใหม่ได้ เฉพาะในกรณีนี้เท่านั้น เพื่อหลีกเลี่ยงความสับสนในอนาคต นามสกุลของไฟล์ที่บันทึกไว้จะต้องยังคงสอดคล้องกับรูปแบบของภาพที่บันทึกไว้ โปรแกรมจะทำงานเหมือนกันทุกประการกับรูปภาพทุกรูปแบบหากคุณแทนที่ตัวดำเนินการบันทึกด้วย รูปภาพ. กราฟิก SaveToFile(.FileName); การใช้ทรัพย์สิน รูปภาพ. กราฟิก. และถ้าคุณรู้รูปแบบของสิ่งที่เก็บไว้ในส่วนประกอบ ภาพรูปภาพแล้วจึงนำวิธีการไปประยุกต์ใช้ บันทึกไปยังไฟล์ถึงคุณสมบัติ รูปภาพ. บิตแมป, รูปภาพ. ไอคอนและ รูปภาพ. เมตาไฟล์. สำหรับวัตถุที่พิจารณาทั้งหมด รูปภาพ, รูปภาพ. บิตแมป,
รูปภาพ. ไอคอนและ รูปภาพ. เมตาไฟล์มีการกำหนดวิธีการกำหนดค่าวัตถุ: มอบหมาย(ที่มา: TPersistent); อย่างไรก็ตามสำหรับ บิตแมป, ไอคอนและ เมตาไฟล์คุณสามารถกำหนดค่าของวัตถุที่เป็นเนื้อเดียวกันได้เท่านั้น: ตามลำดับ, เมทริกซ์บิต, ไอคอน, เมตาไฟล์ มีข้อยกเว้นเกิดขึ้นเมื่อพยายามกำหนดค่าให้กับวัตถุที่ต่างกัน EConvertError. วัตถุ รูปภาพ- สากลสามารถกำหนดค่าของวัตถุของคลาสอื่น ๆ ในสามคลาสได้ และความหมาย รูปภาพสามารถกำหนดให้กับวัตถุที่มีประเภทตรงกับประเภทของวัตถุที่เก็บไว้ในนั้นเท่านั้น วิธี กำหนดยังสามารถใช้เพื่อแลกเปลี่ยนรูปภาพด้วยบัฟเฟอร์คลิปบอร์ด ตัวอย่างเช่นผู้ดำเนินการ กำหนด (Image1.Picture); จะบันทึกภาพที่เก็บไว้ในคลิปบอร์ดไปยังคลิปบอร์ด ภาพที่ 1. ตัวดำเนินการที่คล้ายกัน แอปพลิเคชั่นภาพกราฟิกเดลฟี ภาพที่ 1 รูปภาพ. กำหนด (คลิปบอร์ด); อ่านเข้ามา ภาพที่ 1รูปภาพบนคลิปบอร์ด นอกจากนี้ยังสามารถเป็นรูปภาพและข้อความได้อีกด้วย คุณเพียงแค่ต้องจำไว้เมื่อทำงานกับคลิปบอร์ดเพื่อวางลงในโอเปอเรเตอร์ การใช้งานลิงก์โมดูลของคุณไปยังโมดูล คลิปบอร์ด. Delphi จะไม่แทรกลิงก์นี้โดยอัตโนมัติ กลับไปสู่คุณสมบัติของส่วนประกอบ ภาพเราสามารถสังเกตข้อเสียเปรียบประการหนึ่งที่มีอยู่ในแอปพลิเคชันทดสอบของเรา ดังแสดงในรูปที่ 4.5 เมื่อโหลดรูปภาพที่แตกต่างกัน ขนาดของหน้าต่างแอปพลิเคชันอาจเล็กเกินไป จากนั้นคุณจะเห็นเพียงบางส่วนของรูปภาพหรือใหญ่เกินไป และ จากนั้นรูปภาพจะถูกวางไว้ที่มุมซ้ายบนของแบบฟอร์มอย่างไม่สวยงามทำให้เหลือพื้นที่ว่างมากมาย ข้อเสียเปรียบนี้สามารถกำจัดได้โดยใช้คุณสมบัติ ความสูง(ความสูง) และ ความกว้าง(ความกว้าง) ส่วนประกอบ ภาพ. พร้อมทรัพย์สิน ขนาดอัตโนมัติติดตั้งใน จริงขนาด ภาพจะถูกตั้งค่าเป็นขนาดเดียวกับภาพที่อัพโหลดโดยอัตโนมัติ และมิติเหล่านี้สามารถใช้เพื่อปรับขนาดแบบฟอร์มให้เหมาะสมได้ ตัวอย่างเช่น รหัสก่อนหน้าสำหรับการโหลดรูปภาพจากไฟล์สามารถแทนที่ได้ดังต่อไปนี้: OpenPictureDialog1. ดำเนินการ แล้ว เริ่ม. รูปภาพ. LoadFromFile(.FileName); ความสูงของไคลเอ็นต์: = ภาพที่ 1 ส่วนสูง+10;. บนสุด:=ฟอร์ม1. ลูกค้าRect. สูงสุด + (Form1.ClientHeight - Image1.Height) div 2;. ความกว้างของไคลเอ็นต์:=รูปภาพ1 กว้าง+10;. ซ้าย: = แบบฟอร์ม1. ลูกค้าRect. ซ้าย + (Form1. ClientWidth - Image1. ความกว้าง) div 2; จบ;
รหัสนี้กำหนดขนาดของพื้นที่ไคลเอนต์ของแบบฟอร์มให้ใหญ่กว่าขนาดของส่วนประกอบเล็กน้อย ภาพที่ 1ซึ่งจะปรับให้เข้ากับขนาดของรูปภาพด้วยคุณสมบัติ ขนาดอัตโนมัติ. ทำการเปลี่ยนแปลงเหล่านี้กับแอปพลิเคชันของคุณ เรียกใช้งาน และดูแบบฟอร์มที่ปรับให้เข้ากับขนาดของรูปภาพที่อัปโหลดโดยอัตโนมัติ ส่วนประกอบรูปร่าง ส่วนประกอบ รูปร่างสามารถจัดประเภทตามเงื่อนไขเป็นวิธีการแสดงข้อมูลกราฟิกได้เท่านั้น เนื่องจากเป็นเพียงการแสดงรูปทรงเรขาคณิตต่างๆ แรเงาอย่างเหมาะสม คุณสมบัติหลักของส่วนประกอบนี้คือ รูปร่าง(แบบฟอร์ม) ซึ่งสามารถรับค่าต่อไปนี้: ตัวอย่างของแบบฟอร์มเหล่านี้แสดงในรูปที่ 4.7 รูปที่.4.7ตัวอย่างส่วนประกอบ รูปร่าง คุณสมบัติที่สำคัญอีกประการหนึ่งของส่วนประกอบคือ แปรง(แปรง). คุณสมบัตินี้เป็นวัตถุประเภท ทีบรัชซึ่งมีคุณสมบัติย่อยจำนวนหนึ่งโดยเฉพาะ: สี ( แปรง. สี) และสไตล์ ( แปรง. สไตล์) เติมรูปทรง เติมค่าบางอย่าง สไตล์คุณสามารถดูได้ในรูปที่ 4.7 คุณสมบัติเฉพาะประการที่สามของส่วนประกอบ รูปร่าง - ปากกา(ปากกา) ที่กำหนดลักษณะเส้น ทรัพย์สินนี้ก็เหมือนกับทรัพย์สิน แปรงได้ถูกกล่าวถึงแล้วในหัวข้อ 4.2 ส่วนประกอบแผนภูมิ ทีนี้มาดูส่วนประกอบกัน แผนภูมิ. ส่วนประกอบนี้ช่วยให้คุณสร้างแผนภูมิและกราฟต่างๆ ที่ดูน่าประทับใจมาก (รูปที่ 4.8) ส่วนประกอบ แผนภูมิมีคุณสมบัติ วิธีการ เหตุการณ์มากมาย ดังนั้น หากพิจารณาให้ครบแล้วเราก็ต้องอุทิศบทนี้ให้หมด ดังนั้นเราจะจำกัดตัวเองให้พิจารณาเฉพาะลักษณะสำคัญเท่านั้น แผนภูมิ. คุณสามารถค้นหาส่วนที่เหลือได้ในวิธีใช้ในตัวของ Delphi หรือลองใช้โดยการทดลองกับไดอะแกรม ส่วนประกอบ แผนภูมิเป็นภาชนะใส่วัตถุ ชุดพิมพ์ TChartSeries- ชุดข้อมูลที่มีรูปแบบการแสดงผลที่แตกต่างกัน แต่ละส่วนประกอบอาจมีหลายซีรี่ส์ หากคุณต้องการแสดงกราฟ แต่ละชุดจะสัมพันธ์กับเส้นโค้งหนึ่งเส้นบนกราฟ หากคุณต้องการแสดงแผนภูมิ สำหรับแผนภูมิบางประเภท คุณสามารถวางซ้อนชุดข้อมูลต่างๆ ซ้อนกันได้ สำหรับแผนภูมิอื่นๆ (เช่น แผนภูมิวงกลม) อาจดูน่าเกลียด อย่างไรก็ตาม ในกรณีนี้ คุณสามารถตั้งค่าองค์ประกอบเดียวได้ แผนภูมิข้อมูลเดียวกันหลายชุดพร้อมแผนภูมิประเภทต่างๆ จากนั้น โดยการกำหนดให้หนึ่งในนั้นใช้งานในแต่ละครั้ง คุณสามารถให้ผู้ใช้เลือกประเภทของแผนภูมิที่แสดงข้อมูลที่พวกเขาสนใจได้ วางส่วนประกอบหนึ่งหรือสองชิ้น (ถ้าคุณต้องการทำซ้ำรูปที่ 4.8) แผนภูมิบนแบบฟอร์มและดูคุณสมบัติที่เปิดในตัวตรวจสอบวัตถุ นี่คือคำอธิบายบางส่วนของพวกเขา กำหนดว่าผู้ใช้สามารถเลื่อนส่วนที่สังเกตของกราฟระหว่างการดำเนินการได้หรือไม่ โดยคลิกปุ่มเมาส์ขวา ค่าที่เป็นไปได้: pmNone - ห้ามเลื่อน, pmHorizontal, pmVertical หรือ pmBoth - อนุญาตให้เลื่อนตามลำดับ เฉพาะในทิศทางแนวนอน ในแนวตั้งเท่านั้น หรือในทั้งสองทิศทาง อนุญาตให้ผู้ใช้เปลี่ยนขนาดภาพในระหว่างดำเนินการ โดยตัดส่วนของแผนภูมิหรือกราฟออกด้วยเคอร์เซอร์ของเมาส์ (รูปที่ 4.8 b ด้านล่างแสดงช่วงเวลาของการดูส่วนของกราฟ ซึ่งนำเสนอทั้งหมดในรูปที่ 4.8 a) กำหนดชื่อเรื่องของแผนภูมิ กำหนดป้ายกำกับสำหรับแผนภูมิ ไม่มีโดยค่าเริ่มต้น ข้อความลายเซ็นถูกกำหนดโดยคุณสมบัติย่อย Text กำหนดเส้นขอบรอบๆ ไดอะแกรม คำอธิบายแผนภูมิคือรายการสัญลักษณ์ ขอบซ้าย ขอบขวา ขอบบน ขอบล่าง ค่าระยะขอบซ้าย ขวา บน และล่าง แกนล่าง แกนซ้าย แกนขวา คุณสมบัติเหล่านี้จะกำหนดลักษณะของแกนล่าง ซ้าย และขวา ตามลำดับ การตั้งค่าคุณสมบัติเหล่านี้เหมาะสมสำหรับกราฟและแผนภูมิบางประเภท ผนังด้านซ้าย ผนังด้านล่าง ผนังด้านหลัง คุณสมบัติเหล่านี้จะกำหนดลักษณะของขอบด้านซ้าย ด้านล่าง และด้านหลังของพื้นที่แสดงผลสามมิติของกราฟ ตามลำดับ (ดูรูปที่ 4.8 ก กราฟด้านล่าง) รายการชุดข้อมูลที่แสดงในส่วนประกอบ เปิดหรือปิดการแสดงแผนภูมิ 3 มิติ ลักษณะของการแสดงผลสามมิติ สเกลสามมิติ (สำหรับรูปที่ 4.8 นี่คือความหนาของแผนภาพและความกว้างของแถบกราฟ) ถัดจากคุณสมบัติหลายรายการใน Object Inspector มีปุ่มที่มีจุดไข่ปลาที่ให้คุณเรียกหน้าใดหน้าหนึ่งของ Chart Editor ซึ่งเป็นหน้าต่างหลายหน้าที่ให้คุณตั้งค่าคุณสมบัติทั้งหมดของแผนภูมิ ตัวแก้ไขไดอะแกรมสามารถเรียกได้ด้วยการดับเบิลคลิกที่ส่วนประกอบ แผนภูมิหรือโดยการคลิกขวาแล้วเลือกคำสั่งแก้ไขแผนภูมิจากเมนูป๊อปอัป หากคุณต้องการลองทำซ้ำแอปพลิเคชันที่แสดงในรูปที่ 4.8 ให้ดับเบิลคลิกที่ส่วนประกอบด้านบน แผนภูมิ. คุณจะถูกนำไปที่หน้าต่าง Chart Editor (รูปที่ 4.9) ไปยังหน้า Chart ซึ่งมีหลายแท็บ ก่อนอื่น คุณจะสนใจแท็บซีรีส์ที่อยู่ตรงนั้น คลิกที่ปุ่มเพิ่ม - เพิ่มซีรี่ส์ คุณจะถูกนำไปที่หน้าต่าง (รูปที่ 4.10) ซึ่งคุณสามารถเลือกประเภทของแผนภูมิหรือกราฟได้ ในกรณีนี้ ให้เลือก พาย - แผนภูมิวงกลม การใช้แท็บ Titles คุณสามารถตั้งชื่อแผนภูมิได้ แท็บ Legend ช่วยให้คุณสามารถตั้งค่าพารามิเตอร์สำหรับการแสดงคำอธิบายแผนภูมิ (รายการสัญลักษณ์) หรือลบออกจากหน้าจอทั้งหมดได้ แท็บ Panel จะกำหนดลักษณะที่ปรากฏของแผงบน ซึ่งแผนภูมิที่แสดงอยู่ แท็บ 3D เปิดโอกาสให้คุณเปลี่ยนรูปลักษณ์ของแผนภูมิของคุณ เช่น เอียง เลื่อน ความหนา ฯลฯ เมื่อคุณทำงานใน Chart Editor และได้เลือกประเภทแผนภูมิแล้ว ส่วนประกอบต่างๆ แผนภูมิแบบฟอร์มของคุณจะแสดงลักษณะที่ปรากฏพร้อมกับข้อมูลตามเงื่อนไขที่ป้อนเข้าไป (ดูรูปที่ 4.11) รูปที่.4.10การเลือกประเภทแผนภูมิในตัวแก้ไขแผนภูมิ ดังนั้นคุณจึงสามารถเห็นผลของการปรับใช้ตัวเลือกต่าง ๆ ให้กับแอปพลิเคชันของคุณได้ทันทีซึ่งสะดวกมาก หน้าซีรีส์ซึ่งมีแท็บหลายแท็บเปิดโอกาสให้คุณเลือก ลักษณะเพิ่มเติมการแสดงซีรีส์ โดยเฉพาะอย่างยิ่งสำหรับแผนภูมิวงกลมบนแท็บรูปแบบ จะมีประโยชน์ในการเปิดใช้งานตัวเลือกวงกลมวงกลม ซึ่งจะทำให้แน่ใจได้ว่าส่วนประกอบทุกขนาด แผนภูมิแสดงแผนภูมิเป็นวงกลม บนแท็บเครื่องหมาย ปุ่มของกลุ่มสไตล์จะกำหนดสิ่งที่จะเขียนบนป้ายกำกับที่เกี่ยวข้องกับแต่ละส่วนของแผนภูมิ: ค่า - ค่า เปอร์เซ็นต์ - เปอร์เซ็นต์ ป้ายกำกับ - ชื่อข้อมูล ฯลฯ ในตัวอย่างในรูปที่ 4.8 ปุ่มเปอร์เซ็นต์เปิดใช้งานอยู่ และบนแท็บทั่วไป จะมีการตั้งค่าเทมเพลตเปอร์เซ็นต์เพื่อให้แน่ใจว่าจะแสดงเฉพาะค่าจำนวนเต็มเท่านั้น คุณสามารถเพิ่มองค์ประกอบนี้ได้ตามต้องการ แผนภูมิชุดข้อมูลอื่นที่เหมือนกันโดยคลิกที่ปุ่ม Clone บนแท็บ Series ของหน้าแผนภูมิ จากนั้นสำหรับชุดข้อมูลใหม่นี้ ให้คลิกปุ่ม Change และเลือกประเภทแผนภูมิอื่น เช่น Bar แน่นอนสอง ประเภทต่างๆไดอะแกรมในภาพเดียวจะดูไม่ดี แต่คุณสามารถปิดตัวบ่งชี้สำหรับซีรี่ส์ใหม่นี้ได้บนแท็บซีรีส์ จากนั้นให้ผู้ใช้เลือกการแสดงแผนภูมิประเภทใดประเภทหนึ่ง (เราจะแสดงวิธีการดำเนินการด้านล่าง) ออกจากตัวแก้ไขไดอะแกรม เลือกส่วนประกอบด้านล่างในแอปพลิเคชันของคุณ แผนภูมิและทำซ้ำการตั้งค่าคุณสมบัติโดยใช้ Diagram Editor ในกรณีนี้ คุณจะต้องระบุสองชุดถ้าคุณต้องการแสดงเส้นโค้งสองเส้นบนกราฟ และเลือกประเภทแผนภูมิเส้น เนื่องจากเรากำลังพูดถึงกราฟ คุณสามารถใช้แท็บแกนและผนังเพื่อระบุลักษณะพิกัดของแกนและขอบสามมิติของกราฟได้ แค่นั้นแหละสำหรับการออกแบบ รูปร่างการสมัครสิ้นสุดลง สิ่งที่เหลืออยู่คือการเขียนโค้ดที่ระบุข้อมูลที่คุณต้องการแสดง สำหรับการใช้งานทดสอบ ให้ตั้งค่าข้อมูลคงที่ในแผนภูมิวงกลม และฟังก์ชันไซน์และโคไซน์ในกราฟ หากต้องการตั้งค่าที่แสดง คุณต้องใช้วิธีการแบบอนุกรม ชุด. เรามาเน้นเพียงสามวิธีหลักเท่านั้น วิธี ชัดเจนล้างชุดข้อมูลที่ป้อนไว้ก่อนหน้านี้ วิธี เพิ่ม: (Const AValue: Double; Const ALabel: String;: TColor) ช่วยให้คุณเพิ่มจุดใหม่ลงในไดอะแกรม พารามิเตอร์ ค่าอาวัลสอดคล้องกับมูลค่าเพิ่ม พารามิเตอร์ อลาเบล- ชื่อที่จะแสดงในแผนภาพและในตำนาน Aสี- สี. พารามิเตอร์ อลาเบล- ไม่จำเป็น สามารถตั้งค่าว่างได้: "" วิธี เพิ่มXY:(Const AXValue, AYValue: Double; ALabel: String; AColor: TColor) ให้คุณเพิ่มจุดใหม่ให้กับกราฟฟังก์ชัน ตัวเลือก AXValueและ AYValueสอดคล้องกับอาร์กิวเมนต์และฟังก์ชัน ตัวเลือก อลาเบลและ Aสีเช่นเดียวกับในวิธีการ เพิ่ม. ดังนั้น ขั้นตอนการโหลดข้อมูลในตัวอย่างของเราอาจมีลักษณะดังนี้: 155;=251;=203;=404; var: คำ; เริ่มซีรีส์1 ทำ เริ่ม;(A1, "เวิร์กช็อป 1", clYellow);(A2, "เวิร์กช็อป 2", clBlue);(A3, "เวิร์กช็อป 3", clRed);(A4, "เวิร์กช็อป 4", clPurple); จบ;. ชัดเจน;. ชัดเจน; สำหรับฉัน: =0 ถึง 100 ทำ เริ่ม. AddXY (0.02*Pi*i, บาป (0.02*Pi*i), "", clRed); AddXY (0.02*Pi*i, cos (0.02*Pi*i), "", clBlue); ตัวอย่างเช่น ถ้าคุณมีข้อมูลที่แสดงในแผนภูมิ จะมีสองชุดข้อมูล ซีรีส์1และ ซีรีส์4ประเภทต่างๆ - พายและ บาร์จากนั้นคุณสามารถแนะนำขั้นตอนที่เปลี่ยนประเภทของไดอะแกรมตามคำขอของผู้ใช้ ขั้นตอนนี้สามารถเข้าร่วมกิจกรรมได้ เมื่อคลิกปุ่มบางปุ่ม คำสั่งเมนู หรือเพียงแค่ประมวลผลการคลิกบนส่วนประกอบ แผนภูมิ. เพื่อโหลดข้อมูลเข้า ซีรีส์4และทำให้มองไม่เห็นแผนภาพนี้ในครั้งแรก คุณสามารถแทรกตัวดำเนินการที่ส่วนท้ายของขั้นตอนที่กำหนดไว้ก่อนหน้านี้ได้ มอบหมาย (ชุดที่ 1); ใช้งานอยู่: =เท็จ; ตัวดำเนินการตัวแรกจะเขียนข้อมูลที่วางใหม่ ซีรีส์1, ในซีรีส์ ซีรีส์4. และตัวดำเนินการตัวที่สองทำให้มองไม่เห็นซีรีส์นี้ ซีรีส์4. การเปลี่ยนประเภทไดอะแกรมนั้นดำเนินการตามขั้นตอน ใช้งานอยู่: = ไม่ซีรีส์1. คล่องแคล่ว;. ใช้งานอยู่: = ไม่ซีรีส์4. คล่องแคล่ว; ในรูปที่ 4.8 b คุณสามารถดูผลลัพธ์ของการที่ผู้ใช้สลับไปยังมุมมองไดอะแกรมอื่น งานห้องปฏิบัติการ เรื่อง: «
กราฟิกในเดลฟี– การก่อสร้างที่ง่ายที่สุด ข้อมูลโดยย่อจากทฤษฎี Delphi ให้นักพัฒนามีวิธีในการแสดงกราฟิกสามวิธี: การวางแผนในขณะที่โปรแกรมกำลังทำงาน การใช้กราฟิกที่สร้างไว้ล่วงหน้า การสร้างภาพโดยใช้ส่วนประกอบกราฟิก ในการสร้างกราฟ คลาสพิเศษได้ถูกสร้างขึ้นซึ่งมีเครื่องมือและวิธีการในการวาดภาพ: เครื่องมือมีการอธิบายไว้ในสามคลาส - Tfont, Tpen, Tbrush; พื้นที่การวาดและวิธีการจัดทำโดยคลาส Tcanvas ระดับทีฟอนต์– ระบุลักษณะของแบบอักษรที่ใช้แสดงข้อความบนผืนผ้าใบ คุณสมบัติของคลาสอธิบายไว้ในส่วน “คุณสมบัติพื้นฐานสำหรับส่วนประกอบส่วนใหญ่” ระดับทีเพน– ระบุลักษณะของปากกา (ดินสอ) ที่ใช้วาดเส้น คุณสมบัติระดับ ทีเพน:
สี:Tcolor – สีของเส้น (ค่าเริ่มต้น – สีดำ) ความกว้าง:integer – ความหนาของเส้นเป็นพิกเซล; สไตล์
= (psSolid, psDash, psDot, psdashDot, psClear) – กำหนดรูปแบบของเส้น (ทึบ, ประ, ประ, ประประ, มองไม่เห็น) ระดับแปรง– กำหนดคุณสมบัติของแปรงที่ใช้ลงสีพื้นผิวของภาพ คุณสมบัติระดับ แปรง: สี:Tcolor – สีแปรง (ค่าเริ่มต้น – สีขาว) สไตล์– รูปแบบแปรงสามารถรับค่าต่อไปนี้: BsSolid – สีทึบ BsClear – ขาดการแรเงา บีแนวตั้ง – เส้นแนวตั้ง BsBdiagonal – เส้นทแยงมุมขวา BsDiagCross – เซลล์เฉียง Bsแนวนอน – เส้นแนวนอน BsFdiagonal – เส้นทแยงมุมซ้าย BsCross – กรง ระดับทีแคนวาส– กำหนดพื้นผิวที่จะวางภาพที่สร้างขึ้น และเครื่องมือที่ใช้สร้างภาพ: แบบอักษร ดินสอ แปรง เช่น บริเวณที่ทำงาน(canvas, “canvas”) โดยค่าเริ่มต้นจะใช้พื้นที่ไคลเอนต์ทั้งหมดของแบบฟอร์ม (โดยไม่มีส่วนหัว, เมนูหลักและบรรทัดเลื่อนแบบฟอร์ม) แต่คุณสามารถจัดสรรพื้นที่ทำงานเล็กลงภายในแบบฟอร์มโดยใช้ส่วนประกอบ เพนท์บ็อกซ์หรือ ภาพ. ที่มาของพิกัดผืนผ้าใบอยู่ที่มุมซ้ายบนของพื้นที่ทำงาน ความกว้างของพื้นที่ทำงานจะถูกกำหนดโดยที่พัก ความกว้างของไคลเอ็นต์, ความสูง – ทรัพย์สิน ความสูงของไคลเอ็นต์. คุณสมบัติระดับ ทีแคนวาส: ผ้าใบ:Tcanvas – กำหนดพื้นที่การวาด แปรง:Tbrush – แปรงสำหรับทาสีรูปทรงปิด แบบอักษร:Tfont – แบบอักษรสำหรับแสดงข้อความบนผืนผ้าใบ ปากกา:Tpen – ดินสอ (ปากกา) สำหรับวาดภาพ ปากกาโปส:Tpoint – ตำแหน่งปัจจุบันของเคอร์เซอร์ที่มองไม่เห็นบนผืนผ้าใบ ความคิดเห็น
: ประเภท Tpoint – กำหนดดังนี้: พิมพ์จุด = บันทึก พิกเซล: Tcolor - ตั้งค่าสีของพิกเซลผืนผ้าใบ X, Y - พิกัดพิกเซล คุณสมบัติ Pixels สะดวกในการใช้สำหรับการลงจุดกราฟโดยใช้จุดของสีที่เลือก วิธีการหลักของคลาส TCanvas
ขั้นตอน ย้ายไปยัง(x,y:จำนวนเต็ม); - เลื่อนปากกาโดยไม่ต้องลากเส้นไปยังจุดที่มีพิกัด (x, y) ขั้นตอน ไลน์ทู(x,y:จำนวนเต็ม); - ลากเส้นจากจุดปัจจุบันไปยังจุดที่มีพิกัด (x, y) ตัวอย่าง
: วาดเส้นทแยงมุมสีน้ำเงินบนรูปร่างจากมุมซ้ายบนของรูปร่างไปยังมุมขวาล่าง ปากกา.สี:= clblue; ย้ายไป(0,0); LineTo(ClientWidth, ความสูงไคลเอ็นต์); ขั้นตอน สี่เหลี่ยมผืนผ้า(x1,y1,x2,y2:จำนวนเต็ม); - วาดรูปสี่เหลี่ยมผืนผ้า: x1,y1 – พิกัดของมุมซ้ายบน; x2, y2 คือพิกัดของมุมขวาล่าง ตัวอย่าง
: วาดสี่เหลี่ยมจัตุรัสสีเหลืองโดยมีด้าน 60 พิกเซลอยู่ตรงกลางของรูปร่าง var Xc,Yc: จำนวนเต็ม; // Xc:=ClientWidth div 2; Xy:=ClientHeight div 2; ผ้าใบ แปรง สี:=clyellow; ผ้าใบสี่เหลี่ยมผืนผ้า (xc-30, Yc-30, xc + 30, Yc + 30); ขั้นตอน วงรี(x1,y1,x2,y2:จำนวนเต็ม); - วาดวงรีที่จารึกไว้ในสี่เหลี่ยมพร้อมพิกัดที่ระบุ ตัวอย่าง
: วาดวงรีที่จารึกไว้ในส่วนประกอบ PaintBox PaintBox1.Canvas.Pen.Width:=4; // ความกว้างของบรรทัด = 4 พิกเซล PaintBox1.Canvas.Ellipse (0,0, PaintBox1. ClientWidth, PaintBox1. ClientHeight); ขั้นตอน รูปหลายเหลี่ยม(); - วาดรูปหลายเหลี่ยมปิดที่ระบุโดยอาร์เรย์ของพิกัด ตัวอย่าง
: วาดเพชรที่เติมแล้วเชื่อมระหว่างจุดกึ่งกลางของด้านข้างของรูปร่าง วาร์ Xc,Yc:จำนวนเต็ม; // พิกัดศูนย์กลางของพื้นที่ไคลเอนต์ของแบบฟอร์ม Xc:=ClientWidth div 2; Xy:=ClientHeight div 2; ผ้าใบ แปรง สี:=Rgb(275,140,70); // ส้ม
สี
การแรเงา ผ้าใบรูปหลายเหลี่ยม(); จบ; ขั้นตอน อาร์ค(x1,y1,x2,y2,x3,y3,x4,y4:จำนวนเต็ม); - แสดงส่วนโค้งของวงรีที่ล้อมรอบด้วยสี่เหลี่ยม (x1, y1, x2, y2) ส่วนโค้งจะแสดงจากจุดที่มีพิกัด (x3,y3) ไปยังจุดที่มีพิกัด (x4,y4) ขัดต่อตามเข็มนาฬิกา ตัวอย่าง
: วาดวงรีโค้งเชื่อมต่อตรงกลางด้านบนของส่วนประกอบ ขั้นตอน Tform1.Button1Click(Sender:Tobject); วาร์ X3,y3,x4,y4: จำนวนเต็ม; ด้วย PaintBox1 ทำได้ ผ้าใบปากกาสี:= clWhite; ผ้าใบปากกากว้าง:= 3; Canvas.rectangle (0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight); X3:= ClientWidth div 2; X4:= ความกว้างของไคลเอ็นต์; Y4:= ClientHeight div 2; ผ้าใบปากกาสี:= clMaroon; Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4); จบ; ขั้นตอน คอร์ด(x1,y1,x2,y2,x3,y3,x4,y4:จำนวนเต็ม); - วาดคอร์ด - เส้นตรงที่เชื่อมจุด 2 จุดของวงรี: จุดที่มีพิกัด (x3, y3) กับจุด (x4, y4) ตัวอย่าง
: แทนที่วิธี Chord ในตัวอย่างที่กำหนดสำหรับวิธี ARC และรับผลลัพธ์ต่อไปนี้ ขั้นตอน พาย(x1,y1,x2,y2,x3,y3,x4,y4:จำนวนเต็ม); - วาดส่วนของวงรีที่เชื่อมต่อศูนย์กลางของวงรีด้วยพิกัด (x3,y3) และ (x4,y4) ตัวอย่าง
: ในตัวอย่างที่ให้ไว้สำหรับวิธี ARC ลองจินตนาการถึงวิธี PIE แล้วได้ผลลัพธ์นี้ ขั้นตอน ข้อความออก(x,y:จำนวนเต็ม;ข้อความ:สตริง); - ส่งออกสตริงที่ส่งผ่านในพารามิเตอร์ Text เป็นรูปสี่เหลี่ยมผืนผ้า มุมซ้ายบนซึ่งระบุด้วยพิกัด x, y ลักษณะแบบอักษรถูกกำหนดโดยเครื่องมือแบบอักษร ตัวอย่าง
: เขียนชื่อกราฟที่พล็อตไว้ที่ด้านล่างของแบบฟอร์ม Canvas.Font.Height:=20 ; //ตัวอักษรสูง 20 พิกเซล Canvas.Font.Color:=clblue; Canvas.TextOut (10, ClientHeight-24, 'กราฟของฟังก์ชัน SIN (X)'); ส่วนประกอบกราฟิก
Delphi นำเสนอส่วนประกอบสำเร็จรูปจำนวนหนึ่งที่ช่วยให้คุณสามารถปรับปรุงได้ หน้าจอผู้ใช้. ส่วนประกอบเหล่านี้อยู่บนหน้า เพิ่มเติมและ ระบบจานสีส่วนประกอบ ส่วนประกอบภาพ(ระดับทิเมจ)
– สร้างขึ้นเพื่อแสดงภาพกราฟิกที่เก็บไว้ในไฟล์ภายนอกพร้อมนามสกุล: Ico(ไอคอน รูปสัญลักษณ์); บีเอ็มพี( ภาพแรสเตอร์, บิตแมป); Wmf, .emf (เมตาไฟล์); JPEG, .jpeg (รูปภาพบีบอัด JPEG) ขั้นพื้นฐาน คุณสมบัติ
: ปรับขนาดอัตโนมัติ:boolean – เมื่อใด จริงส่วนประกอบจะปรับขนาดตามขนาดของภาพที่โหลด ค่าเริ่มต้นเป็นเท็จ ยืด:boolean – หากเป็นจริง ค่าที่โหลดจะครอบครองพื้นที่ทั้งหมดของส่วนประกอบ ค่าเริ่มต้นเป็นเท็จ ผ้าใบ:Tcanvas – ใช้สำหรับวาดภายในส่วนประกอบระหว่างการทำงานของโปรแกรม รูปภาพ:Tpicture - กำหนดภาพที่วางอยู่ในองค์ประกอบ ขั้นพื้นฐาน วิธีการระดับ รูปภาพ: ขั้นตอน LoadFromFile(ชื่อไฟล์:สตริง); - โหลดรูปภาพจากไฟล์ชื่อ Filename ลงในส่วนประกอบ ขั้นตอน บันทึกไปยังไฟล์(ชื่อไฟล์:สตริง); - บันทึกภาพจากส่วนประกอบไปยังไฟล์ชื่อ Filename ส่วนประกอบเพนท์บ็อกซ์ -
กำหนดพื้นที่วาดรูปสี่เหลี่ยม ทรัพย์สินหลักคือ ผ้าใบเมธอดทั้งหมดของคลาส Tcanvas ใช้ได้ แต่ไม่มีคุณสมบัติอิสระ ตัวอย่าง
: วาดรูปวงรีสีเหลืองที่จารึกไว้ในส่วนประกอบ PaintBox1 ขั้นตอน Tform1Button1Click (ผู้ส่ง: Tobject); ด้วย PaintBox1.Canvas ทำได้ แปรงสี:=clyellow; วงรี (0,0, PaintBox1.ClientWidth, PaintBox1.ClientHeight); จบ;
ส่วนประกอบBitBtn –
ปุ่มแรสเตอร์ ปุ่ม BitBtn ซึ่งแตกต่างจากปุ่มมาตรฐาน นอกจากชื่อเรื่อง (คำบรรยาย) แล้ว ยังมีรูปภาพที่ระบุโดยคุณสมบัติ สัญลักษณ์. มีชุดปุ่ม BitBtn มาตรฐานพร้อมคุณสมบัติที่กำหนดไว้ล่วงหน้า (พร้อมรูปภาพ คำจารึก และวัตถุประสงค์เฉพาะ) - ประเภทของปุ่มมาตรฐานจะถูกเลือกผ่านคุณสมบัติ ใจดี. ชนิด=(bkCustom, bkAbort,bkCancel, bkClose …) ภารกิจที่ 1
สร้างแอปพลิเคชันที่มี แบบฟอร์มหลักส่วนประกอบรูปภาพสองรายการและปุ่ม 4 ปุ่ม ("โหลดรูปภาพ", "สร้างรูปทรงเรขาคณิต", "เปลี่ยนสี", "ออก") และช่วยให้คุณ: ก) โหลดรูปภาพกราฟิกที่ผู้ใช้เลือกลงในองค์ประกอบ Image1 เพื่อให้รูปภาพนั้นครอบคลุมพื้นที่ทั้งหมดของส่วนประกอบรูปภาพ b) ใต้องค์ประกอบ Image1 แสดงข้อความว่า "นี่คือรูปภาพจากไฟล์ (สำหรับการวัดขนาดและตำแหน่งของส่วนประกอบภาพควรมีจารึก 1 อัน c) วาดรูปเรขาคณิตภายในองค์ประกอบ Image2: ส่วนของวงรีที่เชื่อมต่อตรงกลางขององค์ประกอบภาพกับตรงกลางของด้านล่างและด้านขวาขององค์ประกอบภาพ (สำหรับการเปลี่ยนแปลงขนาดและตำแหน่งของส่วนประกอบภาพ2 จะต้องสร้างรูปให้ถูกต้อง เช่น ตามข้อกำหนดเกี่ยวกับส่วนประกอบภาพ2)
d) เปลี่ยนสีของเส้นของภาพที่วาดใน Image2 ตามคำขอของผู้ใช้โดยใช้ส่วนประกอบ ColorDialog ภารกิจที่ 2
สร้างแอปพลิเคชันที่ให้คุณสุ่มวางป้ายกำกับต่างๆ (เช่น คำว่า "ไชโย!") ในองค์ประกอบรูปภาพ หากต้องการดำเนินการนี้ ให้ใช้เครื่องสร้างตัวเลขสุ่มแบบสุ่มและฟังก์ชันสุ่ม ผู้ใช้ต้องป้อนขนาดขององค์ประกอบรูปภาพ คำที่แสดงในรูปภาพ และจำนวนคำ ภารกิจที่ 3
สร้างแอปพลิเคชันที่ช่วยให้คุณสามารถเลือกชื่อของรูปทรงเรขาคณิตจากกล่องรายการและวาดรูปร่างที่เลือกในองค์ประกอบรูปภาพ สีของรูปร่างถูกเลือกจากส่วนประกอบ RadioGroup ภารกิจที่ 4
แบ่งส่วนประกอบ PaintBox1 ออกเป็น 4 ส่วนเท่าๆ กัน ทาสีแต่ละส่วนด้วยสีที่แตกต่างกัน เช่น น้ำเงิน เหลือง เขียว แดง ถัดจากแต่ละมุมของ PaintBox1 ให้เขียนพิกัดของมุมนั้น (สัมพันธ์กับที่มาของแบบฟอร์มซึ่งมีส่วนประกอบ PaintBox1 ตั้งอยู่) ภารกิจที่ 5
กับ เลือกประเภทของรูปร่างที่จะวาดจากองค์ประกอบ Radiogroup1 สีเติมจากองค์ประกอบ Radiogroup2 และวาดรูปร่างที่เลือกในองค์ประกอบรูปภาพ ภารกิจที่ 6
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) แบ่งส่วนประกอบ PaintBox1 ออกเป็น 2 ส่วนเท่าๆ กัน โดยในแต่ละส่วนให้วาดรูปวงรี โดยเติมสีที่เลือกโดยผู้ใช้ใน ColorDialog ภารกิจที่ 7
กับ เลือกชื่อของรูปทรงเรขาคณิตจากกล่องรายการและวาดรูปร่างที่เลือกในองค์ประกอบรูปภาพ รูปร่างควรเต็มไปด้วยสีที่เลือกโดยผู้ใช้ในส่วนประกอบ ColorDialog หากเลือกใช่ในส่วนประกอบ RadioGroup ภารกิจที่ 8
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) แบ่งส่วนประกอบ PaintBox1 ออกเป็น 4 ส่วนเท่าๆ กัน โดยในแต่ละส่วนให้วาดรูปทรงเรขาคณิตที่แตกต่างกัน (วงรี รูปสี่เหลี่ยมขนมเปียกปูน สามเหลี่ยม และสี่เหลี่ยมผืนผ้า) ผู้ใช้เลือกสีของแต่ละรูปร่างใน ColorGrid ภารกิจที่ 9
III หรือ IV Quarter) และสีของภาพจะถูกเลือก ภารกิจที่ 10
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) โดยที่ขนาดด้านข้างไม่สามารถเป็นข้อความ ไม่สามารถเป็นจำนวนลบ และไม่เกิน ขนาดที่เล็กกว่าแบบฟอร์ม แบ่งส่วนประกอบ PaintBox1 ออกเป็น 4 ส่วนเท่าๆ กัน ภายในแต่ละส่วนให้วาดรูปทรงเรขาคณิตที่ผู้ใช้เลือกไว้ใน Combobox (วงรี รูปสี่เหลี่ยมขนมเปียกปูน สามเหลี่ยม และสี่เหลี่ยมผืนผ้า) ผู้ใช้เลือกสีของรูปภาพใน ColorBox ภารกิจที่ 11
สร้างแอปพลิเคชันที่ช่วยให้คุณ: ในองค์ประกอบรูปภาพของสามเหลี่ยมมุมฉาก ให้ตั้งค่า ภารกิจที่ 12
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) โดยที่ขนาดด้านข้างต้องไม่เป็นข้อความ ไม่สามารถเป็นตัวเลขติดลบ และต้องไม่เกินขนาดแบบฟอร์มที่เล็กกว่า แบ่งส่วนประกอบ PaintBox1 ออกเป็น 2 ส่วนเท่าๆ กัน ภายในส่วนหนึ่งให้วาดรูปทรงเรขาคณิตที่ผู้ใช้เลือกไว้ใน Combobox (วงรี รูปสี่เหลี่ยมขนมเปียกปูน สามเหลี่ยม และสี่เหลี่ยมผืนผ้า) ผู้ใช้เลือกสีของรูปภาพใน ColorBox ตัวอย่างเช่น คุณสามารถเปลี่ยนสีของแบบฟอร์มได้ดังนี้: form1.Color:= ColorBox1.Colors; ภารกิจที่ 13
สร้างแอปพลิเคชันที่ช่วยให้คุณ: ก) วาดรูปสี่เหลี่ยมตรงกลางของรูปร่าง (ผู้ใช้ป้อนขนาดด้านข้างของสี่เหลี่ยมจัตุรัส) โดยที่ขนาดด้านข้างต้องไม่เป็นข้อความ ไม่สามารถเป็นตัวเลขติดลบ และต้องไม่เกินขนาดแบบฟอร์มที่เล็กกว่า b) แบ่งสี่เหลี่ยมจัตุรัสออกเป็นหนึ่งหรือสองเส้นทแยงมุม ขึ้นอยู่กับการรวมปุ่มช่องทำเครื่องหมาย และทาสีสามเหลี่ยมผลลัพธ์แต่ละอันด้วยสีที่แตกต่างกัน ผู้ใช้สามารถเลือกสีได้ ภารกิจที่ 14
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) โดยที่ขนาดด้านข้างต้องไม่เป็นข้อความ ไม่สามารถเป็นตัวเลขติดลบ และต้องไม่เกินขนาดแบบฟอร์มที่เล็กกว่า แบ่งส่วนประกอบ PaintBox1 ออกเป็น 2 ส่วนเท่าๆ กัน โดยด้านหนึ่งวาดรูปสี่เหลี่ยมขนมเปียกปูน และด้านในอีกส่วนให้วาดรูปสามเหลี่ยมใดๆ ผู้ใช้เลือกสีของรูปภาพใน ColorBox ตัวอย่างเช่น คุณสามารถเปลี่ยนสีของแบบฟอร์มได้ดังนี้: form1.Color:= ColorBox1.Colors; ภารกิจที่ 15
สร้างแอปพลิเคชันที่ช่วยให้คุณ: ก) ตั้งค่าขนาดขององค์ประกอบรูปภาพในแนวนอนและแนวตั้งให้เท่ากันและเท่ากับจำนวนที่ผู้ใช้ป้อนจากแป้นพิมพ์ (โดยมีเงื่อนไขว่าขนาดด้านข้างไม่สามารถเป็นข้อความ, ไม่เป็นจำนวนลบ และต้องไม่เกินขนาดแบบฟอร์มที่เล็กกว่า) b) แบ่งองค์ประกอบรูปภาพออกเป็น 4 ช่องเท่า ๆ กันโดยมีเส้นสีน้ำเงินสองเส้น c) ภายในแต่ละช่องผลลัพธ์ ให้วาดวงกลมที่จารึกไว้ (อนุญาตให้ผู้ใช้เลือกสีของวงกลมผ่านกล่องโต้ตอบการเลือกสี) ภารกิจที่ 16
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) โดยที่ขนาดด้านข้างต้องไม่เป็นข้อความ ไม่สามารถเป็นตัวเลขติดลบ และต้องไม่เกินขนาดแบบฟอร์มที่เล็กกว่า แบ่งส่วนประกอบ PaintBox1 ด้วย 9 ส่วนที่เท่ากันและกรอกสี่เหลี่ยมตารางหมากรุกผลลัพธ์แต่ละอัน ผู้ใช้เลือกสีเติมใน ColorBox ตัวอย่างเช่น คุณสามารถเปลี่ยนสีของแบบฟอร์มได้ดังนี้: form1.Color:= ColorBox1.Colors; ภารกิจที่ 17
บนแบบฟอร์ม ให้วางองค์ประกอบรูปภาพสองรายการและปุ่มสี่ปุ่ม: สีของเส้น เติมสี ตกลง และออก และองค์ประกอบแก้ไข เมื่อคุณคลิกปุ่ม OK สี่เหลี่ยมจัตุรัสด้าน X จะถูกวาดใน Image1 และสามเหลี่ยมมุมฉากที่มีขาเท่ากัน ซึ่งแต่ละด้านมีความยาว X จะถูกวาดใน Image2 จุดยอดของรูปสามเหลี่ยมเกิดขึ้นพร้อมกับจุดกำเนิดของภาพที่ 2 จุดยอดด้านหนึ่งของสี่เหลี่ยมจัตุรัสเกิดขึ้นพร้อมกับจุดกำเนิดของภาพที่ 1 ปุ่มตกลงจะใช้งานได้เฉพาะเมื่อคุณเลือกสีของเส้นและสีเติมเพื่อวาดรูปร่างเท่านั้น X – เลือกแบบสุ่มโดยใช้ฟังก์ชัน Random และค่าของ X ควรแสดงในองค์ประกอบแก้ไข ภารกิจที่ 18
สร้างแอปพลิเคชันที่อนุญาตให้ผู้ใช้กำหนดขนาดของส่วนประกอบ PaintBox1 (เป็นพิกเซล) แบ่งส่วนประกอบ PaintBox1 ออกเป็น 4 ส่วนเท่า ๆ กัน ภายในส่วนที่ผู้ใช้เลือกควรสร้างวงกลมที่เต็มขนาดตามขนาดที่ผู้ใช้กำหนด ผู้ใช้เลือกสีเติมใน ColorBox ตัวอย่างเช่น คุณสามารถเปลี่ยนสีของแบบฟอร์มได้ดังนี้: form1.Color:= ColorBox1.Colors; “การแสดงข้อมูลกราฟิกใน Delphi” โครงร่างหัวข้อ: 1.C S pppp ooooo ssss ooooo bbbb yyyy in in in yyyy vvvv ooooo dddd aaaa yy g rrrrr aaaa ffff iii hhhh eee ssss kkkk ooooo yyyy nnnn ffff ooooo rrrrr mmmm ahhh tskst iiiiii iiiiii in สี่ ใน D D D D eeee llll pppp hhhh iiii O O tttt ooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k aaaa rrrrr tttt iiii nnnnn ooooo kkkk O O tttt ooooo bbbb rrrrr aaa zhzhzh eee nnnnn iiiiii eee g g y g eee ooooo mmmm eee ttt rrrr iiii hhchh eee ssss คิคิ iiii xxxxx ffff iiii yyyy uuuu rrrrr P Pooooo ssss ttt rrrrr ooooo eee nnnn iiii eee yy g g rrrrr aaaa ffff iiii kkkk ooooo vvvv i i i และ d d d iiiiii aaaa yyyy rrrrr aaaa mmmm mmmm....
1. วิธีการแสดงข้อมูลกราฟิก ใน Delphi มีหลายวิธีในการแสดงข้อมูลกราฟิก: ผลลัพธ์ของภาพที่เตรียมไว้ล่วงหน้า (รูปภาพ, ส่วนประกอบรูปร่าง); P การสร้างกราฟและไดอะแกรม (องค์ประกอบแผนภูมิ ฯลฯ ); เอฟ อิมเมจจิ้ง โดยทางโปรแกรม(วัตถุผ้าใบ)
2.แสดง 2.แสดงรูปภาพ การแสดงรูปภาพโดยใช้ส่วนประกอบ IMAGE ที่เราตรวจสอบใน LLC DDDD DDDD LLC Yiyy และและและ ZZZZ P P P PRRRDDDDDDDDDDDDD IIII XXXX T T T T T T T T T T T T TOTEMMM .... ที่นี่เราจะพิจารณาตัวอย่างของแอนิเมชั่นที่ง่ายที่สุดซึ่งเปลี่ยนรูปภาพที่แสดงในส่วนประกอบรูปภาพเป็นระยะ ๆ . PPPP EDURRRREEEE YYYE TTTT IIII n N N n AAAAAA PP PRRR IIII MMMMEEEE RRRRR ...
3.การแสดงผล 3.การแสดงผลรูปทรงเรขาคณิต และจากส่วนประกอบ Shape ต่างๆ คุณสามารถสร้างภาพวาดง่ายๆ ได้ P ด้วยการเปลี่ยนตำแหน่ง (.Left,.Top) ขนาด (.Width,.Height) และสี (Brush.Color) ของส่วนประกอบรูปร่างในภาพวาดโดยทางโปรแกรม คุณสามารถนำองค์ประกอบของแอนิเมชั่นที่ง่ายที่สุดไปใช้ R R R R aaaa ssssssss mmmm ooooh tttt rrrrrr eee tttt yee p p p p rrrrr iii mmmm eee rrrrr....
4.การก่อสร้าง 4.การสร้างกราฟและไดอะแกรม ไดอะแกรมได้รับการออกแบบมาเพื่อการแสดงอาร์เรย์ข้อมูลตัวเลข การแสดงภาพ และการวิเคราะห์ด้วยภาพมากขึ้น PPPP rrrrr iiii mmmm eee rrrrr.... หากต้องการสร้างแผนภูมิใน Delphi มีหลายองค์ประกอบ หนึ่งในนั้นคือส่วนประกอบแผนภูมิ (ส่วน TeeChart Std)
กราฟและไดอะแกรม ข้อมูลที่จะแสดงมักจะถูกส่งผ่านไปยังแผนภูมิโดยทางโปรแกรม เช่น Series1.Clear; (ซีรีส์ที่ชัดเจน) สำหรับ i:=1 ถึง N do Series1.addxy(i, A[i], clGreen); ค่าแกน X ค่าแกน Y ป้ายแกน X สีข้อมูลบนแผนภูมิ PP aaaa sssssssssss mmmm ooooo tttt rrrrr eee tttt yee p p p p prrrr iiii mmmm eee rrrrr p p p poooo ssss ttt rrrrr ooooo eee nnnn iiiiii yayyy yyyy rrrrr aaaa ffff iii kkkk aaaa f f f f uuuu nnnn kkkk tsstst iiiiii y y y = = = = S S S S iiii nnnn ((((xxxx))))
ถัดไป: งานในห้องปฏิบัติการ ““““ OOOO tttt ooooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k k aaaa rrrrr tttt iiii nnnn ooooo kkkk i i i i yyyy eee ooooo mmmm eee tttt rrrrr iiii hchchh eee ssss kkkk iiii xxxx ffff iiii yyyy uuuu rrrrr และและ และ xxxx a a a a nnnn iiii mmmm aaaa tsstst iiii yayayaya """"...งาน: 1) พัฒนาแอปพลิเคชันสำหรับการแสดงแอนิเมชั่นอย่างง่ายโดยการเปลี่ยนรูปภาพที่แสดงในส่วนประกอบรูปภาพเป็นระยะ (จำนวนภาพอย่างน้อยสามภาพ ให้เลือกภาพด้วยตัวเอง)
ถัดไป: งานในห้องปฏิบัติการ ““““ PPPP oooo ssss tttt rrrrr ooooo eee nnnn iiii eee yy g rrrrr aaaa ffff iiii kkkk ooooo vvvv i i i i i d d d iiii aaaa yyyy rrrrr aaaa mmmm mmmm """" ..งาน: 1)M แก้ไขแอปพลิเคชัน จาก งานห้องปฏิบัติการ 9 (แสดงข้อมูลในตาราง) เพิ่มความสามารถในการแสดงข้อมูลบางส่วนจากตารางในฮิสโตแกรมหรือแผนภูมิวงกลม 2) สร้างกราฟของฟังก์ชันที่กำหนด สไลด์ 2 “การแสดงข้อมูลกราฟิกใน Delphi” โครงร่างหัวข้อ: วิธีการแสดงข้อมูลกราฟิกใน Delphi แสดงรูปภาพ การแสดงรูปทรงเรขาคณิต การสร้างกราฟและไดอะแกรม สไลด์ 3 1. วิธีการแสดงข้อมูลกราฟิก ใน Delphi มีหลายวิธีในการแสดงข้อมูลกราฟิก: ผลลัพธ์ของภาพที่เตรียมไว้ล่วงหน้า (รูปภาพ, ส่วนประกอบรูปร่าง); การสร้างกราฟและไดอะแกรม (องค์ประกอบแผนภูมิ ฯลฯ ); การสร้างภาพโดยทางโปรแกรม (วัตถุ Canvas) สไลด์ 4 แสดงรูปภาพ เราได้กล่าวถึงการแสดงรูปภาพโดยใช้ส่วนประกอบรูปภาพในหัวข้อใดหัวข้อหนึ่งก่อนหน้านี้ ที่นี่เราจะดูตัวอย่างการใช้แอนิเมชั่นอย่างง่ายโดยการเปลี่ยนรูปภาพที่แสดงในส่วนประกอบรูปภาพเป็นระยะ ไปที่ตัวอย่าง สไลด์ 5 การแสดงรูปทรงเรขาคณิต การแสดงรูปทรงเรขาคณิตอย่างง่ายบนแบบฟอร์มนั้นมาจากคอมโพเนนต์รูปร่าง สไลด์ 6 การแสดงรูปทรงเรขาคณิต คุณสมบัติพื้นฐานของส่วนประกอบรูปร่าง: สไลด์ 7 การแสดงรูปทรงเรขาคณิต คุณสามารถสร้างการออกแบบที่เรียบง่ายได้จากส่วนประกอบ Shape ต่างๆ ด้วยการเปลี่ยนตำแหน่ง (.Left, .Top), ขนาด (.Width, .Height) และสี (Brush.Color) ของส่วนประกอบรูปร่างในภาพวาดโดยทางโปรแกรม คุณสามารถปรับใช้องค์ประกอบของแอนิเมชั่นที่ง่ายที่สุดได้ ลองพิจารณาตัวอย่าง สไลด์ 8 การสร้างกราฟและไดอะแกรม ไดอะแกรมได้รับการออกแบบมาเพื่อการแสดงอาร์เรย์ข้อมูลตัวเลข การแสดงภาพ และการวิเคราะห์ด้วยภาพมากขึ้น ตัวอย่าง. มีองค์ประกอบหลายอย่างสำหรับการสร้างแผนภูมิใน Delphi หนึ่งในนั้นคือองค์ประกอบแผนภูมิ (ส่วน TeeChart Std) สไลด์ 9 การสร้างกราฟและไดอะแกรม มุมมองของส่วนประกอบแผนภูมิหลังจากติดตั้งบนแบบฟอร์ม: สไลด์ 10 การสร้างกราฟและไดอะแกรม นอกจาก “ตัวตรวจสอบวัตถุ” แล้ว ยังสามารถเข้าถึงคุณสมบัติของส่วนประกอบแผนภูมิได้ด้วยการเปิดกล่องโต้ตอบพิเศษ (ปุ่มขวาบนส่วนประกอบ \ แก้ไขแผนภูมิ...) เพิ่มชุดข้อมูล เปลี่ยนประเภทแผนภูมิ สไลด์ 11 การสร้างกราฟและไดอะแกรม การเลือกประเภทแผนภูมิ: สไลด์ 12 การสร้างกราฟและไดอะแกรม การตั้งค่าคุณสมบัติสำหรับแกนพิกัด (แกน): สไลด์ 13 การสร้างกราฟและไดอะแกรม ข้อมูลที่จะแสดงมักจะถูกส่งผ่านไปยังแผนภูมิโดยทางโปรแกรม เช่น Series1.Clear; (ซีรี่ส์ที่ชัดเจน) สำหรับ i:=1 ถึง N do Series1.addxy(i, A[i], '', clGreen); ค่าแกน X ค่าแกน Y ป้ายแกน X สีของข้อมูลบนแผนภูมิ พิจารณาตัวอย่างการพล็อตฟังก์ชัน y = Sin(x) สไลด์ 14 ถัดไป: งานห้องปฏิบัติการหมายเลข 13.1 “การแสดงรูปภาพและรูปทรงเรขาคณิต และภาพเคลื่อนไหว” ภารกิจ: 1) พัฒนาแอปพลิเคชันเพื่อใช้แอนิเมชั่นอย่างง่ายโดยการเปลี่ยนรูปภาพที่แสดงในส่วนประกอบรูปภาพเป็นระยะ (จำนวนภาพอย่างน้อยสามภาพ ให้เลือกภาพด้วยตัวเอง) สไลด์ 15 ภารกิจ: 2) คิดและวาดภาพโดยใช้ส่วนประกอบของรูปร่าง ด้วยการเปลี่ยนตำแหน่ง ขนาด หรือสีของส่วนประกอบรูปร่างในภาพวาดโดยทางโปรแกรม คุณสามารถนำองค์ประกอบของแอนิเมชั่นธรรมดาไปใช้ สไลด์ 16 ถัดไป: งานห้องปฏิบัติการหมายเลข 12.2 “การสร้างกราฟและไดอะแกรม” การมอบหมาย: ปรับเปลี่ยนแอปพลิเคชันจากงานห้องปฏิบัติการหมายเลข 9 (การแสดงข้อมูลในตาราง) เพิ่มความสามารถในการแสดงข้อมูลบางส่วนจากตารางในฮิสโตแกรมหรือแผนภูมิวงกลม 2) สร้างกราฟของฟังก์ชันที่กำหนด
ดูสไลด์ทั้งหมด
นอกจากนี้ คุณยังสามารถแสดงและป้อนข้อมูลกราฟิกบนพื้นผิวของกราฟิกดิสเพลย์ใดๆ บนผืนผ้าใบได้
รูปทรงเรขาคณิต"
PaintBox โดยให้ตรงกลางด้านขวา
ตั้งอยู่ใต้ส่วนประกอบอย่างเคร่งครัด)สร้างแอปพลิเคชันที่ช่วยให้คุณ:
รูปร่าง (วงรี สี่เหลี่ยมขนมเปียกปูน สี่เหลี่ยม) และวาด
รูปร่างที่เลือกในองค์ประกอบรูปภาพ ที่ตั้ง
รูปร่างในองค์ประกอบรูปภาพ (ไตรมาสที่ 1 ไตรมาสที่ 2
จากส่วนประกอบ RadioGroup
สีของเงาหรือสีโครงร่างของรูปภาพ ขึ้นอยู่กับ
เปิดใช้งานปุ่มช่องทำเครื่องหมาย เลือกสีได้ทาง
ส่วนประกอบ ColorGrid