AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TTreeView OwnerDraw, Texthintergrund färben, Alternativen?
Thema durchsuchen
Ansicht
Themen-Optionen

TTreeView OwnerDraw, Texthintergrund färben, Alternativen?

Ein Thema von bluesbear · begonnen am 18. Jun 2008 · letzter Beitrag vom 19. Jun 2008
Antwort Antwort
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#1

TTreeView OwnerDraw, Texthintergrund färben, Alternativen?

  Alt 18. Jun 2008, 21:54
Vorwarnung: Hier geht es leider immer noch um Delphi 3.
[OT]Na dafür is das Smiley gut <g>[/OT]

Ein Kundenwunsch wurde heute bei einem Vororttermin an mich herangetragen:
Ich möge die lange Liste, die ich derzeit in einem TreeView anzeige, doch zeilenweise abwechselnd mit einem leichten hellgrau unterlegen.
Ich war heute vor Ort, hab mir angesehen, wie die Leute dort arbeiten, und muss sagen, das ist eine gute Idee.
Der rein weiß hinterlegte Datenfriedhof flirrt einem vor Augen, wenn man lange damit arbeiten muss.

Ich gebe zu, die Suchfunktion habe ich noch nicht bemüht (bin heute um 04:00 aufgestanden), aber vielleicht fällt ja jemandem spontan etwas ein, was mir weiter hilft.
Ich muss ja kein TTreeView benutzen. Nur halt etwas, was ähnlich leicht zu programmieren ist (die Einträge dienen nur zur Anzeige und Auswahl, editiert wird da nix), aber vielleicht leichter in der Veränderung der Darstellung.
Oder geht das doch mit einem TTreeView?
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 18. Jun 2008, 22:03
Wenn jetzt schon ein treeView vorhanden ist, wäre es ja am Einfachsten, das so zu belassen und "nur" den OwnerDraw zu realisieren
Markus Kinzler
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 18. Jun 2008, 22:17
Blöder Weise gibt es bei einem TTreeView nix mit OwnerDraw oder so.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 18. Jun 2008, 22:25
Delphi 3 ist so lange her, dass ich keinen Schimmer habe, was damals schon ging. Das Problem an den Alternative, wurd aber auch sein, dass sie unter D3 nicht funktionieren. (Z.B. VST erst ab D4)
Markus Kinzler
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 18. Jun 2008, 22:33
VST würd ich liebend gerne hernehmen dafür, aber alles was ich hab, sind graue Haare, nicht nur deswegen.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 19. Jun 2008, 07:29
Handelt es sich um ein hierarisches Menü? Könnte man das nicht mit einer Listbox simulieren? Dort hast Du ein OwnerDraw und kannst die Einrückung der Hierarchie ja einfach selbst zeichnen. Ich denke, das das keine allzugroßen Probleme bereitet, nur hättest Du u.U. keine hierarchische Struktur mehr, bzw. müsstest die außerhalb der Listbox nachbilden.

Fällt mir gerade ein: Lass die TreeView, mach sie unsichtbar und verwende eine Listbox zum rendern. Dann musst du 'nur noch' die visuellen Änderungen und Aktionen (Klick, OnChange etc.) mit der TreeView synchronisieren.

Eine ListBox hat leider kein 'OnFocusChanged' Ereignis. Du kannst Dir aber dadurch behelfen, indem Du einfach bei jeden OnKeyUp und OnMouseDown den Itemindex abfragst und dann das korrespondierende TreeView.OnChange-Ereignis aufrufst.

PS.: Was ist falsch daran, auf eine neue Delphi-Version zu migrieren? Ich finde, das ist ein Grund und man kann dem Kunden auch sagen: Tja, das wird nicht unterstützt, sie müssen auf D2006 o.ä. migrieren. Das ist mit Kosten verbunden, aber so ist das nun mal.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 19. Jun 2008, 17:30
Es ist in der Tat so etwas wie ein hierarchisches Menü.

Es geht darum, aus einer Liste von Personengruppen eine oder mehrere zur Erfüllung einer anstehenden Aufgabe auszuwählen (Personaldisposition). Per Doppelklick wandern die in eine Vormerkliste, die nach der Zusammenstellung per Knopfdruck (O-Ton Kunde) "abgeschossen" wird.

In der obersten Ebene des zunächst collapsed TTreeView stehen die Gruppennamen und Anwesenheitszeiten sowie einige Flags, sortiert nach Eignung der Gruppe für die jeweilige Aufgabe. Z.B. ist die Gruppe frei, sind die geforderten Qualifikationen durch die Mitglieder abgedeckt, wie lange hatte die Gruppe bis jetzt keine Aufträge (zur gleichmäßigen Auslastung), usw.
Durch den Expand einer Gruppe kann man dann die Mitglieder sehen.
Die Disponenten kennen ihre Pappenheimer und berücksichtigen da noch weitere, persönlichere Kriterien "Der hat zwar den Schein dazu, aber wennde den dat machen lässt.. geh mer fott!" <g>

Die Liste ist in Spitzenzeiten sehr lang, und als ich dabei saß, merkte auch ich, daß es viel Konzentration erfordert, eine ganze Schicht lang damit zu arbeiten. Das muß übersichtlicher werden.

Also so wie ich das sehe geht das mit einem TTreeView wohl nicht.

Möglicherweise sollte ich das Design komplett überdenken.
Die Daten liegen in einer hierarchischen Struktur vor. Die darstellung ist das Problem.
StringGrid ist keine schlechte Idee...

Ich lasse die Frage noch nen Tag offen. Vielleicht hat jemand etwas ähnliches schon mal gemacht, und hat Kundenerfahrung "kam gut an" oder so.

Gut, daß ich im Topic "Alternative" geschrieben hatte, sonst wär das nun OT
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 19. Jun 2008, 17:33
Was spricht gegen eine Migration auf ein neueres Delphi?

Ach, schon mal bei www.torry.net oder bei den DelphiSuperPages gesucht?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 19. Jun 2008, 17:37
Hallo, vielleicht wäre der TTreeNT (Vorgänger von VST) etwas für dich.
Unterstützt Custom Draw u.v.m.
Thomas
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: TTreeView OwnerDraw, Texthintergrund färben, Alternative

  Alt 19. Jun 2008, 19:56
Ich habe mir TTreeNT gerade mal installiert, und
Das isses!
Binford6900 TreeView für Delphi3 mit mehr Power! Hou hou hou, hou hou!

Vielen Dank für den Link, und an alle, die sich nen Kopp gemacht haben.


Gegen eine Migration auf Delphi2007 spricht gar nichts, die läuft schon. Bei ungefähr 800.000 Zeilen Code haben die Kunden aber längst Migräne bis das fertig ist.
Da muss jetzt was passieren.
Klaus M. Hoffmann
  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 19:26 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