Virtueller Baumansicht.

Dieses Steuerelement verwendet ein anderes Paradigma für Baumverwaltung als andere Steuerelemente dieser Art
Jetzt downloaden

Virtueller Baumansicht. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • LGPL
  • Name des Herausgebers:
  • Mike Lischke
  • Betriebssysteme:
  • Windows All
  • Dateigröße:
  • 707 KB

Virtueller Baumansicht. Stichworte


Virtueller Baumansicht. Beschreibung

Der virtuelle Baumansicht wurde so konzipiert, dass er ein Baumansichtskontrolle ist, der aus der Erde aufgebaut ist. Mehr als 5 Jahre Entwicklung machten es zu einem der flexibelsten und fortgeschrittensten Baumsteuerungen, die heute verfügbar sind. Der virtuelle Baumansicht beginnt mit der Ansprüche, um viele Aspekte bestehender Lösungen zu verbessern und neue Technologien und Prinzipien einzuführen, die zuvor nicht verfügbar waren. Wie der Name schon angibt, verwendet diese Steuerung ein anderes Paradigma für Baumverwaltung als andere Steuerelemente dieser Art. Es weiß nichts über die Daten, die es schafft (außer seiner Größe), nicht einmal die Untertitel eines Knotens. Alles wird von der Anwendung über Ereignisse (oder Nachkommen über überschriebene Methoden) abgerufen. Virtual TreeView wurde sorgfältig gestaltet und gründlich getestet. Die Kontrolle erwies sich als auch in vielen kommerziellen Produkten und Freeware-Projekten als auch in vielen handelsüblichen Produkten und Freeware-Fitness. Haupteigenschaften: General: Virtueller TreeView als Dokumenteneigenschaft EditorVirtual TreeView ist extrem schnell. Das Hinzufügen einer Million Knoten dauert nur 700 Millisekunden *! Dies macht es derzeit der schnellste Baumview, der auf dem Delphi / BCB-Markt öffentlich erhältlich ist. Virtual Treeview hat einen sehr kleinen Memory-Fußdruck. Indem der Basisbaum nur etwa 60 Bytes pro Knoten (in der Stringbaum, nur 56 Byte verwendet), ist es gut bereit, eine Million von ihnen zu ergreifen. Virtual TreeView ist für den Zugriff mit hoher Geschwindigkeit optimiert. Es dauert nur 0,5 Sekunden, um eine Million Knoten zu durchqueren * abhängig von den erforderlichen Validierungs- und Node-Validierungszuständen. MultiSelection wird unterstützt, einschließlich einer eingeschränkten Auswahl, so dass nur Knoten eines bestimmten Anfangspegels ausgewählt werden können. Viel Anstrengung wurde in die Entwicklung wirksamer Algorithmen gebracht, z. Um zuzulassen, dass ein bereits großes Selektionsmodus noch interaktiv eingestellt ist. Zeichnen des gesamten Baums an eine Bitmap oder der Drucker wird von der zentralen TbaseVirtualTree.PaintTree-Methode unterstützt. Die Nachrichten wm_print und wm_printClient werden ordnungsgemäß behandelt, wodurch die Dinge wie Zeichnen eines Baums in eine Bitmap (z. B. für geschichtete Fenster oder zum Implementieren eines animierten Dropdowns der Steuerelemente zulassen, die VT als Dropdown-Steuerung verwenden). Es gibt ein TbaseVirtualTree.onHint-Ereignis, um Knotenspezifische Hinweise anzuzeigen. Es gibt ein TbaseVirtualTree.onThethelpContext-Ereignis, um Knotenspezifische Hilfe-Kontext-IDs abzurufen. Dazu gehören automatischer Baum- und Fenster-Elternsteuerungs-Traversal, wie er aufgerufen wird, wenn der Benutzer F1 gedrückt wird Es gibt ein TbaseVirtualTree.ongetpopupmenu-Ereignis, um Knotenspezifische Popup-Menüs abzurufen, beinhaltet automatische Treaversal. mittlere und rechte Maustasten können zusätzlich zur linken Taste verwendet werden und unterstützen alles, was mit der linken Taste (Ziehen, Auswahl usw.) möglich ist. Diese alternativen Schaltflächen können natürlich umgeschaltet werden. Ein festes Hintergrundbild kann in der Baumstruktur verwendet werden und kann einen gewissen Versatz gegeben werden, z. Um gemeinsame Hintergründe zu simulieren. Hot-Stil für Knoten wird unterstützt (wie Links in einem Browserfenster). Für diese Aufgabe kann ein spezielles Cursor zugewiesen werden. String-Bäume unterstützen sogenannten statischen Text, die nach der Bildunterschrift des Knotens (in jeder Spalte) erscheint, und das unterschiedlich auf der Beschriftung formatiert werden kann, aber nicht bearbeitet, ausgewählt, ausgewählt usw. Ein automatischer Spalten-Säulenmodus wird unterstützt, mit dem eine Spalte mehr Platz für ihre Beschriftung aufnehmen kann, wenn sie rechts leere Säulen aufweisen. Dies vermeidet das Ausschneiden von langen Bekämpfungen, ermöglicht jedoch immer noch die Verwendung mehrerer Spalten. Ein Knoten kann in jeder Spalte ausgewählt werden (dies ist umschaltbar) sowie bearbeitet, virtuellen TreeView irgendeine Art eines Gitters. Die TABER-Taste kann verwendet werden, um den Fokus zwischen den Zellen zu wechseln. Eine spezielle Option (TogrideXensionssions) gibt es, um gitterspezifische Aufgaben zu unterstützen. Knoten können einzelne Höhen und die vertikale Ausrichtung der Bilder eines Knotens haben, und die Linien können einzeln eingestellt werden. Virtual TreeView stellt seine internen Zustände wie anhängige Ziehen oder Bearbeiten von Ereignissen, Multi-Selektion aus oder erweitert. Mit dieser Information kann eine Anwendung seine Codeausführung optimieren (Statusaktualisierungen usw.). Sortieren eines Knotens wird über einen anwendungsgeleiteten Vergleichsrückrufen unterstützt. Zusätzlich kann ein Baum auf automatische Sortierung eingestellt werden. Hinweise können mehrere Textzeilen enthalten und die Ausrichtung und Richtigung des Knotens oder der Spalte spiegeln, für die sie angezeigt werden. Für ihre Animationsgleiten und Alpha-Mischung steht zur Verfügung. Inkrementelle Suche mit verschiedenen Optionen und Anweisungen sind ebenfalls verfügbar. Auto-Scrollen des Clientbereichs erfolgt, wenn sich die Maus in der Nähe der Grenzen befindet, während sie ziehen und zeichnen (Multi-Selektion). TbaseVirtualTree.DefaultNodeHeight und TVirtualStringTree.DefaultText kann verwendet werden, um zu vermeiden, dass viele Knoten explizit auf denselben Startwert eingestellt werden. Die Spaltenimplementierung von Virtual TreeView ermöglicht auch feste Säulen, wodurch ein guter Gitter-Ersatz auch ersetzt wird. Neueste Technologien: Für reibungslose Animationen (z.B. Hinweis Fading) Virtual TreeView verwendet handoptimierte MMX Assembler-Routinen. Dieser Code wird auch verwendet, um das durchscheinende Auswahlrechteck in einem Mehrfachauswahlmodus zu zeichnen. Dies ist sehr ähnlich, wie der Windows 2000- und Windows XP-Support aber auch unter Windows 95/98 / Me arbeitet. Ein Alpha-Mischbild des Baumfensters wird während des Ziehens und des Tropfens angezeigt. Auf Windows 2000- und Windows XP-IDTARGETHELPER- und IDRagSourceHelper-Schnittstellen werden unterstützt, die einige sehr nette Effekte (wie vom Explorer verwendet) zulassen. Bei älteren Konsumenten-Windows-Versionen wird das Drag-Image vom Baum simuliert, unterleiht jedoch einige kleinere Einschränkungen. Virtual TreeView unterstützt Windows XP-Themen. Es wirkt ordnungsgemäß auf Themenänderungen und verwendet für alle visuellen Elemente, die das korrekte Bild mit nativer APIs tätig sind. Unter anderen Windows-Systemen werden diese Stile von einem separaten Legacy-Code unterstützt. Themenbewusstsein kann gewechselt werden. Unicode: TVirtualStringTree wird ausschließlich mit Unicode / Wide Saiten implementiert. Der Baum speichert und liest alle Unicode-Eigenschaften (z. B. Spaltenunterschriften, Standardknoten-Text und dergleichen) richtig an / von DFM. Alle Unicode-Zeichnung unterstützt die Bidirektion (d. H. Rechts-links-Zeichnung), Säulenausrichtung (links, Mitte, rechts) und korrekt ausgerichtete Hinweise. Natürlich ist auch diese Funktion unter Windows 95/98 / Me verfügbar. Drag'n Drop und Zwischenablage Unterstützung: ole Drag & Drop- und Ole-Zwischenablageübertragungen werden mit dem Baum als Quelle und Ziel unterstützt. Alternativ kann der VCL-Drag'n-Drop noch zur Kompatibilität verwendet werden. Diese Formate unterstützen durch die Standardimplementierung: Native serialized-Format (CF_VirtualTree und CF_VTRTEFERERENCE), das eine kompakte Formulare darstellt, um Daten zwischen virtuellen Baumansichten (auch zwischen Anwendungen) auszutauschen. Es stehen zwei Speicherformate zur Verfügung: HGLobal und Istream. Einfaches ANSI-Text String-Format. Normal Unicode Text String-Format. Rich Text (RTF) String-Format (mit Unicode-Text). HTML-Text String-Format (UTF-8). Dies ist das bevorzugte Zwischenablageformat für Word 2000 usw. und ermöglicht das Kopieren und einfügen von Bauminhalten in ein Word-Dokument mit fast keinen Anwendungscode. Es gibt ein Registrierungsschema (ordentlichclipboardFormat), mit dem Nachkommen ermöglicht, ihre eigenen Zwischenablageformate anzugeben und zu implementieren. Über einen Drop-Handler kann die Anwendung jedes OLE-Format akzeptieren, ohne eine eigene Baumklasse abzuleiten. Um die Verarbeitung der nativen Baumdaten zu unterstützen, werden spezielle Methoden implementiert. Siehe auch: TbaseVirtualTree.ProcessoLedata und TBaseVirtualTree.ProzessDrop. Dropmarks zeigen während des Drag'n-Drops, wo Daten eingefügt werden. Dies funktioniert auch mit VCL Drag'n Drop. Das Drop-Zielmodell wurde erweitert, um die obigen oder auf einem Knoten abfallenden Aktionen zu ermöglichen. Inzwischen haben Anbieter von anderen Treeview-Steuerelementen mit dieser kleinen, aber leistungsstarke Idee begonnen. Automatische Erweitern von Knoten, die das Drop-Ziel für mehr als ein einstellbares Zeitintervall erfolgt, falls aktiviert. Header und Säulen: Mehrere Spalten werden von einer eigenen Header-Implementierung unterstützt. Dieser Header nimmt Platz im Bereich Nicht-Client-Bereich der Baumsteuerung auf und unterstützt verschiedene Schaltflächenstile (Standardlistenansicht dicke Tasten, flache Tasten, Platten, Windows XP-Stil und Eigentümerzug). -Säulen können in jeder Bestellung im Baumfenster angezeigt werden. Jede Spalte kann ausgeblendet werden, einschließlich der Hauptsäule, die den eigentlichen Baum hält. Jede Spalte kann die Hauptsäule werden. -Säulen können auch ohne Kopfzeile angezeigt werden. -Säulen können verschiedene Optionen haben (sichtbar, anklickbar, reagierbar, Ziehable usw.). Sie können einzelne Ausrichtungen für jede Spalte sowie für die rechte nach links oder nach rechts gerichtete Richtlinie festlegen (erneut: auch auf Non-Middle-Ost- und älteren Windows-Konsumsystemen). Jede Spalte kann eine eigene Farbe haben. Der Header sowie die Spalten-Sammelklasse und die tatsächlichen Säulenklassen unterstützen Streaming. Dies ist unabhängig vom Baumview-Streaming. Check-Support: Jeder Knoten im Baum kann einen eigenen Prüftyp haben. Dies kann entweder das Kontrollkästchen (auch TRISTATE), Optionsschaltfläche oder Knotenknopf sein. Diese Typen können frei gemischt werden, sodass Sie beispielsweise einen Knoten mit 10 Knoten haben können, von dem 5 eine Funkgruppe umfassen (wobei nur eine dieser 5 Knoten überprüft werden kann) und die anderen 5 Knoten können ein Kontrollkästchen (oder keine Prüfung aufweisen Geben Sie überhaupt ein). gemischter (Tri-state) Kontrollkästchen mit ordnungsgemäßer Handhabung zur teilweisen Überprüfung von Kinderknoten werden unterstützt (wie häufig in Install- und Sicherungsprogrammen verwendet). Automatische Zustandsänderung Die Ausbreitung von Mixed Check-Taste ist möglich (falls aktiviert). Überprüfen Sie die Ereignisse OncheChing und Oncheck Events werden ebenfalls geliefert. Für besondere Zwecke kann ein kleiner Flachknopf verwendet werden, der als Knotenknopf bezeichnet wird. 7 verschiedene Arten von Überprüfungsbildern sind möglich. Dunkle und leichte Häkchen, dunkle und leichte Zeckenmarkierungen, flache Überprüfung Bilder, Windows XP-Stil Überprüfen Sie die Bilder und eindefiniert anwendung Für einen Überblick Siehe Eigenschaft tbasevirtualTree.checkimagekind. Designzeit: Die Eigenschaften und Methoden der virtuellen Treviews sind mit Delphi-Kategorien (Delphi 5 und BCB 5 oder höher) registriert. Ein spezielles Eigenschafteditor für die Zwischenablage-Formate ist enthalten, wodurch eine einfache Auswahl der Format erforderlich ist. Dies ist besonders wichtig, da die verfügbaren Zwischenablageformate als Strings angegeben werden müssen, und es ist auch recht praktisch, um eine Liste der verfügbaren Formate zu haben, auch wenn sie noch nicht aktiviert sind (wissen, was aktiviert werden kann). Anpassung: Benutzerdefinierte Zeichner- und Farbzyklen werden über Farbereignisse (für den gesamten Baum und für jeden Knoten) unterstützt. Abgesehen von den integrierten Prüftypen kann ein benutzerdefiniertes Prüfbild verwendet werden, das von einer separaten Bildliste (TBASEVirtualTree.CustomCheckImages) unterstützt wird. Jede Taste in der Kopfzeile kann einzeln gezeichnet werden. Drei verschiedene Linien sind verfügbar: gepunktete Linien, durchgezogene Linien und anwendungsdefinierte Linien. Anwendungen und Nachkommen können ihren eigenen Knoten-Editor bereitstellen (was nicht unbedingt ein einzelner Kontrolle ist), indem Sie das TBASEVirtualTreeTree.oncreateeditor-Ereignis verwenden oder TbaseVirtualTree.docreateeditor überschreiben. Auf diese Weise können Sie die Knotenbearbeitung durch eigene (Geschäfts-) Regeln vollständig ersetzen. Anwendungen und Nachkommen können ihre eigene Drag-Manager-Schnittstelle mit dem TBASEVirtualTree.oncreatedragmanager-Event angeben oder TbaseVirtualTree.docreatedragmanager überschreiben. Dadurch können Sie die gesamte OLE-Ziehhandhabung des Baums anpassen. HINWEIS: VCL-Drag'n-Drop wird von der VCL verwaltet, sodass dies nicht angepasst werden kann. Anwendungen und Nachkommen können ihre eigene Datenobjektoberfläche mit dem TBASEVirtualTree.oncreatedataObject-Event angeben oder tbasevirtualTree.docreatedataObject überschreiben. Dadurch können eigene Zwischenablageformate bereitgestellt werden. Es gibt eine Registrierungsfunktion (itlierclipboardformat), mit der Tree-Nachkommen mit eigenen Zwischenablage und / oder Speicherformaten registriert werden können. Anwendungen können eigene Zwischenablageformate (ohne neue Baumklassen) anbieten, indem Sie das TBASEVirtualTree.getuserclipboardFormats-Ereignis handhaben. Anwendungen und Nachkommen können den Schlüsselhandling des Baums vollständig ändern, indem Sie das TBASEVirtualTree.onkeyaction-Ereignis oder das Überschreiben von TBaseVirtualTree.dokeyaction vollständig ändern. Dies funktioniert auch für inkrementelle Suche. Anwendungen und Nachkommen können den Hintergrund des Baums anpassen, der nicht von Knoten bedeckt ist, indem Sie das TbaseVirtualTree.onpaintbackground-Ereignis oder überschreibt TbaseVirtualTree.Dopaintbackground. Für Knoten gibt es weitere Ereignisse zur Anpassung. Anwendungen und Nachkommen können anpassen, wie der Saitenbaum zu lange Bekämpfung kürzt, indem Sie das TCustomVirtualStringTree.onShortenString-Ereignis verwenden oder TCustomvirtualStringTree.DoshorsenString überschreiben. Scrollen: Flach-Bildlaufleisten werden unterstützt. Da sie jedoch mit Windows XP zusammenklügt, wird dieser Support von einem Compiler-Symbol (useflatscrollBars) ausgeschaltet. Aktivieren Sie dieses Symbol, wenn Sie eigentlich Flach-Scroll-Bars verwenden möchten, bevor Sie die Baumeinheit zusammenstellen. Jeder Scroll-Vorgang löst ein TbaseVirtualTree.oncroll-Ereignis aus. Dadurch können Bäume mit anderen Bedienelementen synchronisiert werden. Es gibt Eigenschaften (z. B. tbasevirtualTree.Offsetxy), mit dem der Bauminhalt in einem beliebigen Postion im Code scrollen kann, ohne Nachrichten zu senden. -Read-Panning und Scrollen wird unterstützt. Das heißt, wenn Sie auf das Mausrad klicken oder drücken und halten, während Sie die Maus um das Baumfenster bewegen, scrollen Sie glatt. Streaming: Die anspruchsvolle Bauminhalts-Serialisierung wurde implementiert, um ein Speichern und Wiederherstellen eines Baums auf / aus den Streams zu ermöglichen. Dies beinhaltet auch Benutzerdaten, solange er in einen Stream geschrieben werden kann. Virtual TreeView ermöglicht das Hinzufügen von Daten aus dem Stream, stattdessen den gesamten Inhalt zu ersetzen. Das interne Format des Streams ist ein Chunk-basiert, das es für zukünftige Verbesserungen sehr flexibel macht, aber immer noch die Kompatibilität mit älteren Implementierungen hält. Es gibt einen User-Chunk, der in der TBaseVirtualTree.onsaVenode-Ereignis in den Bach geschriebene Daten nimmt. Die Daten dieses Benutzers, der Chunk ist, können in tbasevirtualTree.onloadNode gelesen werden. Entwickler-Unterstützung: Sondervorsorge wurde ergriffen, um den Quellcode der virtuellen Baumansicht konsequent zu formatieren. Ein großer Teil der gesamten Implementierung ist Kommentare, die die inneren Arbeiten beschreiben. Methoden und Eigenschaften werden somit alphabetisch in ihrem Umfang (privat, geschützt, öffentlich veröffentlicht) bestellt. Die einzige Ausnahme sind die Konstruktoren und Destruktoren, die in der Klassenerklärung immer oben auf dem öffentlichen Bereich erscheinen und immer die ersten Methoden in der Klassenimplementierung sind. Für jedes Ereignis gibt es eine virtuelle Methode, die den Ereignishandler anruft. Dies ermöglicht Nachkommen, um jedes Ereignis bei jeder Veranstaltung zu informieren, ohne einen Handler zuzuweisen. Die Namen dieser Methoden entsprechen den Ereignissen direkt mit dem Muster: DoeventName. Es wurden viele Maßnahmen ergriffen, um die Kompatibilität Borland C ++ - Builder zu gewährleisten. Dies ist besonders schwierig, da die automatische Übersetzung von Delphi bis C ++ - Code in BCB fehlerhaft ist. Es gibt einen einfachen und leistungsstarken Mechanismus für Nachkommens-Autoren, um ihre eigenen Daten pro Knoten zuzuordnen. Rufen Sie einfach tbasevirtualTree.alcateInternaldata an, um Ihre Anforderungen zu registrieren. Dies hat keinen Einfluss auf den vorhandenen oder zukünftigen Anwendungscode, wenn dadurch TBASEVirtualTree.GetNodedata für den Benutzerdatenzugriff verwendet wird. Bearbeitung: Anwendungsdefinierte Redakteure werden über eine Bearbeitungsverbindungsschnittstelle unterstützt. Eine generische (Nicht-Unicode-Editor-Implementierung ist ebenfalls verfügbar. Jede Spalte im Baum ist editierbar, wenn aktiviert (siehe TCustomVirtualTreeOptions.SelectionOptions.toextendocus). Dienstprogramme: Für Ihren Bequemlichkeit sind einige der intern verwendeten Funktionen, die von allgemeinem Interesse sind, ausgesetzt. Alphablend: Ein Allzweckverfahren, um eine Quelle mit mehreren verschiedenen Modi auf eine Zielbitmap zu mischen. drawTextw: Eine teilweise Implementierung der DigithText-API, die Unicode unterstützt. Diese Methode hat nur einen Stub unter Windows 95/98 / Me. KürtelString: Eine Allzweckfunktion, die einen gegebenen Breitring in einen bestimmten Raum einstellt. Dies wird teilweise von der Windows DrawText-API implementiert, nimmt jedoch zusätzlich für die richtige nach links abhängige Ausrichtung und arbeitet mit Unicode auch unter Windows 95/98 / Me zusammen.


Virtueller Baumansicht. Zugehörige Software