Può essere semplice ma sono un * * di un codice di esempio che trova il tempo per cambiare il colore di una riga di una stringa in base a un valore da un database in FireMonkey. Ho dati provenienti da un MDB senza problemi, ma ho bisogno che la riga sia di determinati colori per esempio '1' = rosso '2' = verde ecc. So che devo accedere agli elementi di stile in qualche modo 'OnApplyStyleLookup'? ma in quale fase. Ho visto domande su come cambiare lo stile e il colore del testo, ecc. Ma sto scavando un buco per me stesso cercando di arrivare all'elemento "sfondo" e applicandolo. Qualsiasi aiuto sarebbe molto apprezzato. Acclamazioni Richard ... (novizio di FireMonkey)Colorare lo sfondo della cella su firemonkey stringgrid in base al valore dei dati
9
A
risposta
4
{OnDrawColumnCell event}
procedure OnDrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
RowColor : TBrush;
begin
RowColor := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);
{you can check for values and then set the color you want}
if Value.ToString = 'red' then
RowColor.Color := TAlphaColors.Red;
Canvas.FillRect(Bounds, 0, 0, [], 1, RowColor);
{ perform default drawing }
TGrid(Sender).DefaultDrawColumnCell(Canvas, Column, Bounds, Row,
Value, State);
end;
0
Questo è il mio codice con Delphi di Berlino che funziona bene:
var
aRowColor: TBrush;
begin
//it's better to write this line into create
aRowColor := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);
//-----
grid.DefaultDrawing := False;
if (myTbl.RcrdDataCount > 0) and (Row < myTbl.RcrdDataCount) then begin
if myTbl.RcrdDataItems[Row].State = TStateDeleted then begin
aRowColor.Color := TAlphaColors.Red;
end
else begin
aRowColor.Color := TAlphaColors.Gray;
end;
Canvas.FillRect(Bounds, 0, 0, [], 1, aRowColor);
Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
end;
//it's better to write this line into destroy
aRowColor.free;
//-----
end;
Problemi correlati
- 1. Come impostare il colore della cella in base al valore della cella su ooo-calc?
- 2. Modifica della cella di sfondo della tabella in base al valore
- 3. Come posso colorare lo sfondo in modo condizionale in una cella di tabella?
- 4. cambia cella sfondo di jquery datatable in base al contenuto
- 5. Applicare lo stile in base al valore della proprietà
- 6. Firemonkey Grid Control - Styling di una cella in base a un valore (tramite la chiamata di funzione OnGetValue)
- 7. DataGrid Riga Sfondo basato sul valore della cella
- 8. matplotlib: utilizzo di una mappa di colori per colorare lo sfondo della tabella di una tabella
- 9. PostgreSQL - impostare un valore di cella di default in base ad un altro valore della cella
- 10. php_excel07- Come aumentare l'altezza della cella in base ai dati della cella (xls)
- 11. Colorare i bordi networkx in base al peso
- 12. Dati di base che prelevano lo sfondo tramite nuovo NSPrivateQueueConcurrencyType
- 13. Imposta il colore di sfondo in base al valore con associazione a dati
- 14. Aggiornamento cella DataGridView Colore di sfondo in base ai dati di riga
- 15. Cambia colore cella in Excel in base al valore a discesa adiacente
- 16. Cifratura dei dati di base
- 17. Somma di righe in base al valore della colonna
- 18. Colore sfondo di ritorno della cella selezionata
- 19. Colorare ogni arco di sunburst in base al valore di dimensione
- 20. Delphi FireMonkey iOS sfondo elaborazione
- 21. Dividere il frame dei dati dei panda in base al nome della colonna
- 22. Come posso aggiornare il valore della cella della tabella dei dati?
- 23. Come associare lo sfondo della finestra al colore di sfondo della finestra di un tema?
- 24. filtrare un dataframe panda in base al valore della data
- 25. Elimina oggetto dall'elenco ImmutableJS in base al valore della proprietà
- 26. Come raggruppare i dati XML in base al valore multiplo
- 27. Get indice cella da valore della cella, Apache POI
- 28. Eliminazione dei file xcdatamodel della versione dei dati di base
- 29. switch in base al valore dei dati associati a Silverlight/WPF
- 30. Rimuovi duplicati in base al valore della colonna-linq
Per impostare il colore avresti bisogno di eseguire l'override del metodo SetData di la cella, ma la classe della cella è codificata in un StringGrid. Per farlo devi utilizzare una griglia normale con una classe di celle personalizzata. Date un'occhiata al mio articolo su http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns per come farlo. –
Grazie a tutti Mike. Il tuo articolo sembra ben documentato. Lavoro a tempo pieno (non programmando) quindi so cosa farò questo fine settimana. –