Temel olabilir, ancak bir veritabanındaki bir değere bağlı olarak stringgrid satır rengini değiştirmek için bir örnek bulma kodunun * * Ateş maymunu. Ben bir MDB gelen herhangi bir sorun var ama satır '' 1 '= kırmızı' 2 '= yeşil vb için belirli bir renk olması gerekir. Biliyorum bir şekilde' OnApplyStyleLookup 'Stil öğeleri erişmek zorundayım? ama hangi aşamada. Metin stili ve renk vb. Ile ilgili sorularım var ama kendimi 'arka plan' öğesine ulaşmaya ve uygulamak için bir delik kazıyorum. Herhangi bir yardım büyük takdir edilecektir. Şerefe Richard ... (FireMonkey için acemi)Firemonkey stringgrid üzerinde hücre arka planının veriye göre değeri
9
A
cevap
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
Bu iyi çalışır Delphi Berlin ile benim kodudur:
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;
İlgili konular
- 1. Arka plan Rengi, hücre ile olan farka göre farklılık gösterir
- 2. Pencere arka planının stil ayarı neden çalışmıyor?
- 3. Terminal.app arka planının komut satırından değiştirilmesi
- 4. yorumlarla delphi xe2 stringgrid
- 5. Ooo-calc'deki hücre-değerine göre hücre rengi nasıl ayarlanır?
- 6. Ayrı bir hücre değeri
- 7. jquery datatable içeriğine göre hücre arkaplanını değiştir
- 8. Geçerli olana göre hücre rengini değiştirme javascript
- 9. TABLO HÜCRE DEĞERİ = .... SONRA (çalışmayan)
- 10. Veriye bağlı değere bağlı olarak arka plan rengini ayarla
- 11. # 000 formatında Arka planının rengini almak ve bu kod ile
- 12. Görünümün arka planının durumu Android'de değiştiğinde nasıl etkilenir?
- 13. Eclipse, geçerli hata ayıklama satırının arka planının nerede değiştirileceği?
- 14. WPF C# - Bir menü arka planının fırçasını değiştirme
- 15. stringgrid (delphi) içinde metin vurma
- 16. StringGrid - Delphi'de hücrenin seçimini zorla
- 17. Firemonkey arka planda bir şeyler yap Form Delphi 10 Seattle
- 18. Hücre üzerinde araç ipucu. GWT
- 19. Firemonkey iPhone'a
- 20. WPF DataGrid hücre arka planı bağlama kullanılarak
- 21. Sadece DataGridView'ın hücre arka planı nasıl değil?
- 22. Highchart: çubuk grafikte, veriye göre çubuğun nasıl artırılacağı? endişe içinde
- 23. iPhone - görünümün arkasındaki UIWebView arka planının rengini değiştirme (arka plan zıplayan)
- 24. Apache POI - Hücre oluşturma, tek bir komutta hücre değeri ve hücre stili ayarlama
- 25. StringGrid sütun başlığı yüksekliği ayarlama
- 26. Datagridview hücre değeri dinamik olarak değiştirilmediğinde güncellenmiyor
- 27. Messagebox'ta DataGridView hücre değeri nasıl alınır?
- 28. Delphi XE2: PDF'yi OSX üzerinde bir Delphi FireMonkey uygulamasında görüntüle
- 29. LibreOffice Calc: Hücre değerine göre satır nasıl vurgulanır?
- 30. datetime_select üzerinde Nil değeri?
Eğer SetData yöntemini geçersiz gerekiyordu rengini ayarlamak için hücre, ancak hücre sınıfı bir StringGrid'de kodlanmış. Bunu yapmak için özel bir hücre sınıfı ile normal bir ızgara kullanmanız gerekir. Bunu nasıl yapacağımı öğrenmek için http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns adresindeki makaleme bir göz atın. –
Çok şükür Mike. Makaleniz iyi belgelenmiş görünüyor. Tam zamanlı çalışıyorum (programlama değil), bu haftasonu ne yapacağımı biliyorum. –