AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VST, Spalte die den restlichen Platz ausfüllt

Ein Thema von TurboMagic · begonnen am 24. Aug 2022 · letzter Beitrag vom 25. Aug 2022
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#1

VST, Spalte die den restlichen Platz ausfüllt

  Alt 24. Aug 2022, 22:40
Gegeben: D11.1 und ein VirtualTreeView als Liste benutzt.
Dieses hat 3 Spalten und ich möchte erreichen, das die mittlere Spalte bei fixer
Summe aller VST Spalten zusammen immer den restlichen Platz ausfüllt.

Beispiel Breiten: 50:100:50, dann ändere ich die Breite der ersten und die mittlere
ändert sich auch: 75:75:50

oder 50:100:50, dann ändere ich die Breite der letzten und die mittlere
ändert sich auch: 50:75:75

Was muss ich wo einstellen?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#2

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 24. Aug 2022, 23:04
In Header.AutoSizeIndex die Spaltennummer eintragen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#3

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 25. Aug 2022, 07:56
Das scheint nicht alles zu sein! Ziehe ich in meinem Beispiel die 1. Spalte breiter und
AutoSizeIndex ist 1 wird nicht die 2. Spalte schmäler, sondern das VST insgesammt breiter
und ich bekomme einen horizontalen Scrollbalken.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von PaPaNi
PaPaNi

Registriert seit: 31. Mär 2022
45 Beiträge
 
#4

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 25. Aug 2022, 08:21
Wenn VST den Event OnResize hat, wäre es nicht möglich so was zu machen?
Der Code ist teilweise aus dem Kopf und kann Fehler enthalten.

Code:
// hier wird die Breite der zweite Spalte beim Resize neu berechnet bzw. gesetzt. Die erste und die dritte Spalten bleiben unverändert
...
const
COL_INDEX_DATE = 0;
COL_INDEX_DECRIPTION = 1;
COL_INDEX_CHECKBOX = 2;
COL_WIDTH_DATE = 80; // Breite fixiert
COL_WIDTH_CHECKBOX = 60; // Breite fixiert
WIDTH_SCROLL = 30; // Platz fuer vert. Scroller
...
procedure Tf_Test.vsg_TestResize(Sender: TObject);
begin
vsg_Test.ColWidths[COL_INDEX_DATE] := COL_WIDTH_DATE;
vsg_Test.ColWidths[COL_INDEX_DECRIPTION] := vsg_Test.Width - COL_WIDTH_DATE - COL_WIDTH_CHECKBOX - WIDTH_SCROLL;
vsg_Test.ColWidths[COL_INDEX_CHECKBOX ] := COL_WIDTH_CHECKBOX;
...
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#5

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 25. Aug 2022, 10:32
Hallo,

danke für die Idee, die wäre nur nicht im Sinne des Erfinders, da hierbei ja die beiden äußeren Spalten immer gleich breit blieben.
Nene, das VST hat ja scheinbar einen Lösungsansatz, nur muss es wohl noch eine Eigenschaft geben, welche die horizontale Breite
über alle Spalten festlegt. Wenn die fix ist, sollte beim Verbreitern/Verschmälern einer Spalte einfach die durch
Header.AutoSizeIndex festgelegte Spalte den restlichen Platz dynamisch ausfüllen.

Nur welche EInstellung fehlt mir dazu noch?

Grüße

TurboMagic
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#6

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 25. Aug 2022, 12:49
Nur welche EInstellung fehlt mir dazu noch?
Code:
TVTHeaderOption -> hoAutoResize
TVTHeader -> AutoSizeIndex
Nachtrag: Schritt für Schritt
  • Den Wert für Header.AutoSizeIndex setzen (Index für die Spalte beginnt bei 0).
  • Header.Options.hoAutoResize = False
  • Die Breite für alle Spalten, außer der Spalte die im AutoSizeIndex angegeben ist, zuweisen.
  • Header.Options.hoAutoResize = True (VST berechnet die Breite für die Spalte AutoSizeIndex neu).
Bis bald...
Thomas

Geändert von mytbo (25. Aug 2022 um 13:14 Uhr) Grund: Schritt für Schritt Anleitung
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.825 Beiträge
 
Delphi 12 Athens
 
#7

AW: VST, Spalte die den restlichen Platz ausfüllt

  Alt 25. Aug 2022, 13:42
Test war erfolgreich!
Genau, was ich wollte! Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:25 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