Voglio cambiare il colore del testo in una riga specifica di un albero di stringa virtuale. È possibile?È possibile cambiare il colore di una riga in una struttura ad albero virtuale?
risposta
utilizzare l'evento 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;
questo cambierà lo sfondo su ogni altra riga (se le righe sono sullo stesso livello).
e se non volessi affatto il colore? come rimuovere il colore di fondo schiena mi stanco 'TargetCanvas.Brush.Style: = bsClear;' ma non riescono – MartinLoanel
@MartinLoanel Sarà necessario fare molto di più per rendere l'intero controllo trasparente. Chiedilo come una domanda diversa e potresti ottenere delle risposte o qualcuno potrebbe averlo già fatto. – Nat
già trovare un modo – MartinLoanel
Per controllare il colore del testo in una riga specifica, utilizzare l'evento OnPaintText e impostare 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;
Si noti che questo metodo viene chiamato per ogni cellula del TreeView. Il puntatore del Nodo è lo stesso in ogni cella di una riga. Quindi, se si dispone di più colonne e si desidera impostare il colore per una fila intera accoring al contenuto di una colonna specifica, è possibile utilizzare il dato nodo, come nel codice di esempio.
Per modificare il colore del testo in una riga specifica, OnDrawText evento può essere utilizzato in cui si cambia corrente TargetCanvas.Font.Color proprietà.
Il codice sotto funziona con Delphi XE 1 e TreeView virtuale 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. È possibile creare una struttura ad albero dinamica usando ExpandoObject?
- 2. Scorretta stringa in una struttura ad albero?
- 3. Serializzazione/derializzazione di una struttura ad albero
- 4. MySQL - Recupero di una struttura ad albero
- 5. Trova tutti i nodi foglia sotto una struttura ad albero in una struttura ad albero in sql server
- 6. È possibile visualizzare la struttura ad albero del codice Java?
- 7. Come creare una struttura ad albero familiare in formato JSON
- 8. Pretty Stampa una struttura dati ad albero in Ruby
- 9. Struttura ad albero di Wordnet
- 10. Modella una struttura ad albero in Core Data
- 11. Realizzare una struttura ad albero in modelli django?
- 12. Disegno di una struttura ad albero 3D WebGL
- 13. Struttura database per struttura dati ad albero
- 14. struttura ad albero graphviz complicata
- 15. Quale collezione per memorizzare una struttura ad albero?
- 16. Impostazione del colore Colore di una riga DataGrid WPF quando è selezionata una riga
- 17. Esiste una struttura ad albero o un algoritmo per mescolare i livelli di un albero?
- 18. Come posso convertire una lista di nomi di file in una struttura ad albero?
- 19. Come è possibile aggiornare dinamicamente il colore di una SeekBar?
- 20. Cambiare il colore di un testo in una JLabel
- 21. Dati principali: come progettare una struttura dati ad albero da una voce di dati centrale
- 22. C# - Struttura ad albero intrusiva, utilizzando CRTP
- 23. È possibile cambiare il colore della scheda selezionata in Android?
- 24. È possibile replicare una macchina virtuale blu?
- 25. È un indice SQL Server B albero una struttura piatta o una struttura di profondità
- 26. Come attraversare una struttura gerarchica della struttura ad albero all'indietro usando le domande ricorsive
- 27. Query dati struttura ad albero in SQL Server
- 28. Implementazione di modelli di repository con modello di dati in una struttura ad albero
- 29. Imposta il colore su una riga QTableView
- 30. Inserisci somma di tutti i rami parentali in ciascun ramo di una struttura ad albero nidificato
Quindi, viene risposto alla tua domanda? – Nat