DirectoryOutline
-
Hi zusammen,
habe auf meine Form ein DirectoryOutline gezogen und es funktioniert wunderbar!
Jetzt möchte ich aber hinter jedem TreeNode noch eine Progressbar anzeigen lassen, welche den Przentsatz der Größe im vergleich zu den anderen Elementen im ordner ernthält.
Dazu muss ich aber den DirectoryOutline nue zeichnen!Mit einer Normalen Listbox (UnbearbeiteteSongs) habe ihc es so gemacht:
void __fastcall TForm1::UnbearbeiteteSongs_OnDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) { Graphics::TBitmap* bmp = new Graphics::TBitmap(); //Aktiv if(State.Contains(odSelected)) { UnbearbeiteteSongs->Canvas->Brush->Color = clBlack; // Hintergrundfarbe UnbearbeiteteSongs->Canvas->Font->Color = clWhite; // Textfarbe UnbearbeiteteSongs->Canvas->Font->Size = 12; bmp->LoadFromFile("Testbild2.bmp"); //UnbearbeiteteSongs->Canvas->DrawFocusRect(Rect); }else if(Index % 2 && !State.Contains(odFocused)) { UnbearbeiteteSongs->Canvas->Brush->Color = clSilver; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; bmp->LoadFromFile("Testbild1.bmp"); }else{ UnbearbeiteteSongs->Canvas->Brush->Color = clWhite; UnbearbeiteteSongs->Canvas->Font->Color = clBlack; UnbearbeiteteSongs->Canvas->Font->Size = 10; bmp->LoadFromFile("Testbild.bmp"); } UnbearbeiteteSongs->Canvas->FillRect(Rect); UnbearbeiteteSongs->Canvas->Draw(Rect.left + 2, Rect.top + ((Rect.Height() - bmp->Height) / 2), bmp); UnbearbeiteteSongs->Canvas->TextOutA(Rect.left + 4 + bmp->Width, Rect.top + ((Rect.Height() - UnbearbeiteteSongs->Canvas->TextHeight(UnbearbeiteteSongs->Items->Strings[Index])) / 2 ), UnbearbeiteteSongs->Items->Strings[Index]); delete bmp; }Dort wird schön das Bild vorne angezeigt!
Jetzt habe ich aber beim DirectoryOutline keine Ahnung wie ich es realisieren soll, weil wenn ich es gleich mache wie oben, dann wird mir nur der erste Item angezeigt!"
Wäre um eure Hife sehr dankbar
bench