Konuyu Oyla:
  • Derecelendirme: 1/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Grid veya StringGrid Hücre Renklendirme
#1
Arkadaşlar merhaba,
multi device application'da Grid veya Stringgrid'in şartları sağlayan hücrelerin zemin rengi ve yazı fontlarında değişiklik nasıl yapılıyor? Yardımcı olabilirmisiniz
teşekkürler
Cevapla
#2
(15-03-2018, Saat: 22:21)burakb44 Adlı Kullanıcıdan Alıntı: Arkadaşlar merhaba,
multi device application'da Grid veya Stringgrid'in şartları sağlayan hücrelerin zemin rengi ve yazı fontlarında değişiklik nasıl yapılıyor? Yardımcı olabilirmisiniz
teşekkürler

procedure TForm8.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if ib1.Recno mod 2 = 0 then
   DBGrid1.Canvas.Brush.Color := clmoneygreen
 else
   DBGrid1.Canvas.Brush.Color := $00E3F9D5;
 with DBGrid1.Canvas do
 begin
   if (gdSelected in State) then // seçili alanın renk ve yazı fontu
   begin
     Brush.Color := $00FFA042; // $00E2D032; //seçim rengi
     Font.Color := ClBlack; // yazı rengi
     Font.Size := 8; // yazı büyüklüğü
     // Font.Style := font.Style + [fsBold]; // yazı kalın olsun
     FillRect(Rect);
   end;
 end;
 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Cevapla
#3
pardon düzenledim.. span kısmı olmamalıydı..
Cevapla
#4
(17-03-2018, Saat: 00:05)mcuyan Adlı Kullanıcıdan Alıntı: pardon düzenledim.. span kısmı olmamalıydı..

Kod vcl için fmx için sormuştum, sanırım kimse paylaşmak istemiyor ☺️
Cevapla
#5
Merhaba,
Eski bir konu fakat, ihtiyaç doğrultusunda kullanmam gerekti, buradada cevaplanmamış konu olarak gördüğüm için paylaşmak istedim.

İyi Çalışmalar.

procedure TFrmMain.StringGrid1DrawColumnCell(Sender: TObject;
 const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
 const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
SatirRengi: TBrush;
begin
 SatirRengi := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);
 if (Sender as TStringGrid).Cells[ 3, Row ] = '0' then  // 4. Stun Değeri 0 ise o satırı boyamak içindir.
 begin
   SatirRengi.Color := TAlphaColors.Yellow;
   Canvas.FillRect(Bounds, 0, 0, [], 1, SatirRengi);
   Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
 end;

 if Column.Header='DEPARTMAN' then // DEPARTMAN Başlıklı stunu komple boyamak içindir.
 begin
   SatirRengi.Color := TAlphaColors.RED;
   Canvas.FillRect(Bounds, 0, 0, [], 1, SatirRengi);
   Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
 end;
 SatirRengi.free;
end;
Cevapla
#6
(23-06-2021, Saat: 13:08)Teşekkürler ozcanm Adlı Kullanıcıdan Alıntı: Merhaba,
Eski bir konu fakat, ihtiyaç doğrultusunda kullanmam gerekti, buradada cevaplanmamış konu olarak gördüğüm için paylaşmak istedim.

İyi Çalışmalar.

procedure TFrmMain.StringGrid1DrawColumnCell(Sender: TObject;
 const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
 const Row: Integer; const Value: TValue; const State: TGridDrawStates);
var
SatirRengi: TBrush;
begin
 SatirRengi := Tbrush.Create(TBrushKind.Solid,TAlphaColors.Alpha);
 if (Sender as TStringGrid).Cells[ 3, Row ] = '0' then  // 4. Stun Değeri 0 ise o satırı boyamak içindir.
 begin
   SatirRengi.Color := TAlphaColors.Yellow;
   Canvas.FillRect(Bounds, 0, 0, [], 1, SatirRengi);
   Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
 end;

 if Column.Header='DEPARTMAN' then // DEPARTMAN Başlıklı stunu komple boyamak içindir.
 begin
   SatirRengi.Color := TAlphaColors.RED;
   Canvas.FillRect(Bounds, 0, 0, [], 1, SatirRengi);
   Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
 end;
 SatirRengi.free;
end;
Cevapla
#7
Fmx de bu kod ile renklendirmiştim

procedure TSiparisDetayF.StringGrid1DrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF;
const Row: Integer; const Value: TValue; const State: TGridDrawStates);

begin
 aRowColor := TBrush.Create(TBrushKind.Solid, TAlphaColors.Alpha);

if Siparis_QKalan.AsFloat > 0 then
  aRowColor.Color := TAlphaColorRec.Aqua
else
if Siparis_QKalan.AsFloat = 0 Then
  ARowColor.Color := TAlphaColorRec.Lime
else
if Siparis_QKalan.AsFloat <  0 then
  aRowColor.Color := TAlphaColorRec.Aliceblue;

aNewRectF := Bounds;
aNewRectF.Inflate(3, 3);
Canvas.FillRect(aNewRectF, 0, 0, [], 1, aRowColor);
Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);

aRowColor.free;



end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IOS galeriden resim veya video seçme hakkında Mr.X 6 1.152 11-05-2023, Saat: 06:54
Son Yorum: emozgun
  Telefondaki sqllite dosyasını pc ye veya başka yere yedek alma ssmr 4 1.090 02-12-2021, Saat: 14:42
Son Yorum: elixir84
  Stringgrid keydown sorunu hbulus 5 1.449 01-07-2021, Saat: 23:27
Son Yorum: hbulus
  Bulut veya iP Yazıcıdan Yazdırma gonulali 3 1.298 10-03-2021, Saat: 11:25
Son Yorum: mkysoft
  Thread kullanmadan veya IdThreadComponent ile AniIndicator kullanımı hk. pro_imaj 20 17.174 30-01-2021, Saat: 22:26
Son Yorum: 41linea41



Konuyu Okuyanlar: 1 Ziyaretçi