![]() |
VST.ColumnHeaders kein property "Name" unterstützt
Hallo zusammen!
Ich habe grad mal eine Frage zu den VST Columnheadern. Ich vermisse dort das property "Name" in den Columnheadern. Ich würde nähmlich statt der Case Columnindex-Abfrage
Delphi-Quellcode:
gerne so abfragen
case column of
0: ...tu was
Delphi-Quellcode:
würde ich persönlich für sauberer halten und ist vorteilhaft, wenn man später nochmal die Spaltenabfolge ändert oder nachträglich Spalten einfügt. Er zeichnet dann halt immer in die Spalte in die er auch zeichnen soll. Meine Frage ist nun, da der VST kein Columnname bietet, ob ich die jeweilige "Tag" Eigenschaft dazu missbrauchen könnte? In den VST Doku steht dort bei mir jedoch das diese ein undokumentiertes property ist. Weis jmand ob ich Tag ohne Probleme verwenden kann?
if column.name='test' then
begin ...tu was end; denke mir das so (ungetestet)
Delphi-Quellcode:
case vst.Header.Columns[column].Tag of
5: ...tu was end; |
Re: VST.ColumnHeaders kein property "Name" unterst
Die Spaltenüberschrift gibst Du doch im Quellcode / Propertyeditor an, dann müsste doch auch über Column.Text o.ä daran zu kommen sein :gruebel:. Hab gerad' kein Delphi da, aber da ich Teile meines Headers (insbesondere mehrzeiligen Text) selbst zeichne, bin ich da auch irgendwie ran gekommen.
Ich werd' heut' abend mal schauen ob ich was finde... |
Re: VST.ColumnHeaders kein property "Name" unterst
Klar kannst du das auch über die Eigenschaft Text machen, jedoch finde ich das sehr ungünstig, gerade wenn du lange Columnbeschriftungen hast.
Die Frage ist ob ich die Property "Tag" einfach so verwenden kann, oder ob ich da irgendwas im VST durcheinader haue. Apropo mehrzeiligen Text im VST. Hast du zufällig eine Lösung wie ich mehrzeiligen Text bei fester Rowheight horizontal in der Zelle zentrieren kann? |
Re: VST.ColumnHeaders kein property "Name" unterst
also bei mir funktioniert folgendes
Delphi-Quellcode:
vst.Header.Columns[0].Text
|
Re: VST.ColumnHeaders kein property "Name" unterst
Zitat:
Zitat:
Auch das kann ich aber erst heut' Abend nachschauen... |
Re: VST.ColumnHeaders kein property "Name" unterst
Hallo Richard, die Tag Eigenschaft kannst du ohne Probleme verwenden. Ist ja ein "Published Property"
|
Re: VST.ColumnHeaders kein property "Name" unterst
Zitat:
Delphi-Quellcode:
Hoffe das war es, was Du meintest ???
procedure TfrmMain.MyVSTBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node:
PVirtualNode; ItemRect: TRect; var CustomDraw: Boolean); var S: WideString; MyData: PTMyNodeData; TheRect: TRect; begin MyNodeData := Sender.GetNodeData(Node); // Daten holen S := System.Copy(MyNodeData.Text, 1, Length(MyNodeData.Text)); // Text holen // <-- hier Berechnung für TheRect (Ausmasse der zubefüllenden Zelle; müsste ItemRect entspr.) einfügen Windows.DrawTextW(TargetCanvas.Handle, PWideChar(S), Length(S), TheRect, DT_EXPANDTABS or DT_SINGLELINE or DT_END_ELLIPSIS or DT_CENTER or DrawTextBiDiModeFlagsReadingOnly); // Text ausgeben (DT_CENTER => Zentriert im 'TheRect') CustomDraw := True; // Damit der VST die Zelle nicht nochmal zeichnet ??? end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr. |
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