DBGrid1 Satır Renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

DBGrid1 Satır Renklendirme

Mesaj gönderen ozcank »

Arkadaşlar;
DBGrid1 in 1 satırı aynı kalacak ikinci satırı farklı renkde nasıl yapabilirim?

[/url]
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

3 - 5 mesaj önce sorulmuş :kup:

viewtopic.php?t=14470

Lütfen soru sormadan önce daha önce sorulup sorulmadığını arama yardımıyla kontrol edelim :!:
DeveloperToolKit

..::|YeşilMavi|::..
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

baktım ordakilere bu şekilde değil ben sadece standart olarak renk yapmak istiyorum üst satırla alt satırı karıştırılmaması için.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ne yani istediğin işlemi yapması için hazır bir procedure mü bekliyorsun. ordakiler satırı renklendirmiyorumu. Farklı bir olay kullanmayacaksın.
aynı olaya kendi koşulunu kendi renklerini koyacaksın okadar.
:wink:
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde olunca DBGrid1 tamamen yeşil bunu 1 satır yeşil diğer satır beyaz nasıl yapabilirim?

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; 
  DataCol: Integer; Column: TColumn; State: TGridDrawState); 
  Begin 
      DBGrid1.Canvas.Brush.Color := clGreen; 
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
      DBGrid1.Canvas.Brush.Color := clRed; 
    end; 
end. 
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

Kod: Tümünü seç

procedure TForm1.GridDrawCell(Sender: TObject; ACol,  
  ARow: Integer; Rect: TRect; State: TGridDrawState);  
begin  
if (ARow mod 2=0) then  
begin  
   grid.Canvas.Brush.Color:=clred 
else
   grid.Canvas.Brush.Color:=clgreen;
 grid.Canvas.FillRect(Rect) 
end; 
kolay gelsin...
kıdemsiz üye
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde ekledim bir yanlışlık mı yaptım acaba yada ben Delphi5 kullanıyorum ondanmıdır?

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if (ARow mod 2=0) then
begin
   grid.Canvas.Brush.Color:=clred
else
   grid.Canvas.Brush.Color:=clgreen;
 grid.Canvas.FillRect(Rect)
end;
[Error] Unit1.pas(39): Declaration of 'DBGrid1DrawColumnCell' differs from previous declaration
[Error] Unit1.pas(41): Undeclared identifier: 'ARow'
[Error] Unit1.pas(43): Undeclared identifier: 'grid'
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.

Kod: Tümünü seç

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.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Abi teşekkür ederim bu konuyla ilgili son sorum dolaşan barın renginide ayarlayabilirmiyim?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ayarlayabilirsin. :wink:
:ara state gdfocused
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Dediğiniz kısımı bulamadım dolayısıyle yapamadım.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

nerden baksan en fazla 26 dk lık bi aram yaptın ve bulamadın. öylemi.
nasıl bir arama yaptın anlamadım.
ben dediğim şekilde arayarak hemen 3 tane mesaj buldum. üçündede gdfocused ve state beraber kullanılmış. üçündede sizin için çözüm olacak kod var.
lütfen bu kadar da hazırcı olmayın. :twisted:
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşlar bu şekilde yaptım ama yine hata veriyor ne yapabilirim yardım ederseniz sevinirim.

Kod: Tümünü seç

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 := clYellow
      else DBGrid1.Canvas.Brush.Color := clMenu;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      if State=GDFocused then
      Begin
       DBGrid1.Canvas.Brush.Color := clMoneyGreen
      else DBGrid1.Canvas.Brush.Color := clRed;
    end;
end.

[Error] Unit1.pas(36): Incompatible types
[Error] Unit1.pas(38): Undeclared identifier: 'clMoneyGreen'
[Error] Unit1.pas(39): 'END' expected but 'ELSE' found
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Sanırım sondaki begin end i hatalı kullanmışsın. Bloklamayı düzgün yapmamanın sonucu bu :wink:

Kod: Tümünü seç

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 := clYellow
  else
    DBGrid1.Canvas.Brush.Color := clMenu;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  if State = GDFocused then
    DBGrid1.Canvas.Brush.Color := clMoneyGreen
  else
    DBGrid1.Canvas.Brush.Color := clRed;
end;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
recep abiye ek olarak

Kod: Tümünü seç

if State = GDFocused then
yerine

Kod: Tümünü seç

if (gdfocused in state)
şeklinde kullanırsan daha sağlam olur kanaatindeyim.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla