procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
if (dbgrid1.datasource.dataset.recno mod 2) =0
then DBGrid1.Canvas.Brush.Color := clGreen
else DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end.
şeklinde bi dene.
Hocam
if (dbgrid1.datasource.dataset.recno mod 2) =0
bunu ve
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
burayı açıklarsan çok sevinirm. Delphide yeniyim.. Aradığım kodlar bunlar ama. Anlamadan geçmek istemiyorum
Anladığım kadarı ile ben anlatmaya çalışayım. Dbgridin hücre çizme olayına yazılmış bu kod. Yani her hücre çizilmden ya da çizilirken (bakmak lazım ne zaman olduğuna) bu kodlar çalışıyor. mod matematiksel bir ifade olup x mod y x'in y'ye bölümünde kalanı verir.
burada dbgrid'in hücresi çizilirken o hücrenin kaçıncı kayıtta olduğuna bekılıp mod 2 = 0 ile tek sıralı satır mı çift sıralı satır mı olduğuna bakılıyor. Tek ise şu renge boya çift ise bu renge boya deniliyor.
s.a.
@hdayi
o sorduğun kısım boyama ve texleri yazma işini yapan kısım.
o olmadan önce
dbgrid in canvasına rectangle çizdirip textoutla içine text i yazdırıyorduk
o geldikten sonra rectangle ve textout un işini o yapıyor.
dbgrid in defaultdraw ı false ediliyor.
program biizm yazdığımız kodlara bakyor
biz rengleri,fontu vs. ayarlıyoruz ve
default draw ı çağırıyoruz.
umarım anlatabilmişimdir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim