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

MetodeBeskrivelse
THPDFTable.Create(ADoc: THotPDF)Oppretter tabellen bundet til dokumentet som leverer sider, fonter og bilder
THPDFTable.DestroyFrigjør tabellen sammen med hver rad og celle den eier
THPDFTable.AddColumn(Width: Single): IntegerLegger til en kolonne med gitt bredde i gjeldende sideenheter og returnerer indeksen
THPDFTable.AddRow: THPDFTableRowLegger til en rad med gjeldende kolonneantall og returnerer den
THPDFTable.SetBounds(AX, AY: Single)Plasserer tabellorigo på gjeldende side
THPDFTable.RenderMåler radhøyder, tegner bakgrunner, kantlinjer og celleinnhold, og fortsetter på nye sider så lenge det gjenstår rader

Egenskaper

EgenskapBeskrivelse
THPDFTable.Doc: THotPDFDokumentet som ble sendt til konstruktøren
THPDFTable.ColCount: IntegerAntall kolonner lagt til med THPDFTable.AddColumn
THPDFTable.RowCount: IntegerAntall rader lagt til med THPDFTable.AddRow
THPDFTable.Rows[Index: Integer]: THPDFTableRowGir tilgang til en rad etter indeks
THPDFTable.X: Single og THPDFTable.Y: SingleTabellorigo på siden i gjeldende sideenheter
THPDFTable.HeaderBgColor: TColorBakgrunnsfargen som males bak topptekstrader
THPDFTable.AlternatingBg: TColorSebrastripebakgrunn for vekselvis ikke-topptekstrader
THPDFTable.BorderColor: TColor og THPDFTable.BorderWidth: SingleFarge og bredde på rutenettlinjene i cellekantlinjene
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlignFallback-font og -justering for celler som ikke overstyrer dem
THPDFTable.Padding: SingleIndre avstand mellom cellekantlinje og innhold
THPDFTable.BottomMargin: SinglePlass reservert på sidens bunn før renderingsrunden bryter til en ny side
THPDFTable.RepeatHeader: BooleanNår sann, gjentas topptekstbandet øverst på hver fortsettelsesside
THPDFTable.TotalHeightRendered: SingleTotal 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

MedlemBeskrivelse
THPDFTableRow.Create(InitialColCount: Integer)Oppretter raden forhåndsutfylt med angitt antall celler
THPDFTableRow.DestroyFrigjør raden og cellene dens
THPDFTableRow.AddCell: THPDFTableCellLegger til én celle og returnerer den
THPDFTableRow.EnsureCells(Count: Integer): IntegerVokser raden til minst angitt celleantall og returnerer det nye antallet
THPDFTableRow.Cells[Index: Integer]: THPDFTableCellStandard array-egenskap med tilgang til en celle etter indeks
THPDFTableRow.Count: IntegerAntall celler raden holder for øyeblikket
THPDFTableRow.IsHeader: BooleanMerker raden som topptekstrad, malt med THPDFTable.HeaderBgColor og gjentatt når THPDFTable.RepeatHeader er slått på
THPDFTableRow.MinHeight: SingleNedre grense for den målte radhøyden

THPDFTableCell

THPDFTableCell bærer innholdet og cellevisse overstyringer som legges oppå tabellstandardene

EgenskapBeskrivelse
THPDFTableCell.Text: WideStringCelletekst; 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: THPDFCellVAlignVannrett og loddrett innholdsjustering i cellen
THPDFTableCell.ColSpan: Integer og THPDFTableCell.RowSpan: IntegerVannrett og loddrett sammenslåingsantall, begge med standardverdi 1
THPDFTableCell.BgColor: TColor og THPDFTableCell.HasBgColor: BooleanCellevis bakgrunnsfargeoverstyring og tilhørende tilstede-flagg
THPDFTableCell.TextColor: TColor og THPDFTableCell.HasTextColor: BooleanCellevis tekstfargeoverstyring og tilhørende tilstede-flagg
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: BooleanCellevis fontoverstyring og tilhørende tilstede-flagg
THPDFTableCell.WordWrap: BooleanBryter lang tekst over målte linjer i cellen, slått på som standard
THPDFTableCell.ImageIndex: IntegerVed null eller høyere viser cellen bildet registrert med den indeksen gjennom THotPDF.AddImage i stedet for tekst, standard -1
THPDFTableCell.ImageAspect: SingleVisningsideforhold for en bildecelle; bildet skaleres til cellebredden og høyden utledes av dette forholdet, standard 1.0
THPDFTableCell.IsHTML: BooleanSender 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

Se også