Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi FMX Enter tuşu (dpad_center) yakalama
#1
Arkadaşlar,
Delphi FMX de Fiziksel klavyede Enter tuşuna basıldığında bu tuşu onkeydown ve onkeyup yönteminde alamıyorum. vkreturn basıldığına dair hiç bir değer gelmiyor.
Bu durumda Android cihazın Generic.kl dosyasını edit ederek dpad_center atamasını Enter olarak değiştirmem gerekiyor. Ancak bazı cihazlar root lu olduğu için bunu yapmak mümkün olmuyor. Android cihazın Generic.kl dosyasında dpad_center tanımı olsada fiziksel klavyede Enter tuşuna basıldığını nasıl yakalayabilirim.
Cevapla
#2
FMX mimarisinde Android ve iOS platformlarının tüm sınıf yapıları ortaktır.
Yapacağınız işlem ortaktır ve Android platformuna özgü herhangi bir şey yapmanıza gerek kalmaz. Fakat isterseniz platform direktifleri aracılığıyla istisnai işlemler de yapabilirsiniz. 

Gelelim çözüm önerisine;
1- Veri giriş bileşeninizin (edit, memo vb.) ReturnKeyType özelliğini Send olarak ayarlayın. 
2- Bileşenin OnKeyDown olayına şu kodu yazın.
  if Key in [vkReturn] then
 Begin
   case TEdit(Sender).ReturnKeyType of
     TReturnKeyType.Send:
       Memo1.Lines.Add('Enter');
   end;
 End;
Not: case ile ReturnKeyType kontrolüne gerek yok. Fakat olurda, Object Inspector'dan bu özelliği set etmezseniz, kod işlemesin ve işlememe nedenini anlayasınız diye yazdım.  

Yani şöyle de olabilir. 
if Key = vkReturn then
   Memo1.Lines.Add('Enter');
   
Begin : = end / 2;
Cevapla
#3
(20-03-2024, Saat: 14:31)RAD Coder Adlı Kullanıcıdan Alıntı: FMX mimarisinde Android ve iOS platformlarının tüm sınıf yapıları ortaktır.
Yapacağınız işlem ortaktır ve Android platformuna özgü herhangi bir şey yapmanıza gerek kalmaz. Fakat isterseniz platform direktifleri aracılığıyla istisnai işlemler de yapabilirsiniz. 

Gelelim çözüm önerisine;
1- Veri giriş bileşeninizin (edit, memo vb.) ReturnKeyType özelliğini Send olarak ayarlayın. 
2- Bileşenin OnKeyDown olayına şu kodu yazın.
  if Key in [vkReturn] then
 Begin
   case TEdit(Sender).ReturnKeyType of
     TReturnKeyType.Send:
       Memo1.Lines.Add('Enter');
   end;
 End;
Not: case ile ReturnKeyType kontrolüne gerek yok. Fakat olurda, Object Inspector'dan bu özelliği set etmezseniz, kod işlemsin ve işlememe nedenini anlaysınız diye yazdım.  

Yani şöyle de olabilir. 
if Key = vkReturn then
   Memo1.Lines.Add('Enter');


Öncelikle ilginize teşekkür ederim.
Kodla alakalı olarak sormak istediğim bu kod  Fiziksel klavyemi yoksa sanal klavyemi destekliyor. Benim Enter tuşunu yakalamaya çalıştığım kullanım şekli fiziksel klavye ve sanal klavye kapalı.
Cevapla
#4
(20-03-2024, Saat: 14:39)tarkancengiz Adlı Kullanıcıdan Alıntı:
(20-03-2024, Saat: 14:31)RAD Coder Adlı Kullanıcıdan Alıntı: FMX mimarisinde Android ve iOS platformlarının tüm sınıf yapıları ortaktır.
Yapacağınız işlem ortaktır ve Android platformuna özgü herhangi bir şey yapmanıza gerek kalmaz. Fakat isterseniz platform direktifleri aracılığıyla istisnai işlemler de yapabilirsiniz. 

Gelelim çözüm önerisine;
1- Veri giriş bileşeninizin (edit, memo vb.) ReturnKeyType özelliğini Send olarak ayarlayın. 
2- Bileşenin OnKeyDown olayına şu kodu yazın.
  if Key in [vkReturn] then
 Begin
   case TEdit(Sender).ReturnKeyType of
     TReturnKeyType.Send:
       Memo1.Lines.Add('Enter');
   end;
 End;
Not: case ile ReturnKeyType kontrolüne gerek yok. Fakat olurda, Object Inspector'dan bu özelliği set etmezseniz, kod işlemsin ve işlememe nedenini anlaysınız diye yazdım.  

Yani şöyle de olabilir. 
if Key = vkReturn then
   Memo1.Lines.Add('Enter');


Öncelikle ilginize teşekkür ederim.
Kodla alakalı olarak sormak istediğim bu kod  Fiziksel klavyemi yoksa sanal klavyemi destekliyor. Benim Enter tuşunu yakalamaya çalıştığım kullanım şekli fiziksel klavye ve sanal klavye kapalı.

Bileşen olayı (OnKeyDown), fiziksel veya sanal ayrımı yapmaz. 
Sonuçta veri giriş alanına gelen key tipine bakar.
Begin : = end / 2;
Cevapla
#5
(20-03-2024, Saat: 15:13)RAD Coder Adlı Kullanıcıdan Alıntı: Bileşen olayı (OnKeyDown), fiziksel veya sanal ayrımı yapmaz. 
Sonuçta veri giriş alanına gelen key tipine bakar.

Teşekkürler, deneyip sonucu bildireceğim.
Ancak bu edit ve memo bileşenlerinde çalışıyor sanırım.
Form onkeydown methodu  için çözüm varmıdır?
Delphi deki bu yaklaşımda ilginç geldi bana.
Cevapla
#6
(20-03-2024, Saat: 15:16)tarkancengiz Adlı Kullanıcıdan Alıntı:
(20-03-2024, Saat: 15:13)RAD Coder Adlı Kullanıcıdan Alıntı: Bileşen olayı (OnKeyDown), fiziksel veya sanal ayrımı yapmaz. 
Sonuçta veri giriş alanına gelen key tipine bakar.

Teşekkürler, deneyip sonucu bildireceğim.
Ancak bu edit ve memo bileşenlerinde çalışıyor sanırım.
Form onkeydown methodu  için çözüm varmıdır?
Delphi deki bu yaklaşımda ilginç geldi bana.

Form bir veri giriş bileşeni olmadığı için ve telefonuma / tabletime klavye bağlaymdığım için form KeyDown olayını test etme şansım yok. 
Tam olarak yapmak istediğiniz işlem nedir?
Begin : = end / 2;
Cevapla
#7
(20-03-2024, Saat: 15:24)RAD Coder Adlı Kullanıcıdan Alıntı:
(20-03-2024, Saat: 15:16)tarkancengiz Adlı Kullanıcıdan Alıntı: Teşekkürler, deneyip sonucu bildireceğim.
Ancak bu edit ve memo bileşenlerinde çalışıyor sanırım.
Form onkeydown methodu  için çözüm varmıdır?
Delphi deki bu yaklaşımda ilginç geldi bana.

Form bir veri giriş bileşeni olmadığı için ve telefonuma / tabletime klavye bağlaymdığım için form KeyDown olayını test etme şansım yok. 
Tam olarak yapmak istediğiniz işlem nedir?

Ben fiziksel klavye ile çalışan program yazdım,
fiziksel klavyeden basılan tuşa göre form onkeydown ve onkeyup methodları çalışıyor.
Cep telefonunda çalıştırılan bir uygulama değil.
Bunun çözümü yoksa ve örnek yazdığınız kodu çalıştırabilirsem tuş dinlemeyi Edit bileşenine değişiklik yaparak taşıma işlemide yapabilirim.
Cevapla
#8
Android cihazdan bahsetmişsiniz, mobil değil. Kiosk benzeri bir cihaz mı?
Begin : = end / 2;
Cevapla
#9
(20-03-2024, Saat: 15:45)RAD Coder Adlı Kullanıcıdan Alıntı: Android cihazdan bahsetmişsiniz, mobil değil. Kiosk benzeri bir cihaz mı?

Android Tv Box.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Androis Tel Back Tuşu ikurt07 1 134 14-05-2024, Saat: 11:38
Son Yorum: RAD Coder
  Delphi 12 IOS Simulatorde Uygulama Çalışmıyor elixir84 13 1.530 07-05-2024, Saat: 08:33
Son Yorum: elixir84
Exclamation Delphi 12 - Android 14 nevez 22 1.204 26-04-2024, Saat: 22:54
Son Yorum: nevez
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 629 21-02-2024, Saat: 22:09
Son Yorum: codder71
  CTRL + D delphi versiyon farkı Altıner 5 770 16-01-2024, Saat: 11:15
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi