Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen (https://www.delphipraxis.net/191131-virtual-treeview-anhand-des-laengsten-eintrages-die-breite-der-spalte-anpassen.html)

EWeiss 12. Dez 2016 16:56

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Hmm...
Ist es nicht eigentlich so das der Anwender die Max breite festlegt?
Und diese dann beim beenden gespeichert wird?

Das Virtual TreeView hat meines Erachtens schon immer Probleme beim Doppelklick zwischen zwei Einträgen im Header.
Hatte da mal einen SkinEditor geschrieben hat da nie funktioniert, habe es dann sein gelassen.


gruss

Aviator 12. Dez 2016 17:42

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von EWeiss (Beitrag 1355949)
Das Virtual TreeView hat meines Erachtens schon immer Probleme beim Doppelklick zwischen zwei Einträgen im Header.

Dann hast du es falsch gemacht. :idea:

Bei mir funktioniert das problemlos. Schau mal in den SourceCode des VST was dort alle abgefragt wird. Du musst die Column Options entsprechend des gewünschten Ergebnisses setzen und auch noch mindestens das Event das ich in #9 genannt habe nutzen.

Wenn du das alles korrekt machst, dann funktioniert auch das automatische Resizen der Column. :stupid:

Vorteil ist eben, dass der Tree z.B. die Breite des Textes automatisch entsprechend seines Canvas ermittelt und dann die größte Breite als ColumnWidth setzt.

EWeiss 12. Dez 2016 17:54

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Dann hast du es falsch gemacht.
Warum muss ich das codemäßig selber machen?
Bsp. Wenn ich ein TreeView in VB6 auf die Form klatsche und dann den Bereich im Header doppelklicke dann setzt sich die Column automatisch auf den längsten Text.
Da muss ich nichts extra programmieren.

Was ich damit sagen will... Das sollte ein Standard verhalten sein ohne es extra programmieren zu müssen.

gruss

Aviator 12. Dez 2016 18:28

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von EWeiss (Beitrag 1355954)
Was ich damit sagen will... Das sollte ein Standard verhalten sein ohne es extra programmieren zu müssen.

Eben nicht. Aber das ist Geschmackssache. Wenn ich eine Funktion aktiviert haben möchte, dann aktiviere ich sie eben. Dafür sind die Events und die ganzen vielen tausend Schalter des VST vorhanden.

Die Komponente hat generell kein "Eigenleben". Man muss ihr haarklein sagen was sie machen soll. Ansonsten passiert da gar nix. Aber das ist genau der Vorteil des VST. Man hat alle Freiheiten. Nur muss man die Funktionen eben richtig nutzen. Dafür hilft beim VST eben sehr oft einen Blick in den SourceCode.

Die ursprüngliche Hilfe des VST kann man eigentlich auch in die Tonne treten. Die CHM Datei ist uralt und die PDF Datei ist mittlerweile auch nur noch für die Standardaktionen gültig. Schade das JamSoftware die nicht weiterpflegt. :?

EWeiss 12. Dez 2016 18:38

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Eben nicht. Aber das ist Geschmackssache.
Wie du schon sagst.

In VBNet, VB6, C#, C++ und anderen sprachen ist das Standard.
Delphi macht schon immer sein eigen Ding.

gruss

Aviator 12. Dez 2016 18:45

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von EWeiss (Beitrag 1355956)
Delphi macht schon immer sein eigen Ding.

Das ist weniger eine Sache von Delphi als von der Komponente. Mike Lischke hat die Funktion einfach nicht als Standard implementiert. Was ich persönlich gut finde.

Aber genug zu dem Thema. Wenn du das als Standardverhalten haben möchtest, dann schreib dir doch schnell eine kleine Ableitung der Komponente die diese Funktion standardmäßig aktiviert hat. :cyclops:


@TE: Hat dir eine der vorgeschlagenen Lösungen weitergeholfen? Mich würde interessieren, ob meine Lösung bei dir das gewünschte Ergebnis erzielt hat. :-D :cyclops:

madas 13. Dez 2016 07:41

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von EWeiss (Beitrag 1355949)
Das Virtual TreeView hat meines Erachtens schon immer Probleme beim Doppelklick zwischen zwei Einträgen im Header.

Deshalb verwenden wir diese Variante: #4

Kommentar in unseren Quellen: // selber machen, weil BUG im VST die falsche Spalte verwendet - (12.01.2010)

uligerhardt 13. Dez 2016 07:48

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von Brainshock (Beitrag 1355924)
Code:
ATreeView.Header.Options:= ATreeView.Header.Options + [hoAutoResize];
ATreeView.Header.Options:= ATreeView.Header.Options + [hoColumnResize];

Das ist doch ein Set, also lieber so: :mrgreen:
Delphi-Quellcode:
ATreeView.Header.Options := ATreeView.Header.Options + [hoAutoResize, hoColumnResize];

EWeiss 13. Dez 2016 07:50

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
Zitat:

Zitat von madas (Beitrag 1355966)
Zitat:

Zitat von EWeiss (Beitrag 1355949)
Das Virtual TreeView hat meines Erachtens schon immer Probleme beim Doppelklick zwischen zwei Einträgen im Header.

Kommentar in unseren Quellen: // selber machen, weil BUG im VST die falsche Spalte verwendet - (12.01.2010)

Danke für die Info die ist mal Aussage kräftig.
Wusste doch das da etwas im argen ist denn ein normales verhalten ist das nicht.
Und wie schon gesagt sollte eigentlich auch Automatisch ohne zusätzlichen Code gehen. (Events hin oder her)

Scheint ja zu gehen nach dem Beheben des Fehlers.

Danke nochmal.

gruss

TiGü 13. Dez 2016 15:27

AW: Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
 
@Aviator: Danke, mit den AutoFitColumns sieht das ganze schon viel besser aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz