Forum: Programmieren allgemein
by marabu,
5. Dez 2005
Langsam verstehe ich dich besser. Die Färbung ist nicht von der Selektion des Knoten abhängig. Du verwendest die Selektion nur um den Knoten zu markieren, der über den Button gefärbt werden soll. Dazu solltest du wie von Sharky beschrieben die Data property des Node verwenden. Sharky hat doch auch Code beigelegt - hast du den schon ausprobiert?
marabu
PS: Ansonsten geht es auch mit meinem...
Forum: Programmieren allgemein
by marabu,
5. Dez 2005
Mein Code tut genau das, was du zum wiederholten Male beschreibst. Den letzten Fall kann ich mit meinem Code nicht produzieren. Wenn du meinen Code ausprobiert hast und das Ergebnis ist nicht wie gewünscht, dann vermute ich Seiteneffekte durch anderen Code, den du gleichzeitig in deiner Anwendung hast.
Mäßig verwirrte Grüße vom marabu
Forum: Programmieren allgemein
by marabu,
5. Dez 2005
Hallo Michael,
entweder liegen bei dir Problembeschreibung und Anforderung verdammt weit auseinander oder in das OnClick Ereignis deines HighlightButton gehört die Anweisung TreeView.Invalidate - den Rest macht der Code aus Beitrag #8. Wenn du das Highlighting auch wieder wegnehmen möchtest, dann geht das so:
procedure TDemoForm.TreeViewCustomDrawItem(Sender: TCustomTreeView;
Node:...
Forum: Programmieren allgemein
by marabu,
4. Dez 2005
Dein Ansatz ist falsch, Michael. Du kannst nicht erst alles schwarz zeichnen und dann den markierten Eintrag grün - das Ereignis OnCustomDrawItem() gibt dir die Chance genau einen Eintrag zu zeichnen und du musst entscheiden, wie du ihn anmalen willst. Da der markierte Knoten sowieso schon hervorgehoben wird, macht das Färben dort eigentlich keinen Sinn, aber so gehts:
procedure...
Forum: Programmieren allgemein
by marabu,
3. Dez 2005
Hallo Michael,
wenn bei dir das Ereignis nicht zur Verfügung steht, dann ist D3 wohl zu alt.
Grüße vom marabu
Forum: Programmieren allgemein
by marabu,
26. Nov 2005
Aber ich:
procedure TDemoForm.ColorButtonClick(Sender: TObject);
var
tn: TTreeNode;
begin
tn := TreeView.Selected;
if not Assigned(tn) then
Exit;