DBGrid seçili alan rengi.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
subhan
Üye
Mesajlar: 224
Kayıt: 05 Mar 2008 08:18

DBGrid seçili alan rengi.

Mesaj gönderen subhan » 29 Mar 2010 04:43

Bu konu ile ilgili formda birkaç konu buldum ancak tam olarak istediğim şeyi bulamadım.

Yapmak istediğim DBGrid-e seçili alanı rengini değiştirmek. Bunu yapmak istedim ancaq
beceremedim.

Bende böyle kodun ListBox için olanı var.

Kod: Tümünü seç

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; 
Rect: TRect; State: TOwnerDrawState);
begin 
if odSelected in State then 
begin   
(Control as TListBox).Canvas.Brush.Color := clred;   
(Control as TListBox).Canvas.Font.Color := clWhite; 
end; 
(Control as TListBox).Canvas.FillRect( Rect ); 
(Control as TListBox).Canvas.TextOut(Rect.left, Rect.top, (Control as TListBox).Items[Index]);
end;
Bu kod ListBoxta seçili alan rengini değiştiriyor. Bu kodu DBGrid-e nasıl kulana bilirim.

Ekdeki resime baka bilirsiniz.
Dosya ekleri
DBGrid.gif
DBGrid.gif (2.23 KiB) 1696 kere görüntülendi
< The Best Boy >

qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 03:30

Re: DBGrid seçili alan rengi.

Mesaj gönderen qamyoncu » 29 Mar 2010 06:32

Kod: Tümünü seç

   
var
acol1,arow1: Integer;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if (arow1=arow) and (acol1=acol) then
begin
  StringGrid1.Canvas.Brush.Color := clred;
  StringGrid1.Canvas.FillRect(Rect);
end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
arow1:=arow;
acol1:=acol;
end;

DBGrid için de benzer bir yol izleyebilirsiniz sanıyorum.
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'

Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 02:10
Konum: İstanbul & Gebze Karışık

Re: DBGrid seçili alan rengi.

Mesaj gönderen conari » 30 Mar 2010 09:24

benim kullandığım kod.

Kod: Tümünü seç

procedure TFrmKalite.DBGKaliteDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if ADOKaliteGrid.active=true then
   Begin
      if (DBGkalite.datasource.dataset.recno mod 2) =0  then
       begin
        DBGkalite.Canvas.Brush.Color := cllime;
       end
       else
       begin
     DBGkalite.Canvas.Brush.Color := $008AE6D1;
      end;
   If (gdSelected in state) then // eğer seçili ise
     begin
      DBGkalite.Canvas.Font.Color:=clblue; // Fontun rengini değiştirir..
      DBGkalite.Canvas.Font.Style:=[fsbold]; //font stili
      End;
     End;
    try
   if Column.Index >11 then
   if column.field.asinteger >0   then begin
   DBGkalite.Canvas.Font.Color:=clred
   end else begin
    DBGkalite.Canvas.Font.Color:=clblack;
   end;
   except
   end;
   DBGkalite.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 end;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim

Kullanıcı avatarı
subhan
Üye
Mesajlar: 224
Kayıt: 05 Mar 2008 08:18

Re: DBGrid seçili alan rengi.

Mesaj gönderen subhan » 30 Mar 2010 02:46

Teşşekür ederim. Conari bu çok gözel. Benim istediğimden daha düzelini verdin.
< The Best Boy >

Cevapla