TVirtualStringTree ürününü kullanmak için standart TTreeView'den bir ağaç görünümü dönüştürüyorum. Son görevim, bilinen düğüm simgesinin üstünde bir 'geçme/başarısızlık' durum göstergesini çizmem gereken bir özellik uygulamaktır. TTreeView ile kullandığım: TVirtualStringTree ileTemel Delphi TVirtualTreeView düğümü simgesinin üst kısmındaki bindirme simgesi en iyi nasıl oluşturulur
İyileşmeliyim ya daha iyi bir yol bulmak ya ümit: aşağıda gösterildiği gibi
var
R : TRect;
begin
R := Node.DisplayRect(True);
StatusIconList.Draw(TreeView1.Canvas,
R.Left - StatusIconList.Width - 14,
R.Top,
3 {MyOverlayImageIndex});
sonuç temel simgesinin üzerine kırmızı haç ise gerekli yer paylaşımlı simge konumu için bilinen konumlar. Ben yapıyorum:
procedure DrawFailed;
var
R : TRect;
begin
R := CellRect;
StatusIconList.Draw(TargetCanvas,
R.Left - StatusIconList.Width + 49 + Sender.GetNodeLevel(Node) * 16,
R.Top,
siiFailed);
end;
Bu en iyi çözüm mü? Temel ikonun üst/sol köşesini, korkunç düğüm seviyesi çağrısı olmadan almanın daha iyi bir yolu var mı?
Bu iyi bir nokta, teşekkürler. MyImageList.Overlay (8,0) ve MyImageList.Overlay (9,1) adlı görüntü listeme bir çift resim ekledim ve Kind in ikOverlay olduğunda 0 veya 1 döndürmek için OnGetImageIndex ayarlandı . Bununla birlikte, yalnızca temel simgeleri hiçbir bindirme görünmüyor. Ayarlamam gereken başka bir anahtar var mı lütfen? Teşekkürler. –
Tam olarak ne yapılması gerekiyorsa onu denedim ve işe yarıyor, başka bir şeyin farkında değilim, üzgünüm. –