AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VST.ColumnHeaders kein property "Name" unterstützt?
Thema durchsuchen
Ansicht
Themen-Optionen

VST.ColumnHeaders kein property "Name" unterstützt?

Offene Frage von "richard_boderich"
Ein Thema von richard_boderich · begonnen am 8. Sep 2008 · letzter Beitrag vom 8. Sep 2008
Antwort Antwort
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#1

VST.ColumnHeaders kein property "Name" unterstützt

  Alt 8. Sep 2008, 13:35
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:
 case column of
  0: ...tu was
gerne so abfragen

Delphi-Quellcode:
 if column.name='testthen
  begin

  ...tu was
  end;
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?

denke mir das so (ungetestet)

Delphi-Quellcode:
case vst.Header.Columns[column].Tag of
5: ...tu was
end;
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#2

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 13:48
Die Spaltenüberschrift gibst Du doch im Quellcode / Propertyeditor an, dann müsste doch auch über Column.Text o.ä daran zu kommen sein . 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...
  Mit Zitat antworten Zitat
Benutzerbild von richard_boderich
richard_boderich

Registriert seit: 21. Jun 2004
Ort: Berlin
1.067 Beiträge
 
Delphi 7 Architect
 
#3

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 13:59
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?
mfG Richard

Cimmams schrieb "das einzige was an ArmA gut ist, ist die Grafik bis 100m und der Rest ist so unreal wie unsere Demokratie."
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#4

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 14:04
also bei mir funktioniert folgendes
vst.Header.Columns[0].Text
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#5

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 14:04
Zitat von richard_boderich:
Klar kannst du das auch über die Eigenschaft Text machen, jedoch finde ich das sehr ungünstig, gerade wenn du lange Columnbeschriftungen hast.
Sorry, da hab' ich wohl "Text" und "Name" verwechselt...

Zitat von richard_boderich:
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?
Wenn ich mich recht erinnere, hab' ich sowas mal gemacht...
Auch das kann ich aber erst heut' Abend nachschauen...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 14:07
Hallo Richard, die Tag Eigenschaft kannst du ohne Probleme verwenden. Ist ja ein "Published Property"
Thomas
  Mit Zitat antworten Zitat
OG Karotte
(Gast)

n/a Beiträge
 
#7

Re: VST.ColumnHeaders kein property "Name" unterst

  Alt 8. Sep 2008, 20:27
Zitat von richard_boderich:
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?
Hat ein wenig länger gedauert und mein Ansatz bezog sich damals nur auf den Spaltenkopf, es sollte aber auch genauso für die einzelne Zelle gehen (ungetestet, aus meinem "Originalcode" übernommen und mit Sicherheit Überarbeitungsbedürftig) :

Delphi-Quellcode:
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;
Hoffe das war es, was Du meintest ???
  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 22:39 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