ok tuşları ile geçme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

ok tuşları ile geçme

Mesaj gönderen ademcicek »

herkese merhaba.aşağıdaki kod ile formun üzerindeki nesneler üzerinde gezebiliyorum. hiç bir şekilde hata vermiyor.
ama bir sorunum var.
örneğin formun üzerine 9 tane dbedit 5 tene bitbtn 5 tane de edit koydum.
ok tuşarıyla hareket ettiğimde dbedit bloğunun içine girdiğimde editlerin ve bitbtin nin içine geçmiyor.ancak tab tuşuyla bitbtn veya editlerin içine geçebiliyorum.
bu sorunu nasıl çözebilirim.
bir de dxgrid kullandım formda ok tuşlarıyla hereket ettiğimde gridin içine giriyor ve hemen çıkıyor. kayıtlarda gezme işlemini yapamıyorum.

inşallah acıklayıcı olmuşumdur.
biraz anlatma sorunum varda.
çok teşekür ediyorum.
kolay gelin..

procedure TMerkezTeskilati.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ((Key = VK_DOWN) or
(Key = VK_RETURN)) then
begin
key := 0;
self.Perform(WM_NEXTDLGCTL, 0, 0) end
else if (Key = VK_UP) then
begin
key := 0;
self.Perform(WM_NEXTDLGCTL, 1, 0) end;
end;
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Ademcicek Demişki
dxgrid kullandım formda ok tuşlarıyla hereket ettiğimde gridin içine giriyor ve hemen çıkıyor. kayıtlarda gezme işlemini yapamıyorum.
Ben bunu DBGrid de Aktif Olan kontrolun dbgrid olup olmadığını sorguluyorum aktifse gerekli işlemleri yaptırtıyorum kodumu aynı şekilde veriyorum hiç bileşen kullanmadığım için dxGrid bileşenin de kodumu deneyemiyorum açıklamalı bir şekilde kullanmış olduğum kod aşağıda umarım işine yarar.

Kod: Tümünü seç

procedure TCariAcilisFrm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then { Eğer Enter basılmışsa}
   if not (ActiveControl is TDBGrid) then
    begin// TDBGrid üzerinde değilse}
      Key := #0; { }
      Perform(WM_NEXTDLGCTL, 0, 0); { }
    end
     else
    if (ActiveControl is TDBGrid) then// TDBGridd ise}
    with TDBGrid(ActiveControl) do
    if selectedindex < (fieldcount - 1) then// Alanı bir arttır }
    selectedindex := selectedindex +1 
     else
    Begin
        AdoDataSet1.Next; // Bir sonraki kayıta atla
        if AdoDataSet1.Eof Then //Tablonun sonunda olup olmadığını kontrol et.
            AdoDataSet1.Append; // Tablo sonuna ulaştıysan yeni kayıt ekle
        SelectedIndex := 0; //ilk sutuna uç

    End;
end;
Kolay gelsin.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

herkese merhaba.
sevgili hüsonet kardeşin yoklladığı kodları denedim ama
quantum gridin selectedindex diye bir özelliği yok.

bir çok defa denememe rağmen yapamadım.
kolay gelsin
Cevapla