AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Virtual TreeView, pro SubItem verschiedene Spalten
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual TreeView, pro SubItem verschiedene Spalten

Ein Thema von hoika · begonnen am 7. Nov 2007 · letzter Beitrag vom 15. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sh17
sh17
Online

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 8. Nov 2007, 10:49
Die Spaltenanzahl bleibt in der Summe aber gleich, je nach Zeile kann er nur einfach ein paar Spalten ohne Inhalt lassen
Sven Harazim
--
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 8. Nov 2007, 10:52
Zitat von sh17:
Die Spaltenanzahl bleibt in der Summe aber gleich, je nach Zeile kann er nur einfach ein paar Spalten ohne Inhalt lassen
Das meine ich, beim Zeichnen der Nodes reagieren.

Moin
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 8. Nov 2007, 10:55
Hallo,

genau das ist das Problem.
Ich möchte halt verschiedene Inhalte anzeigen,
je nach Item, ohne jetzt alles selber zu malen.


Ich habe jetzt mal in bisschen probiert mit

ProjektNr + Name (ein Text) | Nr | Datum | sonstiges

Nr + Datum hat je nach Item verschiedene Bedeutung,
bei Rechnung Rechnungs-Nr., bei Lieferschein LS-Nr. usw.

So richtig glücklich bin ich aber nicht,
weil jetzt alles ganz weit "nach hinten" wandert, z.B. das wichtige
"Lieferschein zurück".

Deshalb habe ich ja zur Zeit noch den normalen TreeView,
dort sind immerhin alle Daten sofort zu sehen (bei grossen Bildschirm ... )

Ein Umstellen auf VT bringt mir da ja nicht viel
(Geschwindigkeit, Optik jaja)


Heiko
Heiko
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#14

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 8. Nov 2007, 11:59
Zitat von hoika:
[...]
Ich würde gern bei jeder verschiedenen Gruppe die Header ändern, ebenso die Spaltenanzahl.
[...]
Das lässt sich natürlich bewerkstelligen Ich habe das in einem meiner Projekte so gelöst, dass ich die max. benötigte Anzahl der Spalten schon zur Designzeit erstellt habe und während der Laufzeit die nicht benötigten Spalten unsichtbar mache bzw die sichtbaren Spalten je nach Anforderung mit einem entsprechenden Kopftext versehen habe und ggf. die Spaltenbreite angepasst habe:
Delphi-Quellcode:
//--Spalte sichtbar
         VSTVO.Header.Columns[col].Options := VSTVO.Header.Columns[col].Options+[coVisible];
//--Spalte unsichtbar
         VSTVO.Header.Columns[col].Options := VSTVO.Header.Columns[col].Options-[coVisible];
//--Kopftext / Breite /Ausrichtung ändern
         VSTV0.Header.Columns[col].Text := 'Kopttext';
         VSTV0.Header.Columns[col].Width := 200;
         VSTV0.Header.Columns[col].Alignment := taRightJustify;
//--VSTVO ist der VirtualStringTree
Und im GetTextEreignis - wie bereits weiter oben erwähnt - befüllst du die Spalten je nach Gruppe
Delphi-Quellcode:
procedure TFormXYZ.VSTV0GetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var Data: PNodeInfos;
begin
   Data := VSTV0.GetNodeData(Node);
   if Data.Rechnung then
     case Column of
          1: CellText := Data.RELSNR; //Rechnungs-/LieferscheinNr als Bsp.
          2: CellText := ''; //wenn nix drinne stehen soll z.b.
          ...
     end
   else
     case Column of
          1: CellText := Data.RELESNR; //Rechnungs-/LieferscheinNr als Bsp.
          2: CellText := Data.BEMERK; //irgendwelche Zusatzinfos
          ...
   end;
Zitat von hoika:
[...]Ich möchte halt verschiedene Inhalte anzeigen,
je nach Item, ohne jetzt alles selber zu malen.
Ähm... bisher wird da noch nix selber gemalt! Das macht der VST schon von sich aus

Zitat von hoika:
[...]
So richtig glücklich bin ich aber nicht,
weil jetzt alles ganz weit "nach hinten" wandert, z.B. das wichtige
"Lieferschein zurück".

Deshalb habe ich ja zur Zeit noch den normalen TreeView,
dort sind immerhin alle Daten sofort zu sehen (bei grossen Bildschirm ... )

Ein Umstellen auf VT bringt mir da ja nicht viel
(Geschwindigkeit, Optik jaja)[...]
das muss ich nicht ganz verstehen ??oder?? Ob du nun den herkömmlichen TreeView nimmst oder den weitaus flexibleren VST - es ist alles eine Frage der Anpassung und mit dem VST wirst du mit Sicherheit auch das gleiche Aussehen erzielen (können) wie mit dem schnöden StandardTreeView

Apropos selber malen: natürlich kannst du je nach 'Zustand' bsp. die Spalte 'Lieferschein zurück' entsprechend einfärben: rot->noch nicht zurück, grün->zurück (nur mal so als Bsp):
Delphi-Quellcode:
procedure TFormXYZ.VSTV0BeforeCellPaint(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
  CellRect: TRect);
var Data: PNodeInfos;
begin
// -- Beispielcode
  Data := Sender.GetNodeData(Node);
  if ((Column=3) and (Data.LieferscheinZurück)) then
        TargetCanvas.Brush.Color := clGreen
  else
    TargetCanvas.Brush.Color := clRed;
  TargetCanvas.FillRect(CellRect);
end;
Noch 'n Tipp - falls 'übersehen':
Im OI des VST die Eigenschaft .DefaultText leer lassen (standardText ist 'Node'), somit werden alle Nodes, denen expliziet kein Text zugewiesen wurde, ohne Inhalt dargestellt
okay, vllt. ist ja was für dich dabei...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 8. Nov 2007, 13:12
Hm,

viel Code, danke

Aber:
Was passiert jetzt, wenn ich die Lieferscheine und Rechnungen
gleichzeitig aufmache ?
Klappt das mit den verschiedenen Spalten dann immer noch ?

Mit dem "nicht nutzen" meinte ich, dass solange
ich das nicht mit den Spalten drinhabe,
ist ein normaler Treeview einfacher / schneller zu programmieren.


Heiko
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 12. Nov 2007, 12:23
Hallo raiguen,

wo genau setzt du die Spalten auf coVisible oder nicht coVisible ?


Heiko
Heiko
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#17

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 14. Nov 2007, 23:13
Moin Heiko
Sorry, dass ich mich erst jetzt (wieder) melde... hab mir in den letzten Tagen ne ordentliche steife (Nordsee-)Brise um die Ohren wehen lassen (mein Lieblingsziel ist in der Regel Cuxhaven...aber das nur am Rande)...

In meinem Projekt verwende ich den VST sehr gerne zur Darstellung von Daten, weil ich durch die enormen flexiblen Möglichkeiten (okay, man muss sich da ordentlich durchwuseln und viel probieren, da m.E. die mir verfügbaren/auffindbaren Dokumentationen nicht immer erschöpfend sind und die Demos nicht immer das AHA-Erlebnis bringen - aber das nur nebenbei bemerkt) vielfache Gestaltungsmöglichkeiten habe.
In einem Modul bspw. werden (vom User editierbare) Vorgabetabellen dargestellt und je nach Art der Tabelle werden bei Auswahl derselben die benötigten Spalten eingeblendet bzw nicht benötigte Spalten ausgeblendet. Von daher kommt es natürlich auf den 'Verwendungs'Zweck an, wann man dieses 'Ereignis' antriggert

Hmm, weiss jetzt nicht genau, was du damit meinst, Rechnung und Lieferschein gleichzeitig aufmachen? Ausgehend von deinem Beispiel wären das dann insgesamt drei Spalten (1*Rechnung, 2*Lieferschein) richtig? Somit hast du es ja in der Hand, wann (=was wird angezeigt) welche Spalte(n) sichtbar sein sollen - aber wie gesagt, das ist jetzt nur ins Blaue geraten. Vllt. ist es hilfreich, deine genauen Wünsche/Ziele zu skizzieren...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: Virtual TreeView, pro SubItem verschiedene Spalten

  Alt 15. Nov 2007, 08:47
Hallo,

#3 zeigt das doch eigentlich gut an.

1. Ebene Projekt
2. Ebene Dokumenten-Typ (Lieferschein/Rechnung)
3. Ebene einzelne Dokumente (je nach Dokumenttyp verschiedene Daten)


Mit "gleichzeitig Anzeigen" meine ich, dass alle Daten
des Projektes angezeigt werden (Expand aller Knoten des Projektes).
Der Nutzer soll auf einen Blick sehen,
welche Lieferschein UND Rechnungen im Projekt sind.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 12:28 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