dbGrid ve vk_down

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

dbGrid ve vk_down

Mesaj gönderen hakkus »

Merhaba,
dbGrid üzerinde bir alanı edit ediyorum, değerleri giriyorum.
Ancak son satırdayken aşağı ok tuşuna basılırsa yeni boş bir kayıt açılmasını istemiyorum.
Bunu nasıl engelleyebilirim?
Saygıyla
saygılar
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

merhaba,
kodu buldum belki sizinde işinize yarar..:)
procedure TForm1.DBGrid1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_DOWN) then
begin
Table1.DisableControls;
Table1.Next;
if Table1.EOF then Key:= 0
else Table1.Prior;
Table1.EnableControls;
end;
end;
saygılar
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Table1.DisableControls;
Table1.EnableControls;

Bu kodlar ne işe yarıyor.

Bu kodlar olmadanda yazığınız kodlar çalışıyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

mesela bir tabloda kayıtları baştan sonra tarıyorsanız, bu kodları yazmazsanız, geçerli kayıtın bilgileri bağlı DBEdit, DBGrid vs. de güncellenir. Bu hem görüntü açısından hoş olmuyor, hem de işlemi yavaşlatıyor. Bu kodları yazarsanız bağlı bileşenlerle irtibat kesiliyor ve bu olumsuzluklar olmuyor, tekrar bağlıyorsunuz.

Kolay gelsin.
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

merhabalar,
table1.first;
while not table1.eof do
begin
..
..
table1.next;
end;
buna benzer bir kod kullanıyorsanız ve table1 dataları o anda bir grid de veya dbedit te görünüyorsa, bu görünen verilerin refresh edilmesi esnasında vakit kaybı sözkonusudur. bu nedenle önce disablecontrols yapıyoruz ki program ekran yenilenmesiyle uğraşmasın diye. İş bitince tekrar enablecontrols yaparak üzerinde durduğumuz veriye tekrar dönüyoruz.
saygıyla
saygılar
Cevapla