Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
dbgrid de sağ sol tuşlarını kullanma
#1
Arkadaşlar,

dbgrid de düzenleme yapıyorum düzenleme yaparken sağdaki veya soldaki veya yukarıdaki hücreye geçmek istiyorum  sağ sol tuşlarını nasıl kullanabilirim dbgrid keypress olayına nasıl birşey yazabilirim ?

Teşekkürler.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
dbgrid options seçeneklerinde dgRowSelect özelliği false değerinde ise dbgrid üzerine odaklanınca klavyedeki sağ sol yukarı aşağı tuşlarını kod yazmadan kullanabilirsin. Bunun için ek bir kod yazmanıza gerek yok odaklandığınız hücrenin içeriğini değiştirmek içinde enter yapmanız yeterli.
Cevapla
#3
edit ederken dahi sağ sol tuşları işlemesini istiyorum sadece yukarı aşağı değil sağa sola da işlemeli

dbgrid seçeneklerindeki dgRowSelect özelliği false ama sadece aşağı yukarı çalışır.

Teşekkürler
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#4
(03-04-2018, Saat: 11:06)erdogan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oledit ederken dahi sağ sol tuşları işlemesini istiyorum sadece yukarı aşağı değil sağa sola da işlemeli

dbgrid seçeneklerindeki dgRowSelect özelliği false ama sadece aşağı yukarı çalışır.

Teşekkürler


procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin

 case Key of
   VK_Left : begin
               Caption:= 'Left';
               //...
             end;
   VK_Right: begin
               Caption:= 'Right';
               //...
             end;
   VK_Up   : begin
               Caption:= 'Up';
               //...
             end;
   VK_Down : begin
               Caption:= 'Down';
               //...
             end;
 end;
 if Key in [VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN] then Key := 0; // bu tuşları kullandık, dolayısıyla aynı tuşa iki kere basmak istemeyiz...
end;
Peyami Safa: "Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır". 
Can Yücel: "Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı."
Cevapla
#5
çok teşekkür ederim oldu

begin
case Key of
VK_Left : begin
dbgrdPUANTAJ_LISTESI.SelectedIndex := dbgrdPUANTAJ_LISTESI.SelectedIndex+1
end;
VK_Right: begin
dbgrdPUANTAJ_LISTESI.SelectedIndex := dbgrdPUANTAJ_LISTESI.SelectedIndex-1
end;
VK_Up : begin
QRY_PERSONEL_PUANTAJ_DB.Prior;
end;
VK_Down : begin
QRY_PERSONEL_PUANTAJ_DB.Next;
end;
end;
if Key in [VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN] then Key := 0; // bu tuşları kullandık, dolayısıyla aynı tuşa iki kere basmak istemeyiz...
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#6
type
  THackDBGrid = Class(TCustomDBGrid);
.
.
.

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
 var
   row  : integer;
begin
 if (Sender as TDBGrid).DataSource.DataSet.RecordCount>0 then // Kayıt olması şartı
 begin
   with (Sender as TDBGrid).Canvas do // Tek çift satırları renklendirmek için
   Begin
     row := (Sender as TDBGrid).DataSource.DataSet.RecNo;
     if Odd(row) then Brush.Color := $00E1D7D5
     else             Brush.Color := $00C0F1B1;
   End;
   with THackDBGrid(Sender) do
   begin
     if DataLink.ActiveRecord = Row - 1 then //Seçili satır işlemleri başlangıcı
     begin
       Canvas.Brush.Color  := $00F29328;
       Canvas.Font.Color   := clWhite;
       Canvas.Font.Size    := 12;
       if (gdFocused in State) then  //Seçili hüçre işlemleri
       Begin
         Canvas.Font.Color   := clBlack;
         Canvas.Brush.Color  := clRed;
       End;
     end
     else // Seçili olmayan satırlar için
     Canvas.Font.Size      := 10;
   end;
   (Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State); // yapılan işlemlerin gride aktarılması
 end;
end;


Ne işe yarar;
Tek ve çift satırlara farklı renk ataması yaparak ayrıştırma.
RowSelect özelliğini gibi seçili satırın boyanması.
Seçili satırın font size yükseltilmesi, Font color değiştirilmesi.
Seçili hücrenin farklı bir rek alması,
Cevapla
#7
çok teşekkürler elinize sağlık
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TreeViewi ListView gibi kullanma Dostk 0 114 10-07-2018, Saat: 16:04
Son Yorum: Dostk
  DBGrid Columns Otomatik Boyutlandırma Halil Han Badem 7 723 23-01-2018, Saat: 10:00
Son Yorum: Cyber
  Delphide ki sınıfı C# ta kullanma ilhan03 11 1.268 28-07-2017, Saat: 17:32
Son Yorum: ismailkocacan
  Activex Kullanma veya oluşturma Lord_Ares 4 782 25-05-2017, Saat: 16:31
Son Yorum: Lord_Ares
  Nesneleri döngü içerisinde kullanma dnzmobile 8 887 19-04-2017, Saat: 09:57
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi