Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Grid Hücre Renlendirme hk.
#1
Merhaba Arkadaşlar,

TGrid component'inde kaç gün geçti başlığı altında bulunan hücreleri renklendirmek istiyorum. 
Eksi olanlar yeşil artı olanlar kırmızı vs gibi.


Yardımcı olur musunuz.


[img=845x1000]https://i.imgyukle.com/2019/10/14/ELQAan.png[/img]


Ek Dosyalar Resimler
   
Cevapla
#2
Anahtar kelimeniz. FMX, TGrid, OnDrawColumnCell

Gridin OnDrawColumnCell özelliği var. Bu özelliği araştırın işinizi görecektir.

Buda size örnek olsun. Fakat dediğim gibi siz kendiniz araştırma yaparsanız daha iyi anlarsınız.
Benim verdiğim örnek içinde de 10.2 ile test ettim fakat bunda da hata var aslında hata derken opacity %50 yapınca iki tane yazı çıkıyor.
Opacity kullanmayacaksanız işinizi görecektir.

procedure TForm1.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates);
var
s: string;
begin
//istediğin kolon veya satırda boya
if (Column.Index = 0) and (Row = 2) then
begin
  Canvas.BeginScene();
  Canvas.Fill.Color := TAlphaColorRec.Red;
  //arka planı kırmızı olarak boya
  Canvas.FillRect(Bounds, 0, 0, [], 1, Canvas.Fill);
  if not Value.IsEmpty then
  begin
    s := Value.AsString;
    //gelen değer sıfırdan küçükse boya
    if (s.ToInteger < 0) then
    begin
      //yazıyı siyah olarak boya
      Canvas.Fill.Color := TAlphaColorRec.Black;
      Canvas.FillText(Bounds, s, False, 1, [], TTextAlign.Center, TTextAlign.Center);
    end;
  end;
  Canvas.EndScene;
end;
end;
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#3
(14-10-2019, Saat: 16:05)3ddark Adlı Kullanıcıdan Alıntı: Anahtar kelimeniz. FMX, TGrid, OnDrawColumnCell

Gridin OnDrawColumnCell özelliği var. Bu özelliği araştırın işinizi görecektir.

Buda size örnek olsun. Fakat dediğim gibi siz kendiniz araştırma yaparsanız daha iyi anlarsınız.
Benim verdiğim örnek içinde de 10.2 ile test ettim fakat bunda da hata var aslında hata derken opacity %50 yapınca iki tane yazı çıkıyor.
Opacity kullanmayacaksanız işinizi görecektir.

procedure TForm1.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates);
var
s: string;
begin
//istediğin kolon veya satırda boya
if (Column.Index = 0) and (Row = 2) then
begin
  Canvas.BeginScene();
  Canvas.Fill.Color := TAlphaColorRec.Red;
  //arka planı kırmızı olarak boya
  Canvas.FillRect(Bounds, 0, 0, [], 1, Canvas.Fill);
  if not Value.IsEmpty then
  begin
    s := Value.AsString;
    //gelen değer sıfırdan küçükse boya
    if (s.ToInteger < 0) then
    begin
      //yazıyı siyah olarak boya
      Canvas.Fill.Color := TAlphaColorRec.Black;
      Canvas.FillText(Bounds, s, False, 1, [], TTextAlign.Center, TTextAlign.Center);
    end;
  end;
  Canvas.EndScene;
end;
end;

Teşekkürler [b]3ddark[/b]  Bey,

Fakat;
Yukarıdaki kodu programa eklediğimde grid ekranı sayfasına geldiğim zaman program çalışmayı durdurdu deyip kapanmaktadır.
Cevapla
#4
Debug yaparak nerede hata olduğunu kendi kodunuz içinde bulun.
Ben bu kodu denedim. Bir grid ve 1 sütun ekledim bir kaç değer ekledikten sonra boyama kodunu yazdım ve çalıştığını gördüm. Sonrasında foruma yazdım ve bendeki deneme kodunu sildim.

Bence sizin hatanız Value ile alakalı tip dönüşümünde bir sorununuz olabilir.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#5
Örnek için teşekkürler 3ddark.
Adı üstünde örnek Wink

seydigozegir@gmail.com ; muhtemelen örnek kodlardaki s.ToInteger 'dan dolayı hata alıyorsunuz. Sayısal ifade içermeyen değerler için burası hata verecektir.
There's no place like 127.0.0.1
WWW
Cevapla
#6
Teşekkürler Sorunu Buldum.

Emeğinize Sağlık.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  OrangeUI Grid kullanımı hk. pro_imaj 12 1.635 31-01-2020, Saat: 09:58
Son Yorum: pro_imaj
  FMX Vertical Grid pro_imaj 5 1.453 10-05-2019, Saat: 17:04
Son Yorum: pro_imaj
  Android string grid check column a veri ekleme 41linea41 3 1.120 19-04-2019, Saat: 20:06
Son Yorum: 41linea41
  Android-Grid uygulama kapanma gonulali 3 1.035 27-02-2019, Saat: 13:26
Son Yorum: gonulali
  [Çözüldü] Fmx grid veya stringgrid hücre renklendirme CesuR 4 1.516 11-02-2019, Saat: 13:35
Son Yorum: CesuR



Konuyu Okuyanlar: 1 Ziyaretçi