Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Items eines TTreeViews in fetter Schrift anzeigen


O'rallY - Sa 31.08.02 14:57
Titel: Items eines TTreeViews in fetter Schrift anzeigen
Mein Problem war: Items eines TTreeViews in fetter Schrift anzuzeigen.
Beim SwissDelphiCenter hab ich folgenden Code dazu gefunden:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
uses
  CommCtrls;

procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean);
var
  TVItem: TTVItem;
begin
  if not Assigned(Node) then Exit;
  with TVItem do
  begin
    mask := TVIF_STATE or TVIF_HANDLE;
    hItem := Node.ItemId;
    stateMask := TVIS_BOLD;
    if Value then state := TVIS_BOLD 
    else 
      state := 0;
    TreeView_SetItem(Node.Handle, TVItem);
  end;
end;


Doch was ist den bitte schön TTVItem. In der CommCtrls ist diese Klasse jedenfalls nicht zu finden... Kann mir da jemand helfen?


bis11 - Mo 02.09.02 20:41

Heißt das nicht ComCtrl statt CommCrtl ?


O'rallY - Di 03.09.02 20:01

Ja, glaub ich auch. Habs natürlich auch schon mit der ComCtrl versucht, aber misserfolg. Ich wunder mich auch, dass dort

Quelltext
1:
2:
uses 
  CommCtrls;


benutzt wird. Ich weiß nicht ob das ein Tippfehler ist oder ne "tiefere" Bedeutung hat... Ich kenn jedenfalls die obskurse CommCtrls nicht, und meine Delphihilfe auch nicht :wink:...


Delete - Mi 04.09.02 06:50

O'rallY hat folgendes geschrieben:
Ich weiß nicht ob das ein Tippfehler ist oder ne "tiefere" Bedeutung hat... Ich kenn jedenfalls die obskurse CommCtrls nicht, und meine Delphihilfe auch nicht :wink:...

Die Datei ist weder obskur noch sonst was. Bei der "CommCtrls.pas" (mit zwei M) handelt es sich um die Unit, die die eigentlichen Schnittstellen zu den "Common Controls" zur Verfügung stellt. Wenn du ohne die VCL programmieren würdest, dann müsstest du diese Unit benutzen, um deine Programme z.B. mit ListView, TreeView, Toolbar usw. auszurüsten. Ich empfehle dir an der Stelle mal die Tutorials von Luckie [http://www.luckie-online.de] zu diesem Thema. (Allerdings ist noch kein TreeView-Tutorial enthalten.)

"ComCtrls.pas" (mit einem M) ist die Borland-Kapselung, die ebenfalls Schnittstellen zu ListView, TreeView usw. enthält - allerdings für die VCL.

Dein oben geposteter Code umgeht quasi die VCL und benutzt stattdessen die API-Aufrufe und Deklarationen. Und "TTVItem" ist wohl am besten mit dem VCL-Objekt "TTreeNode" vergleichbar. (Bitte nicht zu wörtlich nehmen!)
Dass sich die Delphi-Hilfe dazu ausschweigt, ist gut möglich, denn die bei Borland beiliegende WinAPI-Hilfe ist schlichtweg veraltet. Daher wirst du eher im MSDN oder PSDK von Microsoft fündig werden.