Alt satıra geçmek için farklı bir yöntem var mı?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Alt satıra geçmek için farklı bir yöntem var mı?

Mesaj gönderen Biltes »

Arkadaşlar Merhaba;

Formda bulunan nesneler arasında dolaşmak için,

Kod: Tümünü seç

if key=#13 Then
  Edit2.SetFocus;
İşte Edit2'in onkeypress'ine,

Kod: Tümünü seç

if key=#13 Then
  Edit3.SetFocus;
gibi bir kod ile bir sonraki nesneye geçiyoruz. Bu kadar her nesnin onkeypress'ine bu kodu yazmaktansa bir procedure yada ne bileyim bir fonksiyon tanımlayıp bu işlemi başka bir yöntem ile yapamazmıyız.

Şimdiden Çok Teşekkür Ediyorum...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
cihan
Üye
Mesajlar: 65
Kayıt: 02 Ağu 2005 03:34

Mesaj gönderen cihan »

Formun keypreview ini true yap
formun on keypress olayına aşağıdaki kodu yaz

if key=#13 then
begin
perform(wm_nextdlgvtl,0,0);
key:=#0;
end;
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

cihan yazdı: if key=#13 then
begin
perform(wm_nextdlgvtl,0,0);
key:=#0;
end;
Yukarıdaki şekilde değilde,

Kod: Tümünü seç

if key=#13 then 
begin
perform(WM_NEXTDLGCTL,0,0);
key:=#0;
end;
Bu şekilde çalışıyor hocam. Ayrıca benim yapmak istediğim formda 30 tane edit varsa hepsine tek tek bunları girmemek tanımladığımız bir fonksiyon yada procedure tek satır kod ile çağırmak gibi..

Yinede teşekkür ederim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
doctorfunks
Üye
Mesajlar: 105
Kayıt: 26 Oca 2005 10:37
Konum: İstanbul

Mesaj gönderen doctorfunks »

kullandığınız nesnelerin keypress olaylarını FormShow keypress olayına bağlamanız yada, bunun için tek yer yapmanız istediğinizi elde etmenizi sağlar zaten....!









"Ne irfandır ahlaka yükseklik veren ne vicdandır.Fazilet hissi insanlarda Allah korkusundandır."
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam konuyu biraz daha açabilirsiniz tam olarak anlayamadım da...

Teşekkür ederim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
doctorfunks
Üye
Mesajlar: 105
Kayıt: 26 Oca 2005 10:37
Konum: İstanbul

Mesaj gönderen doctorfunks »

1- Formun FormKeyPress olayına ;

if Key = #13 then
begin
Key := #0;
PostMessage( Handle, WM_KEYDOWN, 09, 0 );
end;

kodunu yazalım sonrada,

2 - Form üzerinde enter ile geçiş yapılmasını istediğimiz nesnelerin keypress olayına gidelim, yandaki kutucuğunu seçerek burdan FormShowKeypress 'ine bağlayalım. bu kadar... :wink:

"Ne irfandır ahlaka yükseklik veren ne vicdandır, Fazilet hissi insanlarda Allah Korkusundandır. "
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam Tam İstediğim gibi oldu çok teşekkür ediyorum.
Allah razı olsun...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

S.A.

Kod: Tümünü seç


procedure TFrom1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   
if key=#13 then 
begin 
perform(WM_NEXTDLGCTL,0,0); 
key:=#0; 
end;

end;

Edit1OnKeyPerss olayına kodu yazdıktan sonra. diğer edit nesnelerinin KEYPRESS olayları için de "Edit1KeyPress" yazarsan tüm edit nesneleri için aynı olay (Edit1KeyPress) gerçekleşir.

Nasıl ki sen kendin bir procedure yazdığında ismi ile istediğin yerden yazdığın proc.çağırabiliyorsun, aynı şekilde istetiğin EDIT nesnelerinde ONKEYPRESS olayı için EDIT1KeyPress seçerek olay zamanında aynı kodu çağırmış oluyorsun.

Kolay gelsin
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

yeri gelmişken söyleyeyim, dosmove diye bir component var, forma bir adet koyuyorsunuz, enter, yön tuşları ile dolaşım sağlanıyor.
kolay gelsin
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Bu topik fazlamı uzamış yoksa benmi konuyu anlayamadım acaba?
Enter tuşuna tab tuşunun yaptığını yaptıran kodu formun onkeypress olayına yazıp, bir biri arkasına gelmesini istediğniz(Yani geçiş sırası) TabOrder propertieslerini sıraya dizdinizmi olay biter.Ne hepsine kod yazmaya gerek var, ne de birine yazdığınız kodu diğerlerinin keypresslerinde çağırmaya....

Kod: Tümünü seç

if (Key = #13) then
  begin
    Key := #0;
    Perform(WM_NEXTDLGCTL, 0, 0);
  end;
Ayrıca @nitrokonatın dediği gibi bu kodların component haline getirilmiş bir sürü hali var.Mesela Jedi bileşenleri içinde bile var.
akuyumcu63
Üye
Mesajlar: 386
Kayıt: 02 Tem 2007 09:43

Re: Alt satıra geçmek için farklı bir yöntem var mı?

Mesaj gönderen akuyumcu63 »

merhaba;

dosmove componenti bilgisi için öncelikle teşekkür ederim.
componenti kullanmaya başladıktan sonra OnKeyDown olayı devre dışı kalmaya başladı. companentla bir ilgisi varmı?
İsteyen, yapabildiğinden daha fazlasını yapar.
Cevapla