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
| Metot | Açıklama |
|---|---|
THPDFTable.Create(ADoc: THotPDF) | Sayfa, font ve görüntü sağlayan belgeye bağlı tabloyu oluşturur |
THPDFTable.Destroy | Tabloyu, sahiplendiği her satır ve hücreyle birlikte serbest bırakır |
THPDFTable.AddColumn(Width: Single): Integer | Verilen genişlikte, güncel sayfa birimleriyle bir kolon ekler ve indeksini döndürür |
THPDFTable.AddRow: THPDFTableRow | Gü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.Render | Satı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
| Özellik | Açıklama |
|---|---|
THPDFTable.Doc: THotPDF | Yapıcıya sağlanan bağlı belge |
THPDFTable.ColCount: Integer | THPDFTable.AddColumn ile eklenen kolon sayısı |
THPDFTable.RowCount: Integer | THPDFTable.AddRow ile eklenen satır sayısı |
THPDFTable.Rows[Index: Integer]: THPDFTableRow | Bir satıra indeksle erişir |
THPDFTable.X: Single ve THPDFTable.Y: Single | Güncel sayfa birimlerinde sayfa üzerindeki tablo orijini |
THPDFTable.HeaderBgColor: TColor | Başlık satırlarının arkasına boyanan arka plan rengi |
THPDFTable.AlternatingBg: TColor | Alternatif başlık dışı satırlara uygulanan zebra şeridi arka planı |
THPDFTable.BorderColor: TColor ve THPDFTable.BorderWidth: Single | Hücre kenarlıkları için kullanılan ızgara çizgisi rengi ve genişliği |
THPDFTable.DefaultFontName: AnsiString, THPDFTable.DefaultFontSize: Single, THPDFTable.DefaultAlign: THPDFCellAlign | Geçersiz kılmayan hücreler için yedek font ve hizalama |
THPDFTable.Padding: Single | Hücre kenarlığı ile içeriği arasındaki iç boşluk |
THPDFTable.BottomMargin: Single | Render geçişi yeni bir sayfaya geçmeden önce sayfanın altında rezerve edilen alan |
THPDFTable.RepeatHeader: Boolean | True olduğunda başlık bandı her devam sayfasının tepesinde yeniden yayımlanır |
THPDFTable.TotalHeightRendered: Single | Son 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
| Üye | Açıklama |
|---|---|
THPDFTableRow.Create(InitialColCount: Integer) | Satırı, verilen hücre sayısıyla önceden doldurulmuş olarak oluşturur |
THPDFTableRow.Destroy | Satırı ve hücrelerini serbest bırakır |
THPDFTableRow.AddCell: THPDFTableCell | Bir hücre ekler ve onu döndürür |
THPDFTableRow.EnsureCells(Count: Integer): Integer | Satı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]: THPDFTableCell | Bir hücreye indeksle erişen varsayılan dizi özelliği |
THPDFTableRow.Count: Integer | Satırın hâlen taşıdığı hücre sayısı |
THPDFTableRow.IsHeader: Boolean | Satı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
| Özellik | Açıklama |
|---|---|
THPDFTableCell.Text: WideString | Hü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: THPDFCellVAlign | Hücre içindeki yatay ve dikey içerik hizalaması |
THPDFTableCell.ColSpan: Integer ve THPDFTableCell.RowSpan: Integer | Yatay ve dikey birleştirme sayıları; ikisi de varsayılan 1 |
THPDFTableCell.BgColor: TColor ve THPDFTableCell.HasBgColor: Boolean | Hücre başına arka plan rengi geçersiz kılması ve varlık bayrağı |
THPDFTableCell.TextColor: TColor ve THPDFTableCell.HasTextColor: Boolean | Hücre başına metin rengi geçersiz kılması ve varlık bayrağı |
THPDFTableCell.FontName: AnsiString, THPDFTableCell.FontSize: Single, THPDFTableCell.FontStyle: TFontStyles, THPDFTableCell.HasFont: Boolean | Hücre başına font geçersiz kılması ve varlık bayrağı |
THPDFTableCell.WordWrap: Boolean | Uzun metni hücre içinde ölçülmüş satırlara sarmalar; varsayılan olarak etkindir |
THPDFTableCell.ImageIndex: Integer | Sı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: Single | Gö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: Boolean | THPDFTableCell.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