DBGrid1 Hüçrelerde Dolaşmak

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

DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen ozcank »

Arkadaşlar Merhaba; Ben DBGrid1 de hücrelerde aşağı yukarı hareket ederken satırı renklendiriyorum kodu şu şekilde;

Kod: Tümünü seç

if DBGrid1.DataSource.DataSet.RecNo mod 2 =  0 then // çift sayılı alanların rengi 0,2,4....
     Dbgrid1.Canvas.brush.Color := $00AEEBF0
 else
if DBGrid1.DataSource.DataSet.RecNo mod 2 =  1 then // tek sayılı alanların rengi 1,3,5...
     Dbgrid1.Canvas.Brush.Color := clWindow;

with DBGrid1.Canvas do
begin
      if (gdSelected in State) then // seçili alanın renk ve yazı fontu
      begin
          Brush.Color := $000080FF; //seçim rengi
          Font.Color := ClBlack; // yazı rengi
          Font.Size:=7; // yazı büyüklüğü
          Font.Style := font.Style + [fsBold]; // yazı kalın olsun
          FillRect(rect);
      end;
 end;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
yapmak istediğim eğer DBGrid1 de sağa doğru sütunlar devam ediyorsa sağa gitmiyor klavyeden sağ okla hareket etmek istiyorum ama başaramadım.
nasıl yapabilirim ?
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen Kuri_YJ »

Selamlar,
Tam olarak dediğiniz anlaşılmıyor. Daha açıklayıcı biçimde yazabilir misiniz.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen ozcank »

Kuri_YJ Merhaba; DBGrid1 de fasla sütün varsa sağa doğru gidemiyorum.
DBGrid1 de Options da DgRowSelect değeri false yapınca istediğim oluyor ancak tüm satırı renklendirmiyor.
true yapınca tum satır renkleniyor.
Üstteki koda ;
VK_RIGHT //sağ ok basılırsa
dgRowSelect:=False
VK_LEFT // sol ok basılırsa
dgRowSelect:=False
VK_UP // yukarı ok basılırsa
dgRowSelect:=True
VK_DOWN // aşağı ok basılırsa
dgRowSelect:=True

Eklemek istiyorum.
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen xxxjedixxx »

Merhaba

Aşağıdaki kodu denermisin. Sanırım istediğin bu

Kod: Tümünü seç

type
  TDBGridX=class(TDBGrid);  

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_right then
  begin
    if TDBGridX(DBGrid1).LeftCol < (DBGrid1.Columns.Count - TDBGridX(DBGrid1).VisibleColCount) then
      TDBGridX(DBGrid1).LeftCol:=TDBGridX(DBGrid1).LeftCol + 1;

    Key := 0;
  end;

  if key = vk_left then
  begin
    if TDBGridX(DBGrid1).LeftCol > 1 then
      TDBGridX(DBGrid1).LeftCol := TDBGridX(DBGrid1).LeftCol - 1;

    Key := 0;
  end;
end;
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen ozcank »

xxxjedixxx kardeşim Allah senden razı olsun oldu çok teşekkür ederim. En son Sütünü yarım bırakıyor.:)
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen ozcank »

Arkadaşlar sağa doğru tam gidemiyorum 2 hücreyi göstermiyor. Nasıl yapabilirim ?
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: DBGrid1 Hüçrelerde Dolaşmak

Mesaj gönderen xxxjedixxx »

Aşağıdaki satır ile oyna çözersin. +1 veya +2 yap.
...
if key = vk_right then
begin
if TDBGridX(DBGrid1).LeftCol < (DBGrid1.Columns.Count - TDBGridX(DBGrid1).VisibleColCount + 1) then
...
Cevapla