THPDFTable Tablo Yerleşimi ve Render'ı

THPDFTable; v2.429.0'da sunulan ve HPDFTable unit'i tarafından açılan hafif tablo yerleşimi ve render motorudur

v2.429.0'dan önce üreticiler hücreleri Rectangle ve TextOut ile sabit kodlanmış kolon X koordinatlarıyla elle çizmek zorundaydı; satır yüksekliklerini, zebra şeritlemeyi ve sayfa sonlarını elle yönettiler. THPDFTable, mevcut THPDFPage çizim ilkellerini sürer; böylece tablolar ölçülmüş satır yükseklikleri, birleştirilmiş hücreler ve otomatik sayfa sonu devamıyla render edilir

Unit

HPDFTable

Kullanım örneği

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;          // 0..1 kolonları arasında birleştirilmiş hücre
    Row.Cells[0].Text:= 'merged header';
    Tbl.Render;
  finally
    Tbl.Free;
  end;
end;

THPDFTable

THPDFTable; kolon yerleşimini, satır koleksiyonunu ve render geçişini sahiplenir. THPDFTable.Create'e geçirilen THotPDF bileşeni üzerinden çizer ve yalnızca herkese açık THPDFPage ve THotPDF üyelerini kullanır

Metotlar

MetotAçıklama
THPDFTable.Create(ADoc: THotPDF)Sayfa, font ve görüntü sağlayan belgeye bağlı tabloyu oluşturur
THPDFTable.DestroyTabloyu, sahiplendiği her satır ve hücreyle birlikte serbest bırakır
THPDFTable.AddColumn(Width: Single): IntegerVerilen genişlikte, güncel sayfa birimleriyle bir kolon ekler ve indeksini döndürür
THPDFTable.AddRow: THPDFTableRowGüncel kolon sayısına boyutlanmış bir satır ekler ve onu döndürür
THPDFTable.SetBounds(AX, AY: Single)Tablo orijinini güncel sayfa üzerinde konumlandırır
THPDFTable.RenderSatır yüksekliklerini ölçer, arka planları, kenarlıkları ve hücre içeriklerini çizer; satır kaldıkça yeni sayfalarda devam eder

Özellikler

ÖzellikAçıklama
THPDFTable.Doc: THotPDFYapıcıya sağlanan bağlı belge
THPDFTable.ColCount: IntegerTHPDFTable.AddColumn ile eklenen kolon sayısı
THPDFTable.RowCount: IntegerTHPDFTable.AddRow ile eklenen satır sayısı
THPDFTable.Rows[Index: Integer]: THPDFTableRowBir satıra indeksle erişir
THPDFTable.X: Single ve THPDFTable.Y: SingleGüncel sayfa birimlerinde sayfa üzerindeki tablo orijini
THPDFTable.HeaderBgColor: TColorBaşlık satırlarının arkasına boyanan arka plan rengi
THPDFTable.AlternatingBg: TColorAlternatif başlık dışı satırlara uygulanan zebra şeridi arka planı
THPDFTable.BorderColor: TColor ve THPDFTable.BorderWidth: SingleHücre kenarlıkları için kullanılan ızgara çizgisi rengi ve genişliği
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlignGeçersiz kılmayan hücreler için yedek font ve hizalama
THPDFTable.Padding: SingleHücre kenarlığı ile içeriği arasındaki iç boşluk
THPDFTable.BottomMargin: SingleRender geçişi yeni bir sayfaya geçmeden önce sayfanın altında rezerve edilen alan
THPDFTable.RepeatHeader: BooleanTrue olduğunda başlık bandı her devam sayfasının tepesinde yeniden yayımlanır
THPDFTable.TotalHeightRendered: SingleSon render geçişinin tüm sayfalar boyunca tükettiği toplam yükseklik

THPDFTableRow

THPDFTableRow; bir tablo satırının hücrelerini ve ölçme ile render sırasında kullanılan satır düzeyi bayrakları taşır

ÜyeAçıklama
THPDFTableRow.Create(InitialColCount: Integer)Satırı, verilen hücre sayısıyla önceden doldurulmuş olarak oluşturur
THPDFTableRow.DestroySatırı ve hücrelerini serbest bırakır
THPDFTableRow.AddCell: THPDFTableCellBir hücre ekler ve onu döndürür
THPDFTableRow.EnsureCells(Count: Integer): IntegerSatırı en az verilen hücre sayısına büyütür ve yeni sayıyı döndürür
THPDFTableRow.Cells[Index: Integer]: THPDFTableCellBir hücreye indeksle erişen varsayılan dizi özelliği
THPDFTableRow.Count: IntegerSatırın hâlen taşıdığı hücre sayısı
THPDFTableRow.IsHeader: BooleanSatırı, THPDFTable.HeaderBgColor ile boyanan ve THPDFTable.RepeatHeader etkinken yinelenen bir başlık satırı olarak işaretler
THPDFTableRow.MinHeight: SingleÖlçülen satır yüksekliğine uygulanan alt sınır

THPDFTableCell

THPDFTableCell; içeriği ve tablo varsayılanlarının üzerine uygulanan hücre başına geçersiz kılmaları taşır

ÖzellikAçıklama
THPDFTableCell.Text: WideStringHücre metni; THPDFTableCell.IsHTML true olduğunda THPDFPage.TextOutHTML üzerinden render edilir, böylece kalın, renk, bağlantı ve sub-sup için satır içi işaretleme dikkate alınır
THPDFTableCell.Align: THPDFCellAlign ve THPDFTableCell.VAlign: THPDFCellVAlignHücre içindeki yatay ve dikey içerik hizalaması
THPDFTableCell.ColSpan: Integer ve THPDFTableCell.RowSpan: IntegerYatay ve dikey birleştirme sayıları; ikisi de varsayılan 1
THPDFTableCell.BgColor: TColor ve THPDFTableCell.HasBgColor: BooleanHücre başına arka plan rengi geçersiz kılması ve varlık bayrağı
THPDFTableCell.TextColor: TColor ve THPDFTableCell.HasTextColor: BooleanHücre başına metin rengi geçersiz kılması ve varlık bayrağı
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: BooleanHücre başına font geçersiz kılması ve varlık bayrağı
THPDFTableCell.WordWrap: BooleanUzun metni hücre içinde ölçülmüş satırlara sarmalar; varsayılan olarak etkindir
THPDFTableCell.ImageIndex: IntegerSıfır veya üstü olduğunda hücre, metin yerine o indeksle THotPDF.AddImage üzerinden kaydedilmiş görüntüyü gösterir; varsayılan -1
THPDFTableCell.ImageAspect: SingleGörüntü hücresi için görüntüleme en-boy oranı; görüntü hücre genişliğine ölçeklenir ve yüksekliği bu orandan türetilir, varsayılan 1.0
THPDFTableCell.IsHTML: BooleanTHPDFTableCell.Text'i THPDFPage.TextOutHTML üzerinden yönlendirir; böylece satır içi işaretleme render edilir

Hizalama enum'ları

THPDFCellAlign = (caLeft, caCenter, caRight) yatay hücre hizalamasını, THPDFCellVAlign = (cvaTop, cvaMiddle, cvaBottom) ise dikey hücre hizalamasını seçer

Yerleşim ve sayfa sonu davranışı

Satır yükseklikleri, hücre içeriğinden satır sarma ve THPDFTableRow.MinHeight dikkate alınarak ölçülür; span'lı hücreler THPDFTableCell.ColSpan ve THPDFTableCell.RowSpan satırlar arasında doğru biçimde birleşsin diye iç bir ızgaraya yerleştirilir ve render geçişi, sıradaki satır THPDFTable.BottomMargin üstüne sığmadığında yeni bir sayfaya geçer

THPDFTable.RepeatHeader true olduğunda başlık bandı, başka satırlar çizilmeden önce her devam sayfasının tepesinde yeniden yayımlanır

v2.432.0 ile gelen görüntü hücreleri; THotPDF.AddImage üzerinden kaydedilmiş bir görüntüye indeksle başvurur, hücre genişliğine ölçeklenir ve yüksekliğini THPDFTableCell.ImageAspect'ten türetilir; böylece resim kaynak en-boy oranını korur

Ayrıca bkz.