THPDFTable tabellayout og rendering
THPDFTable er den letvektige tabellayout- og renderingsmotoren som kom i v2.429.0 og eksponeres av HPDFTable-enheten
Før v2.429.0 måtte produsenter tegne celler for hånd med Rectangle pluss TextOut og hardkodede X-koordinater for kolonnene, og stykke sammen radhøyder, sebrastriper og sideskift manuelt; THPDFTable driver de eksisterende THPDFPage-tegneprimitivene, så tabeller renderes med målte radhøyder, sammenslåtte celler og automatisk fortsettelse på ny side
Enhet
HPDFTable
Brukseksempel
uses
HPDFTable;
var
Tbl: THPDFTable;
Row: THPDFTableRow;
begin
Tbl:= THPDFTable.Create(HPDF);
try
Tbl.AddColumn(80); Tbl.AddColumn(200); Tbl.AddColumn(120);
Tbl.SetBounds(50, 60);
Row:= Tbl.AddRow; Row.IsHeader:= True;
Row.Cells[0].Text:= 'No';
Row.Cells[1].Text:= 'Description';
Row:= Tbl.AddRow;
Row.Cells[0].ColSpan:= 2; // merged cell across columns 0..1
Row.Cells[0].Text:= 'merged header';
Tbl.Render;
finally
Tbl.Free;
end;
end;
THPDFTable
THPDFTable eier kolonnelayouten, rowsamlingen og renderingsrunden; den tegner gjennom THotPDF-komponenten som sendes til THPDFTable.Create og bruker bare offentlige THPDFPage- og THotPDF-medlemmer
Metoder
| Metode | Beskrivelse |
|---|---|
THPDFTable.Create(ADoc: THotPDF) | Oppretter tabellen bundet til dokumentet som leverer sider, fonter og bilder |
THPDFTable.Destroy | Frigjør tabellen sammen med hver rad og celle den eier |
THPDFTable.AddColumn(Width: Single): Integer | Legger til en kolonne med gitt bredde i gjeldende sideenheter og returnerer indeksen |
THPDFTable.AddRow: THPDFTableRow | Legger til en rad med gjeldende kolonneantall og returnerer den |
THPDFTable.SetBounds(AX, AY: Single) | Plasserer tabellorigo på gjeldende side |
THPDFTable.Render | Måler radhøyder, tegner bakgrunner, kantlinjer og celleinnhold, og fortsetter på nye sider så lenge det gjenstår rader |
Egenskaper
| Egenskap | Beskrivelse |
|---|---|
THPDFTable.Doc: THotPDF | Dokumentet som ble sendt til konstruktøren |
THPDFTable.ColCount: Integer | Antall kolonner lagt til med THPDFTable.AddColumn |
THPDFTable.RowCount: Integer | Antall rader lagt til med THPDFTable.AddRow |
THPDFTable.Rows[Index: Integer]: THPDFTableRow | Gir tilgang til en rad etter indeks |
THPDFTable.X: Single og THPDFTable.Y: Single | Tabellorigo på siden i gjeldende sideenheter |
THPDFTable.HeaderBgColor: TColor | Bakgrunnsfargen som males bak topptekstrader |
THPDFTable.AlternatingBg: TColor | Sebrastripebakgrunn for vekselvis ikke-topptekstrader |
THPDFTable.BorderColor: TColor og THPDFTable.BorderWidth: Single | Farge og bredde på rutenettlinjene i cellekantlinjene |
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlign | Fallback-font og -justering for celler som ikke overstyrer dem |
THPDFTable.Padding: Single | Indre avstand mellom cellekantlinje og innhold |
THPDFTable.BottomMargin: Single | Plass reservert på sidens bunn før renderingsrunden bryter til en ny side |
THPDFTable.RepeatHeader: Boolean | Når sann, gjentas topptekstbandet øverst på hver fortsettelsesside |
THPDFTable.TotalHeightRendered: Single | Total høyde forbrukt av siste renderingsrunde på tvers av alle sider |
THPDFTableRow
THPDFTableRow holder cellene i én tabellrad pluss radnivå-flaggene som brukes under måling og rendering
| Medlem | Beskrivelse |
|---|---|
THPDFTableRow.Create(InitialColCount: Integer) | Oppretter raden forhåndsutfylt med angitt antall celler |
THPDFTableRow.Destroy | Frigjør raden og cellene dens |
THPDFTableRow.AddCell: THPDFTableCell | Legger til én celle og returnerer den |
THPDFTableRow.EnsureCells(Count: Integer): Integer | Vokser raden til minst angitt celleantall og returnerer det nye antallet |
THPDFTableRow.Cells[Index: Integer]: THPDFTableCell | Standard array-egenskap med tilgang til en celle etter indeks |
THPDFTableRow.Count: Integer | Antall celler raden holder for øyeblikket |
THPDFTableRow.IsHeader: Boolean | Merker raden som topptekstrad, malt med THPDFTable.HeaderBgColor og gjentatt når THPDFTable.RepeatHeader er slått på |
THPDFTableRow.MinHeight: Single | Nedre grense for den målte radhøyden |
THPDFTableCell
THPDFTableCell bærer innholdet og cellevisse overstyringer som legges oppå tabellstandardene
| Egenskap | Beskrivelse |
|---|---|
THPDFTableCell.Text: WideString | Celletekst; rendres gjennom THPDFPage.TextOutHTML når THPDFTableCell.IsHTML er sann, slik at inline-markering for fet, farge, lenker og sub/sup blir fulgt |
THPDFTableCell.Align: THPDFCellAlign og THPDFTableCell.VAlign: THPDFCellVAlign | Vannrett og loddrett innholdsjustering i cellen |
THPDFTableCell.ColSpan: Integer og THPDFTableCell.RowSpan: Integer | Vannrett og loddrett sammenslåingsantall, begge med standardverdi 1 |
THPDFTableCell.BgColor: TColor og THPDFTableCell.HasBgColor: Boolean | Cellevis bakgrunnsfargeoverstyring og tilhørende tilstede-flagg |
THPDFTableCell.TextColor: TColor og THPDFTableCell.HasTextColor: Boolean | Cellevis tekstfargeoverstyring og tilhørende tilstede-flagg |
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: Boolean | Cellevis fontoverstyring og tilhørende tilstede-flagg |
THPDFTableCell.WordWrap: Boolean | Bryter lang tekst over målte linjer i cellen, slått på som standard |
THPDFTableCell.ImageIndex: Integer | Ved null eller høyere viser cellen bildet registrert med den indeksen gjennom THotPDF.AddImage i stedet for tekst, standard -1 |
THPDFTableCell.ImageAspect: Single | Visningsideforhold for en bildecelle; bildet skaleres til cellebredden og høyden utledes av dette forholdet, standard 1.0 |
THPDFTableCell.IsHTML: Boolean | Sender THPDFTableCell.Text gjennom THPDFPage.TextOutHTML slik at inline-markering renderes |
Justering-enumerasjoner
THPDFCellAlign = (caLeft, caCenter, caRight) velger vannrett cellejustering og THPDFCellVAlign = (cvaTop, cvaMiddle, cvaBottom) velger loddrett cellejustering
Layout og sideskiftatferd
Radhøyder måles fra celleinnholdet med hensyn til ordbrudd og THPDFTableRow.MinHeight, spennende celler plasseres på et internt rutenett slik at THPDFTableCell.ColSpan og THPDFTableCell.RowSpan slås korrekt sammen på tvers av rader, og renderingsrunden bryter til en ny side når neste rad ikke får plass over THPDFTable.BottomMargin
Når THPDFTable.RepeatHeader er sann, gjentas topptekstbandet øverst på hver fortsettelsesside før flere rader tegnes
Bildeceller introdusert i v2.432.0 refererer et bilde registrert gjennom THotPDF.AddImage etter indeks, skaleres til cellebredden og utleder høyden fra THPDFTableCell.ImageAspect, slik at bildet beholder sideforholdet sitt