Chcę zmienić kolor tekstu w określonym wierszu wirtualnego drzewa ciągów. Czy to możliwe?Czy można zmienić kolor wiersza w wirtualnym drzewie łańcuchowym?
Odpowiedz
Użyj zdarzenie OnBeforeCellPaint:
procedure TForm1.VirtualStringTree1BeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
begin
if Node.Index mod 2 = 0 then
begin
TargetCanvas.Brush.Color := clFuchsia;
TargetCanvas.FillRect(CellRect);
end;
end;
To będzie zmienić tło na co drugim rzędzie (jeśli wiersze są na tym samym poziomie).
co, jeśli w ogóle nie chcę koloru? jak usunąć kolor tła z powrotem i zmęczony 'TargetCanvas.Brush.Style: = bsClear;' ale nie powiodło się – MartinLoanel
@MartinLoanel Będziesz musiał zrobić dużo więcej, aby cała kontrola była przejrzysta. Zadaj to jako inne pytanie i możesz uzyskać odpowiedzi lub ktoś już to zrobił. – Nat
już znaleźć sposób – MartinLoanel
Aby kontrolować kolor tekstu w określonym wierszu, należy użyć zdarzenia OnPaintText i ustawić TargetCanvas.Font.Color.
procedure TForm.TreePaintText(Sender: TBaseVirtualTree; const TargetCanvas:
TCanvas; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType);
var
YourRecord: PYourRecord;
begin
YourRecord := Sender.GetNodeData(Node);
// an example for checking the content of a specific record field
if YourRecord.Text = 'SampleText' then
TargetCanvas.Font.Color := clRed;
end;
Należy zauważyć, że ta metoda jest wywoływana dla każdej komórki w TreeView. Wskaźnik Node jest taki sam w każdej komórce w rzędzie. Jeśli więc masz wiele kolumn i chcesz ustawić kolor dla całego wiersza zgodnego z treścią konkretnej kolumny, możesz użyć danego węzła, tak jak w przykładowym kodzie.
Aby zmienić kolor tekstu w określonym wierszu OnDrawText zdarzenie może być stosowany, w którym zmienia bieżący TargetCanvas.Font.Color nieruchomości.
Poniższy kod działa z Delphi XE 1 i wirtualnych katalogów 5.5.2 (http://virtual-treeview.googlecode.com/svn/branches/V5_stable/)
type
TFileVirtualNode = packed record
filePath: String;
exists: Boolean;
end;
PTFileVirtualNode = ^TFileVirtualNode ;
procedure TForm.TVirtualStringTree_OnDrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
Column: TColumnIndex; const Text: UnicodeString; const CellRect: TRect; var DefaultDraw: Boolean);
var
pileVirtualNode: PTFileVirtualNode;
begin
pileVirtualNode:= Sender.GetNodeData(Node);
if not pileVirtualNode^.exists then
begin
TargetCanvas.Font.Color := clGrayText;
end;
end;
- 1. jak zmienić kolor wiersza tabeli w vaadinie
- 2. Jak zmienić kolor tła wybranego wiersza datagridview?
- 3. Czy można zmienić kolor wybranej zakładki w systemie Android?
- 4. Kolor wiersza UIPickerView
- 5. Jak zmienić UUID w wirtualnym pudełku
- 6. czy można zmienić domyślną skórkę/kolor wideo html5?
- 7. Jak zmienić typ w drzewie wyrażeń?
- 8. Nie można zmienić kolor podświetlenia niebieski UITableView
- 9. Jak zmienić kolor JProgressBar?
- 10. Czy można zmienić metodę wyszukiwania w LINQ?
- 11. łańcuchowym obserwabli w RxJS
- 12. można wygenerować Eclipse łańcuchowym metody ustawiające-
- 13. Ustawianie tekstu Kolor wiersza DataGrid WPF po wybraniu wiersza
- 14. Jak zmienić kolor UIFont?
- 15. Konstruktor łańcuchowym w Pythonie
- 16. jQuery zmienić kolor symbolu zastępczego
- 17. Jak zmienić kolor zaznaczenia tekstu w WKWebView?
- 18. Jak zmienić kolor JSeparatora?
- 19. Notepad ++ zmienić kolor tekstu?
- 20. Swift Jak zmienić kolor tytułu UIAlertController Kolor
- 21. Umieszczanie linii końcowej w strumieniu łańcuchowym
- 22. Można zmienić kolor tła zgodnie z poziomem zagnieżdżonym?
- 23. Swift zmienić kolor tekstu za pomocą NSMutableAttributedStrings
- 24. Jak zmienić kolor TabIndicater w PagerTabStrip
- 25. Czy możesz zmienić jeden kolor na inny w obrazie bitmapowym?
- 26. Czy można zmienić kierunek skali?
- 27. Jak zmienić kolor tytułów wykresów
- 28. Czy można zmienić funkcję repr w pythonie?
- 29. Czy można zmienić ciąg znaków w C?
- 30. Czy można zmienić nazwę pliku w CodeBlocks?
Tak, odpowiedzi na Twoje pytanie? – Nat