DrawTextFlowColumns
ข้อความ, เลย์เอาต์
คำอธิบาย
ไหลข้อความที่เหลือจากซ้ายไปขวาผ่านคอลัมน์กว้างเท่ากันในพื้นที่หน้าหนึ่งแห่ง
ไวยากรณ์
Delphi
Function TPDFlib.DrawTextFlowColumns(FlowID: Integer; Left, Top, Width, Height: Double; Columns: Integer; Gutter: Double; Balance: Integer): Integer;ActiveX
Function PDFlib::DrawTextFlowColumns(FlowID As Long, Left As Double, Top As Double, Width As Double, Height As Double, Columns As Long, Gutter As Double, Balance As Long) As LongDLL
int DLDrawTextFlowColumns(int InstanceID, int FlowID, double Left, double Top, double Width, double Height, int Columns, double Gutter, int Balance);พารามิเตอร์
| FlowID | Handle returned by NewTextFlow |
|---|---|
| Left, Top | ตำแหน่งบนซ้ายของพื้นที่คอลัมน์ทั้งหมด |
| Width, Height | ขนาดที่มีสำหรับพื้นที่คอลัมน์ทั้งหมด |
| Columns | จำนวนคอลัมน์กว้างเท่ากันตั้งแต่ 1 ถึง 64 |
| Gutter | Non-negative space between adjacent columns |
| Balance | 0 เติมแต่ละคอลัมน์เต็มความสูง ส่วน 1 จัดสมดุลพื้นที่ที่จบแล้ว |
ค่าที่ส่งคืน
คืนค่าจำนวนบรรทัดที่วาดทั้งหมด หรือ 0 เมื่ออะไรไม่พอดี, แฮนเดิลไม่ถูกต้อง หรือเรขาคณิตไม่ถูกต้อง
หมายเหตุ
เมื่อ Balance เป็น 1 และข้อความที่เหลือทั้งหมดพอดีพื้นที่ทั้งหมด ฟังก์ชันจะแบ่งจำนวนบรรทัดที่เหลือเป๊ะๆ ลงคอลัมน์ตามที่ขอเมื่อข้อความเหลือมากกว่าที่พื้นที่จุ ทุกคอลัมน์จะคงความสูงเต็มตามที่ขอ, ความจุบนหน้ากลางๆ จึงไม่ถูกลดลง
การจัดสมดุลวัดเพิ่มสูงสุดหนึ่งบรรทัดเกินความจุของพื้นที่ ไม่ต้องสแกนเนื้อหายาวๆ ทั้งชุดที่ต้องไปต่ออีกหน้าเรขาคณิตไม่ถูกต้องและพื้นที่ที่สั้นกว่าหนึ่งบรรทัดจะคง cursor ของ flow ไว้เดิม
ตัวอย่าง
while PDF.TextFlowFinished(Flow)= 0 do
begin
PDF.DrawTextFlowColumns(Flow, 50, 60, 495, 720, 3, 18, 1);
if PDF.TextFlowFinished(Flow)= 0 then PDF.NewPage;
end;