Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DBGrid1 de Alta Boşluk Eklemek
#11
Sarı olmasının nedeni
Var

onceki:String;

şeklinde local değişken olarak tanımladınız ve bir değer atamadığınız için
if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin

karşılaştırmanızda hep else ye düşüyor. Ortalık ondan sarı olmuştur Smile

Not: En altta atadığınız onceki değeri, bir sonraki çalışmada (sonraki kayıt işlenirken) kaybolacaktır. 
onceki değişkeninizi global yapıp deneyebilirsiniz.
Cevapla
#12
(26-04-2022, Saat: 13:11)OZCANK Adlı Kullanıcıdan Alıntı:
(26-04-2022, Saat: 11:55)cinarbil Adlı Kullanıcıdan Alıntı: [quote pid='49245' dateline='1650959599']


Aynı FISNO aynı olanlar bir renk olsun tek olanlar beyaz nasıl yapabilirim?

Kabaca yaptım kalanını kendiniz düzenleye bilirsiniz
ince ayarları

 uses data_prg;
procedure TForm1.FormCreate(Sender: TObject);
begin
data_form.siparis_oku('select * from siparis',false);
 test_grid.DataSource := data_form.siparis_kaynak;
 test_grid.Columns[0].Field := data_form.siparis_sorgu.FieldByName('S_IMALAT_NO');
 test_grid.Columns[1].Field := data_form.siparis_sorgu.FieldByName('S_BAYI_ADI');
 test_grid.Columns[2].Field := data_form.siparis_sorgu.FieldByName('S_Grup_kod');
end;

procedure TForm1.test_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
  begin

        if (data_form.siparis_sorgu.RecNo > 0) and (data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text = onceki)  then begin
       test_grid.Canvas.Brush.Color:=Clred;
       test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
       end else begin
                 test_grid.Canvas.Brush.Color:=Clyellow;
                 test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
                end;


      test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      onceki:= data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text
   end;

Teşekkür ederim kod için. Bende düzenledim kullandım ama hepsi sarı oldu Smile

procedure TForm29.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
onceki:String;
begin
  if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin
      DBGrid3.Canvas.Brush.Color:=Clred;
      DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else begin
                DBGrid3.Canvas.Brush.Color:=Clyellow;
                DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
               end;
     DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     onceki:= StokKontrol.FieldByName('FISNO').Text
  end;
[/quote]
bilgisayar yok önünde denemeden yazıyorum

 if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin

satırını yanlış düzenlemişim öncelikle
 if StokKontrol.FieldByName('FISNO').Text = onceki  then begin

Olarak değiştirerek dener misin.

(26-04-2022, Saat: 13:44)cinarbil Adlı Kullanıcıdan Alıntı:
(26-04-2022, Saat: 13:11)OZCANK Adlı Kullanıcıdan Alıntı: Kabaca yaptım kalanını kendiniz düzenleye bilirsiniz
ince ayarları

 uses data_prg;
procedure TForm1.FormCreate(Sender: TObject);
begin
data_form.siparis_oku('select * from siparis',false);
 test_grid.DataSource := data_form.siparis_kaynak;
 test_grid.Columns[0].Field := data_form.siparis_sorgu.FieldByName('S_IMALAT_NO');
 test_grid.Columns[1].Field := data_form.siparis_sorgu.FieldByName('S_BAYI_ADI');
 test_grid.Columns[2].Field := data_form.siparis_sorgu.FieldByName('S_Grup_kod');
end;

procedure TForm1.test_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
  begin

        if (data_form.siparis_sorgu.RecNo > 0) and (data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text = onceki)  then begin
       test_grid.Canvas.Brush.Color:=Clred;
       test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
       end else begin
                 test_grid.Canvas.Brush.Color:=Clyellow;
                 test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
                end;


      test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      onceki:= data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text
   end;

Teşekkür ederim kod için. Bende düzenledim kullandım ama hepsi sarı oldu Smile

procedure TForm29.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
onceki:String;
begin
  if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin
      DBGrid3.Canvas.Brush.Color:=Clred;
      DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else begin
                DBGrid3.Canvas.Brush.Color:=Clyellow;
                DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
               end;
     DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     onceki:= StokKontrol.FieldByName('FISNO').Text
  end;
bilgisayar yok önünde denemeden yazıyorum

 if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin

satırını yanlış düzenlemişim öncelikle
 if StokKontrol.FieldByName('FISNO').Text = onceki  then begin

Olarak değiştirerek dener misin.
[/quote]


kusura bakmayın @frmman  mesajı yeni gördüm
doğru söylüyor  onceki adlı tanımlama procedure işin de olmayacak oradan silin formun public kısmına  tanımlayın
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#13
(26-04-2022, Saat: 13:44)cinarbil Adlı Kullanıcıdan Alıntı:
(26-04-2022, Saat: 13:11)OZCANK Adlı Kullanıcıdan Alıntı: Kabaca yaptım kalanını kendiniz düzenleye bilirsiniz
ince ayarları

 uses data_prg;
procedure TForm1.FormCreate(Sender: TObject);
begin
data_form.siparis_oku('select * from siparis',false);
 test_grid.DataSource := data_form.siparis_kaynak;
 test_grid.Columns[0].Field := data_form.siparis_sorgu.FieldByName('S_IMALAT_NO');
 test_grid.Columns[1].Field := data_form.siparis_sorgu.FieldByName('S_BAYI_ADI');
 test_grid.Columns[2].Field := data_form.siparis_sorgu.FieldByName('S_Grup_kod');
end;

procedure TForm1.test_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
  begin

        if (data_form.siparis_sorgu.RecNo > 0) and (data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text = onceki)  then begin
       test_grid.Canvas.Brush.Color:=Clred;
       test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
       end else begin
                 test_grid.Canvas.Brush.Color:=Clyellow;
                 test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
                end;


      test_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      onceki:= data_form.siparis_sorgu.FieldByName('S_Grup_kod').Text
   end;

Teşekkür ederim kod için. Bende düzenledim kullandım ama hepsi sarı oldu Smile

procedure TForm29.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
onceki:String;
begin
  if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin
      DBGrid3.Canvas.Brush.Color:=Clred;
      DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else begin
                DBGrid3.Canvas.Brush.Color:=Clyellow;
                DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
               end;
     DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     onceki:= StokKontrol.FieldByName('FISNO').Text
  end;
bilgisayar yok önünde denemeden yazıyorum

 if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin

satırını yanlış düzenlemişim öncelikle
 if StokKontrol.FieldByName('FISNO').Text = onceki  then begin

Olarak değiştirerek dener misin.

(26-04-2022, Saat: 13:44)cinarbil Adlı Kullanıcıdan Alıntı: Teşekkür ederim kod için. Bende düzenledim kullandım ama hepsi sarı oldu Smile

procedure TForm29.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
onceki:String;
begin
  if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin
      DBGrid3.Canvas.Brush.Color:=Clred;
      DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else begin
                DBGrid3.Canvas.Brush.Color:=Clyellow;
                DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
               end;
     DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     onceki:= StokKontrol.FieldByName('FISNO').Text
  end;
bilgisayar yok önünde denemeden yazıyorum

 if (StokKontrol.RecNo > 0) and (StokKontrol.FieldByName('FISNO').Text = onceki)  then begin

satırını yanlış düzenlemişim öncelikle
 if StokKontrol.FieldByName('FISNO').Text = onceki  then begin

Olarak değiştirerek dener misin.
[/quote]


kusura bakmayın @frmman  mesajı yeni gördüm
doğru söylüyor  onceki adlı tanımlama procedure işin de olmayacak oradan silin formun public kısmına  tanımlayın
[/quote]



Arkadaşlar, öncelikle emeğinize yüreğinize sağlık. Uyarlamaya çalıştım ama tam olmadı.

procedure TForm29.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if StokKontrol.FieldByName('FISNO').Text = onceki  then begin
      DBGrid3.Canvas.Brush.Color:=ClWindow;
      DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end else begin
                DBGrid3.Canvas.Brush.Color:=$00AEEBF0;
                DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
               end;
     DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     onceki:= StokKontrol.FieldByName('FISNO').Text
  end;


Ek Dosyalar Resimler
   
Cevapla
#14
Kodu uyarlamaya çalıştım fakat yine saçma bir durum ortaya çıktı;

bura da iki tabloyu karşılaştırıyorum ve hedef tabloda olmayan kayıtları listeliyorum, listelenen kayıtların da FISNO ile ayırmak istedim yine olmadı.

SELECT DISTINCT FISNO,STOK_KODU,STOK_ADI,
CASE WHEN TABLO1.STOK_KODU IS NOT NULL THEN TABLO1.STOK_KODU else null end as STOK_KODU,
case WHEN TABLO1.STOK_KODU IS NOT NULL then FISNO else null end as FISNO
FROM (SELECT SHR.FISNO,TABLO1.STOK_KODU,TABLO1.STOK_ADI
FROM AYVAZ2019..TBLSTSABIT TABLO1
                         INNER JOIN AYVAZ2019..TBLSTHAR SHR ON SHR.STOK_KODU = TABLO1.STOK_KODU WHERE 1=1 AND SHR.FISNO IN ('000000000041407','000000000000004')
                         AND NOT EXISTS (SELECT NULL FROM ENTEGRE9..TBLSTSABIT TABLO2 WHERE 1=1 AND TABLO2.STOK_KODU = TABLO1.STOK_KODU)) TABLO1
                         GROUP BY FISNO,STOK_KODU,STOK_ADI
with rollup
having FISNO is not null


Ek Dosyalar Resimler
   
Cevapla
#15
İstediğiniz böyle bir şey mi ?

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Grids, DBGrids, DB, IBCustomDataSet, IBQuery, IBDatabase,
 StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   IBDatabase1: TIBDatabase;
   IBTransaction1: TIBTransaction;
   IBQuery1: TIBQuery;
   DataSource1: TDataSource;
   DBGrid1: TDBGrid;
   ListBox1: TListBox;
   ListBox2: TListBox;
   procedure Button1Click(Sender: TObject);
   procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
     DataCol: Integer; Column: TColumn; State: TGridDrawState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
  i : Integer ;
begin
     with IBDatabase1 do
     begin
        Connected := false ;
        DatabaseName := ExtractFilePath(Application.ExeName) + 'dnm.fdb' ;
        DefaultTransaction := IBTransaction1 ;
        SQLDialect := 3 ;
        Params.Clear ;
        Params.Add('user_name=SYSDBA') ;
        Params.Add('password=masterkey') ;
        Params.Add('lc_ctype=WIN1254') ;
        LoginPrompt := False ;
        Connected := True ;
     end ;

     with IBTransaction1 do
     begin
        Active := False ;
        DefaultDatabase := IBDatabase1 ;
        Params.Clear ;
        Params.Add('read_committed') ;
        Params.Add('rec_version') ;
        Params.Add('nowait') ;
        Active := True ;
     end ;

  IBQuery1.Database := IBDatabase1 ;

  IBQuery1.SQL.Clear ;
  IBQuery1.SQL.Add('Select Count(BELGE_NO) from (  ') ;
  IBQuery1.SQL.Add('Select BELGE_NO from new_table ') ;
  IBQuery1.SQL.Add('Group by BELGE_NO ') ;
  IBQuery1.SQL.Add('Order by belge_no)Data ') ;
  IBQuery1.Open ;
  i := IBQuery1.FieldByName('Count').AsInteger ;

  IBQuery1.SQL.Clear ;
  IBQuery1.SQL.Add('Select BELGE_NO from new_table ') ;
  IBQuery1.SQL.Add('Group by BELGE_NO ') ;
  IBQuery1.SQL.Add('Order by belge_no') ;
  IBQuery1.Open ;


  ListBox1.Items.Clear ;
  ListBox2.Items.Clear ;
  IBQuery1.First ;
  For i := 1 to i do
  begin
     if i Mod 2 = 0 then
        ListBox2.Items.Add('clRed')
     else
        ListBox2.Items.Add('clYellow') ;

     ListBox1.Items.Add(IBQuery1.FieldByName('BELGE_NO').Text) ;
     IBQuery1.Next ;
  end ;

  IBQuery1.SQL.Clear ;
  IBQuery1.SQL.Add('Select * from NEW_TABLE') ;
  IBQuery1.SQL.Add('ORDER BY BELGE_NO') ;
  IBQuery1.Open ;
  DataSource1.DataSet := IBQuery1 ;
  DBGrid1.DataSource := DataSource1 ;

end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
  i, x : Integer ;
  Satir_Rengi : TColor ;
begin
  i := ListBox1.Items.IndexOf(DBGrid1.datasource.dataset.fieldbyname('BELGE_NO').Text) ; ;
  Satir_Rengi := StringToColor( ListBox2.Items.Strings[i] ) ;
  DBGrid1.canvas.Brush.Color := Satir_Rengi ;
  DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);

end;

end.


Ek Dosyalar Resimler
   
Cevapla
#16
Arkadaşlar , Ben bu şekilde bir kod ile çözmeye uğraştım bir türlü renklendirme yapamadım yardım eder misiniz?

Aktarılmışları ve aktarılmamışları ayrı renk yapmak istedim.

procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış' then
Begin
 DBGrid1.Columns[6].Color:=clYellow;
end
Else if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış' then
Begin
 DBGrid1.Columns[6].Color:=clBlue;
end;
end;
end.
Cevapla
#17
(30-04-2022, Saat: 10:09)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar , Ben bu şekilde bir kod ile çözmeye uğraştım bir türlü renklendirme yapamadım yardım eder misiniz?

Aktarılmışları ve aktarılmamışları ayrı renk yapmak istedim.

procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış' then
Begin
 DBGrid1.Columns[6].Color:=clYellow;
end
Else if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış' then
Begin
 DBGrid1.Columns[6].Color:=clBlue;
end;
end;
end.

 İyi günler hayırlı bayramlar.
Önceden yazdıklarıma olmadı demiştiniz ben aşağıdaki şekilde kullanıyorum resim ekte bende çalışıyor Delphi 10,2 Kullanıyorum

procedure Tpersonel_form.personel_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
 Column: TColumn; State: TGridDrawState);
begin

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='YONETIM'
     then begin
       personel_grid.Canvas.Brush.Color:=Clyellow;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='DEPO'
     then begin
       personel_grid.Canvas.Brush.Color:=Clskyblue;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

end;

1. kayıt mavi olması secili olduğu için
YONETIM sarı
DEPO  açık mavi
 sizdeki sorun renk ataması yaptıkdan sonra 
personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Kullanmıyorsunuz 
Lütfen yukardaki benim kodu olduğu deneyin


Ek Dosyalar Resimler
   
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#18
(30-04-2022, Saat: 11:52)cinarbil Adlı Kullanıcıdan Alıntı:
(30-04-2022, Saat: 10:09)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar , Ben bu şekilde bir kod ile çözmeye uğraştım bir türlü renklendirme yapamadım yardım eder misiniz?

Aktarılmışları ve aktarılmamışları ayrı renk yapmak istedim.

procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış' then
Begin
 DBGrid1.Columns[6].Color:=clYellow;
end
Else if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış' then
Begin
 DBGrid1.Columns[6].Color:=clBlue;
end;
end;
end.

 İyi günler hayırlı bayramlar.
Önceden yazdıklarıma olmadı demiştiniz ben aşağıdaki şekilde kullanıyorum resim ekte bende çalışıyor Delphi 10,2 Kullanıyorum

procedure Tpersonel_form.personel_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
 Column: TColumn; State: TGridDrawState);
begin

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='YONETIM'
     then begin
       personel_grid.Canvas.Brush.Color:=Clyellow;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='DEPO'
     then begin
       personel_grid.Canvas.Brush.Color:=Clskyblue;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

end;

1. kayıt mavi olması secili olduğu için
YONETIM sarı
DEPO  açık mavi
 sizdeki sorun renk ataması yaptıkdan sonra 
personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Kullanmıyorsunuz 
Lütfen yukardaki benim kodu olduğu deneyin

Aynen bu şekilde kullandım ama renklendirmedi?
D7


procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clyellow;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clskyblue;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

end;
Cevapla
#19
(30-04-2022, Saat: 12:08)OZCANK Adlı Kullanıcıdan Alıntı:
(30-04-2022, Saat: 11:52)cinarbil Adlı Kullanıcıdan Alıntı:  İyi günler hayırlı bayramlar.
Önceden yazdıklarıma olmadı demiştiniz ben aşağıdaki şekilde kullanıyorum resim ekte bende çalışıyor Delphi 10,2 Kullanıyorum

procedure Tpersonel_form.personel_gridDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer;
 Column: TColumn; State: TGridDrawState);
begin

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='YONETIM'
     then begin
       personel_grid.Canvas.Brush.Color:=Clyellow;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

if data_form.personel_sorgu.FieldByName('PER_BOLUM').AsString='DEPO'
     then begin
       personel_grid.Canvas.Brush.Color:=Clskyblue;
       personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
     end;

end;

1. kayıt mavi olması secili olduğu için
YONETIM sarı
DEPO  açık mavi
 sizdeki sorun renk ataması yaptıkdan sonra 
personel_grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Kullanmıyorsunuz 
Lütfen yukardaki benim kodu olduğu deneyin

Aynen bu şekilde kullandım ama renklendirmedi?


procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clyellow;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clskyblue;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

end;
 o  zaman sorun ıf karşılaştırmasında

if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış'

burada bir yanlışlık var kayıt sayısı az ise (çünkü her sutun çiziminde buraya gelecek program) aşağıdaki gibi deneyin
Procedure en başına ıf satırı üstüne 
Showmessage(FaturaListe.FieldByName('DURUM').AsString);

burada Aktarılmış veya Aktarılmamış yazıyorsa 
son olarak 
if Trim(FaturaListe.FieldByName('DURUM').AsString)=Trim('Aktarılmış')
deneyin.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#20
(30-04-2022, Saat: 12:25)cinarbil Adlı Kullanıcıdan Alıntı:
(30-04-2022, Saat: 12:08)OZCANK Adlı Kullanıcıdan Alıntı: Aynen bu şekilde kullandım ama renklendirmedi?


procedure TForm29.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clyellow;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

if FaturaListe.FieldByName('DURUM').AsString='Aktarılmamış'
    then begin
      DBGrid1.Canvas.Brush.Color:=Clskyblue;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

end;
 o  zaman sorun ıf karşılaştırmasında

if FaturaListe.FieldByName('DURUM').AsString='Aktarılmış'

burada bir yanlışlık var kayıt sayısı az ise (çünkü her sutun çiziminde buraya gelecek program) aşağıdaki gibi deneyin
Procedure en başına ıf satırı üstüne 
Showmessage(FaturaListe.FieldByName('DURUM').AsString);

burada Aktarılmış veya Aktarılmamış yazıyorsa 
son olarak 
if Trim(FaturaListe.FieldByName('DURUM').AsString)=Trim('Aktarılmış')
deneyin.

Tüm satırı değilde sadece DURUM sütününü nasıl yaparım?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DBGrid1 Alanlarını Gizle Göster Olarak Kullanmak. OZCANK 4 779 05-04-2025, Saat: 22:02
Son Yorum: metemet
  SQL Cümleye Tırnak Eklemek OZCANK 1 388 30-01-2025, Saat: 01:33
Son Yorum: mcuyan
  ctrl + boşluk çalışmıyor erdogan 3 1.342 27-10-2024, Saat: 14:07
Son Yorum: resoft12
  DbGrid içindeki tarih verisine 1 yıl eklemek neriamelih 2 1.135 25-12-2022, Saat: 17:54
Son Yorum: enigma
  DBGrid1'deki Verileri Tabloya Aktarma OZCANK 11 6.171 28-09-2022, Saat: 15:49
Son Yorum: OZCANK



Konuyu Okuyanlar: 1 Ziyaretçi