Mouse Tıklandığı zaman DBGrid boyanması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
a.mikayil
Üye
Mesajlar: 83
Kayıt: 07 Ağu 2010 01:55

Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen a.mikayil »

Arkadaşlar, uzun zamandır yapamıyorum. Bir DBGrid var.İstiyorum ki, mouse tıklandığı zaman sol düğme basılı olduğu müddetçe DBGrid hücreleri koşullara göre farklı renklerle boyansın. Düğmeyi bıraktığım anda yeniden eski normal haline dönsün.Koşulun fazla önemi yok.Mesela eğer Field tipi stringse mavı , integersa yeşil,DateTimesa sarı boyansın.Şimdiden teşekkür ederim.
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen Battosai »

grid'in mousedown olayında basılı:=true gibi bir değişken ataması yapı mouseup dada tam tersi...sonra gridin ondrawcolumncell olayına

Kod: Tümünü seç

if basili then  
begin
    ......................// Burası renklendirme kodları
end;
Sitede koşula göre renklendirme kodları zaten mevcut.....
Kullanıcı avatarı
a.mikayil
Üye
Mesajlar: 83
Kayıt: 07 Ağu 2010 01:55

Re: Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen a.mikayil »

Tamam, teşekkür ederim. Demek böyleymiş.
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen Commandx »

Böyle bir çözümüm var benim alın bakem : )

Kod: Tümünü seç

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

var
 CELLTEXT: STRing;

begin
  if gdSelected in State then Exit;
  CELLTEXT := DBGrid4.DataSource.DataSet.FieldByName('ODENDISI').AsString;// ödeme sütun başlığı 
  if CELLTEXT ='ODENDI' then // ödendi ise yeşil yap
  begin
    DBGrid4.Canvas.Brush.Color := cllime;
   DBGrid4.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
   if CELLTEXT ='ODENMEDI' then // DBGRID içindeki text eğer ödenmedi ise Sarı yap
  begin
      DBGrid4.Canvas.Brush.Color := clyellow;
      DBGrid4.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
        if CELLTEXT ='' then // DB grid içi boş ise KIRMIZI OLSUN İYİMİ
        begin
        DBGrid4.Canvas.Brush.Color := clRed;
  DBGrid4.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
askarad
Üye
Mesajlar: 65
Kayıt: 02 Eki 2007 03:47

Re: Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen askarad »

neden tıklandığında gösterilmesi istenebilir ki? tıklamadan direkt göstersin.
Kullanıcı avatarı
a.mikayil
Üye
Mesajlar: 83
Kayıt: 07 Ağu 2010 01:55

Re: Mouse Tıklandığı zaman DBGrid boyanması

Mesaj gönderen a.mikayil »

Teşekkürler
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Cevapla