tab tuşu kontrolu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

tab tuşu kontrolu

Mesaj gönderen yusuf simsek »

S.A.

herkese kolay gelsin...

formda ve bakabildiğim diğer kaynaklarda raslayamadım ve en güzel kaynaktan yardım istemeyi tercih ettim...

TAB tuşuna basıldığı zaman bulunulan konumdan (edit nesnesinden) ayrılmamasını istiyorum..

viewtopic.php?t=2104&highlight=tab+key de

--ascii kodunun 9 olduğunu buldum..(yada öyle sanıyorum :?: ) ...
9 : memo1.text:=memo1.text+'[Tab]';
if key = #9 then
edit1.setfocus dedin ana nafile...

-- if key = vk_tab then şartını da denedim ama oda olmadı..

acaba bu olayı nasıl çözebilirim :?:
(kodları edit nesnesinin KEYPRESS olayına yazıyorum...)

yardımlarınızdan dolayı şimdiden teşekkür ederim...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

KeyPress olayına TAB tusuna baılınca yapmak istedigini yaz, en sonuna Key:=#0; ekle
tusa basılmamıs gibi olacak.
ÜŞENME,ERTELEME,VAZGEÇME
Oğlum Yusuf'un yeni oyunu :mrgreen: Google Play üzerinde
Linear Minimalist Puzzle ve Smash Drift
👉 https://goo.gl/8S31tD 👈
👉 http://bit.ly/2OJos6P 👈

yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

hocam bu ne hızz. :shock:

valla size yetişebilmek ne mümkün :!:

yanlız hocam olay biraz farklı..
barkod okutuyorum..

eger değeri elle girerse tab tuşuyla çıkmaması lazım...
yani ENTER tuşuna basıldığı zaman bazı sorgulamalar yaptırıyorum.

Kod: Tümünü seç

if key <> #13 then
edit1.setfocus;
Key:=#0; 
yapısını kullandım.
sonuç: klavyeden bilgi giremiyorum ve barkod girişini iptal ediyor.
bu olayı nasıl çözebilirim...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Kod: Tümünü seç

if key = #9 then
  Key:=#0;
o zaman tab tusunu tamamen iptal etsen olmaz mı?
ÜŞENME,ERTELEME,VAZGEÇME
Oğlum Yusuf'un yeni oyunu :mrgreen: Google Play üzerinde
Linear Minimalist Puzzle ve Smash Drift
👉 https://goo.gl/8S31tD 👈
👉 http://bit.ly/2OJos6P 👈

yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

valla hocam tam aradığm şey bu...

çok teşekkür ederim.

ama kod çalışmadı. :duvar:
procedure Tstok_giris.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #9 then
begin
key := #0;
end;

if key = #13 then
begin
.....
end;
acaba sebebi ne olabilir... :?: yani sonuç olarak bunlar stansart kodlar..kodu tanımaması gibi birşey düşünemiyorum..
aklıma da birşey gelmiyor..
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4321
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
formun keypres eventinde bişeyler yazıyorsa (ve keyprevec true ise) önce formun keypres eventi çalışır.
bide break point koyup çalışıp çalışmadığına bak istersen.

Kod: Tümünü seç

procedure Tstok_giris.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(vk_tab) then
begin
key := #0;//buraya breakpointk oy bakalım buraya gliyormu
end;

if key = chr(vk_return) then
begin
.....
end; 
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

ASLANGERİ demişki
(ve keyprevec true ise) önce formun keypres eventi çalışır.
bide break point koyup çalışıp çalışmadığına bak istersen.
o zaman bir sorum daha olacak..

BREAKPOİNT ne amaçla kullanılıyor? ve nasıl kullanabilirim? :oops:

ee ne de olsa çaylağız :lol:
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul
İletişim:

Mesaj gönderen lazio »

imleci if key = #9 then ile başlayan satıra getir, F5 e bas, daha sonra F9 ile çalıştır. editin için bişeyler girdiğinde (keypress) olayı adım adım çalıştırma başlar, ve sen kod görünür. sen F8 ile adım adım gidip hatayı yakalayabilirsin..
kolay gelsin
Resim

..::|YeşilMavi|::..

yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

eğer BREAKPOİNT olayı showmessage veya benzeri birşey ile kodun kontrolü ise sadece adına yabancıyım :oops:

birkaç yol daha denedim ama sonuç yok..

if key = chr(vk_tab) then
begin
key := #0;
end;

olayı da çalışmadı...

denemek için showmessage ekledim...Her iki durumda da showmessage alamadım. yani tab tuşunu #9 ve chr(vk_tab) olarak algılamadı..(birde bilgisayar diyolar.. ama standartları bile bilmiyo :D )
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
mepc
Üye
Mesajlar: 184
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

Yanlış kod yazmışım. Çalışmadığını anladım. Bu nedenle sildim.
Bilgi paylaşıldıkça güzeldir.

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4321
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Breakpoint = kırılma noktası
Programa breakpoint (bundan sonra kısaca bp) eklediğiniz zaman (ilgili satırda "F5" tuşuna bastığınız zaman) program çalışma esnasında bu satıra gelir ve durur. bundan sonra programı F7 ve F8 tuşları ile adım adım (satır satır) çalıştırıp işlemleri sizin yapmasını istediğiniz şekildemi yapıyor ona bakarsınız. değişkenlerin aldığı değerleri fare ile üzerine gelerek kolayca göreblrsiniz.
örnek olarak sizin kodlarınızda bp yi

Kod: Tümünü seç

if key = #9 then 
olan satıra koyup programı çalıştırdığınızda program siz editte bir tuşa bastığınız zaman bu satıra gelip duracak dır. Fareyi key in üzerine getirdiğiniz zaman size aldığı değeri gösterecektir.
hadi ne duruyorsun bak bakalım sen editte tab a basınca key hangi değeri alıyor.
not:1.F7 procedure ve funcionların içlerine girer ve onlarıda satır satır çalıştırır. F8 procedure ve functionların içine girmeden çalıştırır.
2.formun keydown,keypres olaylarında birşey yazıyor mu?
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

yusuf simsek
Üye
Mesajlar: 325
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

evet.. hiç zaman kaybetmeden yaptım...

sonuç:
1 tuşuna bastım. key değişkeni üzerinde bekledim ve key='1' değerini aldım..

aynı işlemi birkaç farklı tuş ile de denedim..(yeni bişey öğrendik ya :lol: çocuk gibi oynuyomm...)

ve esas bomba...TAB tuşuna bastım ama banamısın demeden zıpladı.. :duvar:

ya klavyeden şüphelenip klavyeyi bile değiştirdim...ama nafile...TABa basınca banamısın demiyo... zıplayıp geçiyo

İlginizden dolayı HEPİNİZE ÇOK TEŞEKKÜR EDERİM..


ALLAH RAZI OLSUN
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Kullanıcı avatarı
mepc
Üye
Mesajlar: 184
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

Ben de bayağı uğraştım Tab tuşuna cevap vermiyor.
Bilgi paylaşıldıkça güzeldir.

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4321
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

size önerebileceklerim.
1. keypres yerine keydown olayına yazmayı denermisiniz.
2.birde tab tuşuna form cevap verdiği için ediler yakalamıyor olabilir formun keydown veya keypresolayında yakalamıyo denermisiniz.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

Kullanıcı avatarı
mepc
Üye
Mesajlar: 184
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

Formun keydown u yakalıyor problem yok ancak editte olmuyor. Soruyu ben sormadım ama kafama takılınca bayağı uğraştım. Cevabını marak ediyorum.
Bilgi paylaşıldıkça güzeldir.

Cevapla