Sanal treeview

Bu kontrol, ağaç yönetimi için bu türdeki diğer kontrollerden farklı bir paradigma kullanır.
Şimdi İndirin

Sanal treeview Sıralama ve Özet

Reklamcılık

  • Rating:
  • Lisans:
  • LGPL
  • Yayıncı adı:
  • Mike Lischke
  • İşletim sistemleri:
  • Windows All
  • Dosya boyutu:
  • 707 KB

Sanal treeview Etiketler


Sanal treeview Açıklama

Sanal TreeView, yerden yapılmış bir treeview kontrolü olarak tasarlandı. 5 yıldan fazla gelişme, bugün mevcut olan en esnek ve gelişmiş ağaç kontrollerinden biri yaptı. Sanal TreeView, mevcut çözümlerin birçok yönünü iyileştirme iddiasıyla başlar ve daha önce mevcut olmayan bazı yeni teknolojiler ve ilkeler tanıtmaktadır. Adın zaten belirttiği gibi, bu kontrol, ağaç yönetimi için bu türdeki diğer kontrollerden farklı bir paradigma kullanır. Bir düğümün başlıkları bile değil, yönettiği veriler (boyut hariç) hakkında hiçbir şey bilmiyor. Her şey, uygulamadan olaylardan (veya geçersiz kılınan yöntemler aracılığıyla emici) ile alınır. Sanal TreeView, dikkatlice tasarlanmış ve iyice test edilmiştir. Kontrol, halihazırda birçok ticari ürün ve ücretsiz projede bulunan günlük fitness gibi kavramını kanıtladı. Ana Özellikler: Genel: Virtual TreeView Belge olarak özellik editorVirtual TreeView son derece hızlı. Bir milyon düğüm eklemek sadece 700 milisaniye alır *! Bu, şu anda Delphi / BCB pazarında halka açık olan en hızlı TreeView'u yapar. Sanal TreeView çok küçük bir hafıza ayağı baskısı var. Sadece düğüm başına yaklaşık 60 bayt ayrılarak (dize ağacında, baz ağacı sadece 56 bayt kullanır) bir milyonu tutmaya iyi hazırlanır. Sanal TreeView, yüksek hızlı erişim için optimize edilmiştir. Gerekli doğrulama ve düğüm doğrulama durumlarına bağlı olarak bir milyon düğümün (bir milyon düğümü geçmesi 0,5 saniye kadar az sürer. Multiselection, kısıtlı seçim de dahil olmak üzere desteklenir, böylece belirli bir başlangıç seviyesinin düğümleri seçilebilir. Etkili algoritmaların geliştirilmesine çok fazla çaba sarf edildi; Zaten büyük bir seçim setini hala etkileşimli olarak değiştirmeye izin vermek için. Tüm Ağacı Bir Bitmap'a Çizim veya Yazıcı, Merkez Tbasevirtualtree.painttree yöntemi tarafından desteklenir. WM_PRINT ve WM_PRINTClient mesajları doğru bir şekilde ele alınmıştır. Düğüm özel ipuçlarını görüntülemek için bir tbasevirtualtree.onhint olay var. Düğümü özel yardım bağlam kimliklerini almak için bir tbasevirtualtree.ongethelpcontext olay var. Bu, kullanıcı F1 bastığında çağrıldığında otomatik ağaç ve pencere ana kontrol geçişi içerir. NODE özel açılır menüleri almak için bir tbasevirtualtree.ongetpupupMenu olayı var, otomatik ağaç geçişi içerir. Sol düğmeye ek olarak orta ve sağ fare düğmeleri kullanılabilir ve sol düğme (sürükleme, seçim vb.) ile mümkün olan her şeyi destekleyin. Bu alternatif düğmeler elbette değiştirilebilir. Ağaçta sabit bir arka plan görüntüsü kullanılabilir ve belirli bir ofset verilebilir, örn. Paylaşılan arka planları simüle etmek için. düğümler için sıcak tarzı desteklenir (tıpkı tarayıcı penceresindeki bağlantılar gibi). Bu görev için özel bir imleç atanabilir. Dize Ağaçları, bir düğümün başlığından sonra (her sütunda) görünen ve başlığa farklı şekilde biçimlendirilebilecek ancak düzenlenemeyen ancak seçilemeyen, seçilen vb. Bir Sütun, sağa boş sütunlar varsa, bir sütunun başlığı için daha fazla alan almasını sağlayan bir Otomatik Açıklık sütun modu desteklenir. Bu, uzun başlıkların kırpılmasını önler, ancak yine de birden fazla sütun kullanılmasını sağlar. Her sütunda bir düğüm seçilebilir (bu değiştirilebilir) ve düzenlenmiş, sanal treeview'u bir tür ızgarada da yapılabilir. Sekme tuşu, odağı hücreler arasında değiştirmek için kullanılabilir. Izgara özel görevlerini desteklemek için özel bir seçenek (TOGRIDEXTENSIONS) mevcuttur. düğümleri bireysel yüksekliklere sahip olabilir ve bir düğümün görüntülerinin ve çizgilerinin dikey hizalaması ayrı ayrı ayarlanabilir. Sanal TreeView, iç durumlarını bekleyen sürükle veya düzenleme olaylarını, çoklu seçim veya devam eden ilerlemeyi ortaya çıkarır. Bu bilgiyi kullanarak bir uygulama kod yürütülmesini (durum güncellemeleri vb.) Optimize edebilir. Bir düğümün sıralaması, bir uygulama tanımlı bir karşılaştırma aracılığıyla desteklenir. Ek olarak, bir ağaç otomatik sıralama olarak ayarlanabilir. İpuçları, birden fazla metin satırı içerebilir ve görüntülendikleri düğümün veya sütunun hizalamasını ve yönelemesini yansıtabilir. Animasyonlar için kayar ve alfa karışımı mevcuttur. Artan çeşitli seçenekler ve talimatlar ile arama de mevcuttur. (Çoklu seçimi) seçilmesi sürükleyip çekmek, fare sınırlarına yakın olduğunda istemci alanının kaydırma Otomatik olur. TBaseVirtualTree.DefaultNodeHeight ve TVirtualStringTree.DefaultText aynı başlangıç değerine açıkça birçok düğüm ayar önlemek için de kullanılabilir. çok bunu bir iyi ızgara değiştirme yapma Sanal TreeView'ın sütun uygulaması da sabit sağlar sütunları,. Yeni teknolojiler: düz animasyonlar için (örn solma ipucu) sanal ağaç elle optimize MMX Çevirici usullerini kullanır. Bu kod, ayrıca çoklu seçim modunda saydam seçim dikdörtgen çizmek için kullanılır. Bu çok neyi Windows 2000 ve Windows XP desteği gibi ama Windows 95/98 / Me. Ayrıca çalışır sürükle ve bırak yaparken ağaç penceresinin bir alfa karışık bir resim gösterilir. Windows 2000 ve Windows XP IDropTargetHelper ve IDragSourceHelper arayüzleri Açık (Explorer tarafından kullanıldığı gibi) bazı çok düzgün efektler için olanak sağlayan desteklenmektedir. Eski tüketici, Windows sürümlerinde sürükleme görüntü ağacının ama bunun altındaki orada bazı küçük sınırlamalar tarafından simüle edilmektedir. Sanal ağaç Windows XP temaları destekler. Bu yerli API'leri kullanarak doğru görüntüyü temalı tüm görsel öğeler için tema değişiklikleri ve kullanımları düzgün davranır. diğer Windows sistemlerinde altında bu stilleri ayrı eski kodu tarafından desteklenmektedir. Oyun bilinci açık olabilir. Unicode: TVirtualStringTree Unicode kullanılarak işletilir / geniş şeritler özel olarak. ağaç kazandırır ve DFM / den doğru tüm Unicode özelliklerini (örneğin, kolon başlıkları, varsayılan düğüm metin ve bu gibi) okur. Tüm Unicode tamamen çekme (yani çizim-sağ-sol) (sol, merkez, sağ), kolon hizalama ve doğru bir şekilde hizalanması tavsiyeleri İki yönlülük destekler. Tabii aynı zamanda bu özellik Windows 95/98 / Me. mevcuttur Drag'n damla ve pano desteği: OLE sürükle ve bırak ve OLE pano transferleri kaynak ve hedef olarak ağacın ile desteklenmektedir. Seçenek olarak ise, VCL drag'n damla hala uyumluluk için kullanılabilir. Bu formatlar standart uygulanmasıyla destek şunlardır: Yerli (aynı zamanda uygulamalar arasında) sanal treeviews arasındaki veri değişimi için kompakt bir hale olan biçimi (CF_VIRTUALTREE ve CF_VTREFERENCE) yayınlamıştır. İki depolama biçimleri kullanılabilir: HGLOBAL ve IStream . Düz ANSI metin dizesi biçimi. Düz Unicode metin dizesi biçimi. Zengin Metin (RTF) (Unicode metin ile) dize biçimi. HTML metin dizesi biçimi (UTF-8). Bu vb Word 2000 tercih Pano biçimi ve neredeyse hiçbir uygulama kodu ile bir kelime belgesine kopyalama ve yapıştırma ağaç içeriğe izin verir. torunları belirtmek ve kendi pano biçimleri uygulamak sağlayan bir kayıt düzeni (RegisterVTClipboardFormat) yoktur. Bir damla kabı yoluyla uygulama, kendi ağaç sınıf türetmek olmadan herhangi bir OLE biçimini kabul edebilir. yerli ağaç verilerinin yardım işlenmesi amacıyla uzmanlaşmış yöntemler uygulanmaktadır. Ayrıca bkz. TBaseVirtualTree.ProcessOLEData ve TBaseVirtualTree.ProcessDrop Dropmarks veri eklenir drag'n damla sırasında göstermektedir. Bu VCL drag'n damla da çalışır. bırakma hedefi modeli damla eylemler aşağıda, yukarıda ya da düğüm üzerinde izin uzatıldı. Bu arada da bu az şey ama güçlü bir fikir kullanmaya başladılar diğer ağaç kontrollerinin satıcıları. Otomatik etkin, daha fazla ayarlanabilir bir zaman aralığından daha gerçekleştirilir için bırakma hedefi olan düğümlerin genişletmek. Başlık ve sütunlar: Birden sütunlar kendine ait bir başlık uygulaması ile desteklenmektedir. Bu başlık ağacı kontrol ve desteklerin çeşitli düğmeler stilleri (standart liste görünümü kalın düğmeler, düz düğmeler, levhalar, Windows XP stili ve özelleştirilmiş çizim) olmayan istemci alanında yer kaplar. Sütunlar ağaç penceresindeki her bir sırada ortaya çıkabilir. Her bir sütun, gerçek ağaç tutan ana sütun içeren gizlenebilir. Her bir sütun ana kolon olabilir. Sütun başlığının olmadan da gösterilebilir. Sütunlar çeşitli seçenekleri sahip olabilir (görünür, tıklanabilir, boyutlandırılabilir, sürüklenebilir vb.). Her sütun için ayrı hizalamalarını set yanı sıra edebilirsiniz-sağa-sola veya soldan sağa (tekrar: olmayan orta doğu ve eski Windows tüketici sistemlerinde de kullanılabilir) yönlülük . Her kolon, kendi renk olabilir. başlık hem de sütun koleksiyon sınıfı ve gerçek sütun sınıfları akışı destekler. Bu ağaç streaming bağımsızdır. ara destek: ağacın her düğüm kendi çek türü olabilir. Bu ikisinden biri olabilir onay kutusu (aynı zamanda üç durumlu), radyo düğmesi veya düğüm düğmesine basın. Eğer örneğin bir onay kutusu sahip olabilir: 5 (bu 5 düğümleri sadece bir kontrol edilebilir), bir radyo grubunu içermektedir olan 10 düğümleri ve diğer 5 düğümlerle bir düğüm (veya kontrol var böylece bu tür serbest karışık olabilir ) hiç girin. . (genellikle yükleme ve yedekleme programları içinde kullanıldığı gibi): çocuk düğümleri kısmen kontrol etmek için uygun bir işleme ile karma (tri-durum) onay kutuları desteklenir karışık kontrol düğmesi türü için otomatik durum değişikliği yayılma mümkündür (etkin ise). olayları kontrol OnChecking ve OnCheck olayları çok beslenir. Bir düğüm düğmesi olarak adlandırılan küçük bir düz düğme kullanılabilen özel amaçlar için . onay görüntülerin 7 çeşit mümkündür. Karanlık ve ışık onay işaretleri, koyu ve açık onay işaretleri düz çek görüntüleri, Windows XP stili onay görüntüleri ve uygulama tanımlı çek görüntüler. Bir genel bakınız özelliği TBaseVirtualTree.CheckImageKind için. Tasarım süre: Sanal TreeView'ın özellikleri ve yöntemleri Delphi kategorisi (Delphi 5 ve BCB 5 ya da daha yüksek) kayıtlıdır. basit bir biçim seçim verir dahildir pano formatları için özel bir özellik editörü. Mevcut panoya formatları dizeleri olarak verildi ve bunların (etkinleştirilebilir bilmek) henüz etkin olmasa bile, aynı zamanda mevcut biçimlerinin listesini olması oldukça kullanışlı olması gerekir çünkü bu özellikle önemlidir. Özelleştirme: Özel çekmek ve döngüleri boya (tüm ağacı ve her bir düğüm için) boya etkinlikleri ile desteklenmektedir. yanı sıra ayrı bir görüntü listesi (TBaseVirtualTree.CustomCheckImages) tarafından desteklenen bir kullanıcı tanımlı çek resmi kullanılabilir dahili kontrol türlerinden. başlığında her düğme ayrı çizilebilir. Üç farklı hatlar tasarımı mevcuttur: içerisindeki noktalı çizgiler, düz çizgiler ve uygulama tarif hatları . Uygulamalar ve kökenini TBaseVirtualTree.OnCreateEditor olay işleme veya TBaseVirtualTree.DoCreateEditor geçersiz kılma (tek bir kontrol olmak zorunda değildir vardır) kendi düğüm düzenleyicisi sağlar. Bu, tamamen kendi (iş) kurallarına göre düğüm düzenleme yerine sağlar. Uygulamalar ve torunları TBaseVirtualTree.OnCreateDragManager olayını ele veya TBaseVirtualTree.DoCreateDragManager geçersiz kılarak kendi sürükleme yöneticisi arayüzü sağlayabilir. Bu ağacın tüm OLE sürükleme işleme özelleştirmesine olanak tanır. Not:. Bu özelleştirilemez böylece VCL drag'n damla VCL tarafından yönetilmektedir Uygulamalar ve kökenini TBaseVirtualTree.OnCreateDataObject olay işleme veya TBaseVirtualTree.DoCreateDataObject geçersiz kılma kendi veri nesnesi arabirim sağlar. Bu kendi pano biçimlerini sağlamamıza olanak tanır. kendi panoya ve / veya depolama formatları ile ağaç kökenini kayıt sağlayan bir kayıt fonksiyonu (RegisterVTClipboardFormat) bulunmaktadır. Uygulamalar TBaseVirtualTree.GetUserClipboardFormats olayını işleyerek (yeni ağaç sınıfları türetmek olmadan) kendi pano biçimlerini sağlayabilir. Uygulamalar ve torunları tamamen TBaseVirtualTree.OnKeyAction olayını ele veya TBaseVirtualTree.DoKeyAction geçersiz kılarak ağacın anahtar taşıma değiştirebilir. Bu artımlı arama için de çalışır. Uygulamalar ve torunları TBaseVirtualTree.OnPaintbackground olayını ele veya TBaseVirtualTree.DoPaintbackground geçersiz kılarak, düğümler kapsamında değildir ağacın arka planını özelleştirebilirsiniz. düğümler için özelleştirme için başka olay vardır. Uygulamalar ve torunları özelleştirebilirsiniz nasıl TCustomVirtualStringTree.OnShortenString olayını ele veya TCustomVirtualStringTree.DoShortenString geçersiz kılarak çok uzun başlıklar dize ağaç kısaltır. Kaydırma: Flat kaydırma çubukları desteklenir. ancak Windows XP ile onlar çatışma beri bu destek bir derleyici sembolü (UseFlatScrollbars) tarafından kapatılır. Gerçekten ağaç birimini derlemeden önce düz kaydırma çubukları kullanmak istiyorsanız bu sembolü etkinleştirin. Her kaydırma işlemi tetikleyiciler bir TBaseVirtualTree.OnScroll olay. Bu, diğer kontrol grubu ile senkronize ağaçları sağlar. Ağaç içeriğini, etrafınıza göndermeden koddaki herhangi bir pozisyona kaydırın (örneğin, tbasevirtualtree.offsetxy) vardır. Tekerlek kaydırma ve kaydırma desteklenir. Yani, fare tekerleğini tıklatırken veya fareyi ağaç penceresinin etrafında hareket ettirirken basılı tutarken ve basılı tutarken sorunsuz kaydırılır. Akış: Sofistike ağaç içeriği serileştirilmesi, bir ağacın / akışlardan kurtarılması ve geri kazanılmasını sağlamak için uygulanmıştır. Bu, bir akışa yazıldığı sürece kullanıcı verilerini de içerir. Sanal TreeView ayrıca içeriğin tamamını değiştirmek yerine akıştan veri eklemesini sağlar. Akışın iç formatı, gelecekteki geliştirmeler için çok esnek kılan, ancak yine de eski uygulamalarla uyumlu tutar. Tbasevirtualtree.onsavenode etkinliğinde akışa yazılan verileri alan bir kullanıcı krokisi var. Bu kullanıcı krokunun verileri, tbasevirtualtree.onloadnode'da okunabilir. Geliştirici Desteği: Sanal TreeView'un kaynak kodunu tutarlı bir şekilde biçimlendirmek için özel bir özen gösterildi. Tüm uygulamanın büyük bir kısmı, iç işleri tanımlayan yorumlardır. Yöntem ve özellikler sonuç olarak kapsamları dahilinde alfabetik olarak emredilir (özel, korumalı, halk, yayınlanmış). Tek istisna, her zaman sınıf bildiriminde kamu bölümünün tepesinde görünen ve her zaman sınıf uygulamasında ilk yöntemlerdir. Her olay için, olay işleyicisini çağıran sanal bir yöntemdir. Bu, torunların bir işleyici atamadan her olaydan haberdar olmasını sağlar. Bu yöntemlerin isimleri, paterni kullanarak doğrudan olaylara karşılık gelir: DoEventName. Borland C ++ Builder uyumluluğunu sağlamak için birçok önlem alınmıştır. Bu özellikle zordur, çünkü Delphi'den C ++ koduna BCB'deki otomatik çeviri buggy. Nişancı yazarların, kendi verilerini herhangi bir düğüm olarak tahsis etmeleri için kolay ve güçlü bir mekanizma vardır. İhtiyaçlarınızı kaydetmek için tbasevirtualtree.allouchinternaldata'yı arayın. Bu, sonuç olarak, kullanıcı veri erişimi için tbasevirtualtree.getnodedata kullanıyorsa, mevcut veya gelecekteki uygulama kodunu etkilemez. Düzenleme: Uygulama tanımlı editörler, bağlantı bağlantısı arayüzü ile desteklenir. Genel (Unicode olmayan) bir editör uygulaması da mevcuttur. Ağaçtaki her sütun etkinse düzenlenebilirdir (bkz. TCustomVirtualTreeOptions.SelectionOptions.toextedFocus). Utilities: Rahatlığınız için, genel ilgi alanları olan dahili olarak kullanılan fonksiyonlardan bazıları maruz kalmaktadır. Alphablend: Bir kaynağı birkaç farklı mod kullanarak bir hedef bitmap üzerine karıştırmak için genel amaçlı bir prosedür. DrawTextW: Unicode'yu destekleyen DrawText API'nin kısmi bir uygulaması. Bu yöntemin yalnızca Windows 95/98 / Me üzerinde bir saplamaya sahiptir. Shortenstring: Belirli bir alanı belirli bir alana dönüştüren genel amaçlı bir fonksiyon. Bu, kısmen Windows DrawText API tarafından uygulanır, ancak ayrıca soldan sola hizalamaya özen gösterir ve Windows 95/98 / Me'de de Unicode ile çalışır.


Sanal treeview İlgili Yazılım