Edit'e Veri Girişi Yaparken Klavye Sorunu.

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Edit'e Veri Girişi Yaparken Klavye Sorunu.

Mesaj gönderen pro_imaj »

Merhaba;
Edit'e veri girişi yaparken klavye açılıyor ve Edit klavyenin altında kalıyor. Veri girişi yaptığım Edit giriş yapılırken ekranda görünmesi nasıl sağlanır.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Edit'e Veri Girişi Yaparken Klavye Sorunu.

Mesaj gönderen mrmarman »

Formun OnVirtualKeyboardShown ve OnVirtualKeyboardHidden olaylarını takip edip, EDIT'i yukarı aşağı taşımalısın.
Resim
Resim ....Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Edit'e Veri Girişi Yaparken Klavye Sorunu.

Mesaj gönderen pro_imaj »

mrmarman yazdı:Formun OnVirtualKeyboardShown ve OnVirtualKeyboardHidden olaylarını takip edip, EDIT'i yukarı aşağı taşımalısın.
Teşekkürler Muharrem Bey; Aşağıdaki kod aşağıdaki şekilde,

Kod: Tümünü seç

procedure TYeni_Kayit_Form.FormVirtualKeyboardHidden(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
 Talep_Edilen_Cep_No.Position.Y := Bounds.Top - Talep_Edilen_Cep_No.Height + 5;
end;

procedure TYeni_Kayit_Form.FormVirtualKeyboardShown(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
   Talep_Edilen_Cep_No.Position.Y := Bounds.Top - Talep_Edilen_Cep_No.Height - 5;
end;
Aşağıdaki şekilde sorunlar oluyor;
Ekranda 8 tane Edit ve 8 tane Label var.
1-Ekranın yatay yada dikey konumuna göre bazı editler bu işleme tabi tutulacak yukarıda kalanlar tutulmayacak bunu nasıl belirlerim.
2-Hangi edite tıklarsam o edit klavyeden yukarı kalmalı bu kodu yazdığımda haliyle sadece ilgili edit işlem görüyor. Editlere bir değişken atayarak hangi editten geldiğini öğrenip mi işlem yapmalıyım yoksa başka yöntemi varmı?
3-Edite tıkladığımda pozisyonu değişiyor fakat klavyeyi kapattığımda edip ekranda hiç gözükmüyor.

Değerli yardımlarınız için teşekkür eder, iyi günler dilerim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Edit'e Veri Girişi Yaparken Klavye Sorunu.

Mesaj gönderen mrmarman »

Kod: Tümünü seç

Var
  xComponent : TComponent;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  xComponent := TEdit(Sender);
end;
gibi bir yapı kurup, tüm editlerin OnEnter eventlerini de Edit1Enter'e bağlarsanız hangi edit'den geldiğini anlayabilirsiniz.

Kullanmak için de :

Kod: Tümünü seç

procedure TForm1.FormVirtualKeyboardShown(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
  ShowMessage( TEdit(xComponent).Name );
end;
şeklinde bir yapı size durumu anlatıyor sanırım..

- Küçük ekranlı herhangi bir mobile telefon üzerinde proje geliştiriyorsanız zaten kısıtlı olan alanda EDIT'leriniz sürekli yaz boz yapmak yerine başka bir önerim olacak,

(-) Bir edit'e giriş yapıldığında VirtualKeyboard açılıyor ya, o esnada ekranın üzerine yarı transparan bir paneli görünür yaparak öne getirin. (yukarıda verdiğim örnek ile global bir değişkende hangisi olduğunu tutsun, dönerken lazım olacaktır)
(-) O panel üzeride görseli düzgün bir EDIT ile kullanıcıya giriş yaptırın.
(-) Tamam veya Enter butonuna basınca da Panel üzerindeki Edit'i asıl Edit hangisi ise ona aktarın ve panelin gizleyin.
Resim
Resim ....Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Edit'e Veri Girişi Yaparken Klavye Sorunu.

Mesaj gönderen mussimsek »

Delphi ile gelen "ScrollableForm" isimli projede tam bu işi yapan bir örnek var.

Ben de projenin bulunduğu klasör :

C:\Users\Public\Documents\Embarcadero\Studio\16.0\Samples\Object Pascal\Mobile Samples\User Interface\ScrollableForm

Kolay gelsin.
Cevapla