AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Virtual TreeView - Anhand des längsten Eintrages die Breite der Spalte anpassen
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von TiGü · begonnen am 12. Dez 2016 · letzter Beitrag vom 14. Dez 2016
Antwort Antwort
Seite 2 von 3     12 3      
EWeiss
(Gast)

n/a Beiträge
 
#11

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

  Alt 12. Dez 2016, 17:56
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

Geändert von EWeiss (11. Jul 2019 um 16:45 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#12

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

  Alt 12. Dez 2016, 18:42
Das Virtual TreeView hat meines Erachtens schon immer Probleme beim Doppelklick zwischen zwei Einträgen im Header.
Dann hast du es falsch gemacht.

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.

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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

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

  Alt 12. Dez 2016, 18:54
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
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#14

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

  Alt 12. Dez 2016, 19:28
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

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

  Alt 12. Dez 2016, 19:38
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
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#16

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

  Alt 12. Dez 2016, 19:45
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.


@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.
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#17

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

  Alt 13. Dez 2016, 08:41
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)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#18

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

  Alt 13. Dez 2016, 08:48
Code:
ATreeView.Header.Options:= ATreeView.Header.Options + [hoAutoResize];
ATreeView.Header.Options:= ATreeView.Header.Options + [hoColumnResize];
Das ist doch ein Set, also lieber so:
ATreeView.Header.Options := ATreeView.Header.Options + [hoAutoResize, hoColumnResize];
Uli Gerhardt
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

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

  Alt 13. Dez 2016, 08:50
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

Geändert von EWeiss (13. Dez 2016 um 08:55 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#20

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

  Alt 13. Dez 2016, 16:27
@Aviator: Danke, mit den AutoFitColumns sieht das ganze schon viel besser aus.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz