AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Virtual Breadcrumb Bar

Virtual Breadcrumb Bar

Ein Thema von Codehunter · begonnen am 13. Apr 2015 · letzter Beitrag vom 20. Sep 2016
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Codehunter
Codehunter
Registriert seit: 3. Jun 2003
Die VBC ist ein kleines Addon zum VirtualTreeView. Sie bildet die so genannte Breadcrumb-Leiste nach, welche seit Windows Vista z.B. im Datei-Explorer anstelle der früheren Adressleiste angezeigt wird.

Eine Demo mit Kommentaren ist im Download enthalten. Die Demo lässt sich direkt zusammen mit dem .groupproj kompilieren und starten. Die Breadcrumb-Komponente muss dafür nicht in der IDE installiert sein.

Es gibt ein paar zusätzliche Features wie die Freitexteingabe um entweder eine direkte Pfadeingabe zu ermöglichen oder aber die Leiste als Freitext-Suchfeld zu benutzen.

Delphi-Quellcode:
// ** UPDATE 1.0.6 **
//
// - Added AutoChangeNode Property
// - Added CrumbCount Function
// - Added OnChange Event
// - Added OnUpdate Event
// - Improved drawing
// - Moved 'DrawDropdownGlyph' from TVirtualBreadcrumbButton
// to TVirtualBreadcrumbItem
// - Bug fixed: Showing second Application Window on Superbar when Dropdown
// - Bug fixed: Redraw when changing CaptionEditMode
// - Bug fixed: Overridden EditString in OnBeforeEdit
Miniaturansicht angehängter Grafiken
image1.png   image2.png   image3.png   image4.png  
Angehängte Dateien
Dateityp: zip VirtualBreadcrumbSource_1.0.6.zip (42,8 KB, 27x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (20. Sep 2016 um 11:46 Uhr)
 
Daniel

 
Delphi 10.4 Sydney
 
#2
  Alt 17. Apr 2015, 08:43
Sehr schöne Komponente.

Eine Kleinigkeit ist mir hier aufgefallen: Wähle ich im Dropdown des Breadcrumb einen Knoten aus, passen im Treeview Selektion und Fokus nicht zusammen.
screen-shot-2015-04-17-9.42.41-.png
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.2 Tokyo Professional
 
#3
  Alt 17. Apr 2015, 09:00
Guter Hinweis, wird gleich korrigiert!
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

 
Delphi XE2 Professional
 
#4
  Alt 17. Apr 2015, 11:49
Sieht gut aus.

Die Readme.txt ist leer.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.2 Tokyo Professional
 
#5
  Alt 17. Apr 2015, 12:02
Sieht gut aus.

Die Readme.txt ist leer.
Siehste. Hast doch gar kein Readme gebraucht

Spaß beiseite, da hat sich wohl die falsche Datei eingeschlichen. Werde ich für die v1.0.4 korrigieren.
  Mit Zitat antworten Zitat
Aviator

 
Delphi 10.2 Tokyo Enterprise
 
#6
  Alt 16. Sep 2016, 11:43
Hallo Codehunter,

ich wollte für mein aktuelles Projekt deine BreadCrumb Komponente verwenden. Dabei sind mir einige Dinge aufgefallen die du in einem Update vielleicht abändern könntest:
  • Neuere Versionen des VirtualTreeViews benutzen einen anderen Datentyp speziell für den Index eines Images [System.UITypes.TImageIndex]
  • Die Komponente hat anscheinend ein Problem damit, wenn man kein Alignment angibt. In deiner Demo setzt du Align auf alTop. Mache ich das nicht, dann wird die Leiste nicht angezeigt.
  • Beim Installieren der Komponente verlangt diese die VirtualTreesR.bpl In neuen Versionen gibt es aber nur noch eine VirtualTreesDR.bpl wenn ich das richtig gesehen habe. Bin beim Entwickeln von eigenen Packages nicht so drin und kann die Komponente deshalb nicht installieren und nur zur Laufzeit generieren.

Anbei noch ein Beispiel aus deiner Unit die nur noch mit TImageIndex funktioniert. Es gibt noch einige weitere Stellen die dir der Compiler aber anzeigen wird.

Vorher:
Delphi-Quellcode:
procedure TVirtualBreadcrumb.DoGetImageIndex(Node: PVirtualNode; var Index: Integer);
var
  Ghosted: Boolean;
begin
  if Assigned(FOnGetImageIndex) then begin
    FOnGetImageIndex(FTreeView, Node, ikNormal, FTextColumn, Ghosted, Index);
  end;
end;
Nachher:
Delphi-Quellcode:
procedure TVirtualBreadcrumb.DoGetImageIndex(Node: PVirtualNode; var Index: TImageIndex);
var
  Ghosted: Boolean;
begin
  if Assigned(FOnGetImageIndex) then begin
    FOnGetImageIndex(FTreeView, Node, ikNormal, FTextColumn, Ghosted, Index);
  end;
end;
Genauere Tests konnte ich noch nicht machen, werde aber berichten, falls mir noch etwas auffallen sollte.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.2 Tokyo Professional
 
#7
  Alt 20. Sep 2016, 07:18
Ja da gibbet ein kleines Problem: Ich verwende in allen Projekten den letzten originalen VST von Mike Lischke, nicht den Fork von Jam. Nicht dass ich etwas gegen den Fork hätte, nur ließ er sich bei mir nie installieren, weil ich genau wie du nur umgekehrt, Package-Probleme hatte. Auf Fragen diesbezgl. wurde von Jam Software nie reagiert, also unterstütze ich den auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 10.4 Sydney
 
#8
  Alt 20. Sep 2016, 10:07
Zitat:
VirtualTreesR.bpl
Es gibt den QuellCode ... da kannst du im VirtualBreadcrumb.dproj einfach die Abhängigkeiten ändern. (VirtualTreesR raus und VirtualTreesDR rein)
Dann linkst das erstmal gegen VirtualTreesDR, aber in wie weit der Code der neuen Komponenten kompatibel ist, ist 'ne andere Frage.

Bzw. du erstellst dir ein neues Package-Projekt (oder kopierst das Alte) mit den nen aktuellen Abhängigkeiten.
Per {$IFDEF} und 'nem DEFINE im neuen Projekt könnte man in den PAS auch paar Unterschiede berücksichtigen.
Der DEFINE auch in anderen Projekten, wenn direkt die PAS einkompiliert werden. Oder man legt das DEFINE in 'ne INCLUDE-Datei.
  Mit Zitat antworten Zitat
Aviator

 
Delphi 10.2 Tokyo Enterprise
 
#9
  Alt 20. Sep 2016, 10:45
Ja da gibbet ein kleines Problem: Ich verwende in allen Projekten den letzten originalen VST von Mike Lischke, nicht den Fork von Jam. Nicht dass ich etwas gegen den Fork hätte, nur ließ er sich bei mir nie installieren, weil ich genau wie du nur umgekehrt, Package-Probleme hatte. Auf Fragen diesbezgl. wurde von Jam Software nie reagiert, also unterstütze ich den auch nicht.
Also ich hatte bisher keine Probleme bei der Installation. Über den GetIt Manager wird auch aktuell die neue Version angeboten. Meine Fragen (eigentlich waren es Anregungen) wurden von JamSoftware per Mail beantwortet. Ein Feature Request sollte über die GitHub Seite der Komponente gemacht werden. Die wurde dann zwar bearbeitet, aber als nicht sinnvoll erachtet.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

 
Delphi 10.2 Tokyo Professional
 
#10
  Alt 20. Sep 2016, 10:51
So wie ich das sehe schließen sich da die ältere und neuere Version vom VST gegenseitig aus was GetImageIndex-Handling angeht. Im vorliegenden Fall ist es zwar nur ein formales Problem, da TImageIndex ja Type Integer ist.

Aber die Frage stellt sich schon grundsätzlich: Die Version 6.x vom VST (Jam-Version) unterstützt nur ab XE3 aufwärts, die 5.x (Mikes Version) nur bis XE8 und älter. Eine zwingende Notwendigkeit, den Support für ältere Delphis zu streichen, sehe ich eigentlich nicht. Nur würde ich das implizit ebenso machen wenn ich den Code vom VBC auf 6.x umsticke.

Jetzt aber einen eigenen Fork vom VST ausgehend vom 5.x zu machen, dafür habe ich weder Zeit noch Muße. Zumal eh kaum noch Unterstützung für freie Komponenten in der Community vorhanden ist. Insofern muss man ja froh sein dass sich Jam Software des Falles angenommen hat, auch wenn ich selbst mit den Änderungen nicht glücklich bin.

EDIT:
[*]Die Komponente hat anscheinend ein Problem damit, wenn man kein Alignment angibt. In deiner Demo setzt du Align auf alTop. Mache ich das nicht, dann wird die Leiste nicht angezeigt.
Das ist in der Tat ein Bug, der daher kommt dass die Buttons innerhalb der BreadcrumbBar ebenfalls Aligned sind und dann quasi "irgendwo runter purzeln" wenn das ParentControl nicht richtig aligned ist. Wahrscheinlich müsste ich ein Align-Subset machen, das nur alTop, alBottom oder alClient zulässt, alles andere macht mit der Komponente keinen Sinn.

Geändert von Codehunter (20. Sep 2016 um 11:05 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf