Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 3.67/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Scrool Keyboard Form..
#31
(20-12-2017, Saat: 22:00)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba arkadaşlar.. Acaba IOS da test etme fırsatı buldunuz mu? Ayrıca Ben formumun zeminine renk yada resim eklediğimde, Bu prosedür çalışır çalışmaz zemin beyaz oluyor Smile) ona halen çözüm bulamadım..

Merhaba,
Test etmedim, fakat kod kısmı çalışabildiğini gösteriyor.
{$IFDEF ANDROID}, FMX.Platform.Android, FMX.Helpers.Android,
 FMX.VirtualKeyboard.Android, Androidapi.JNI.GraphicsContentViewText,
 Androidapi.JNI.Embarcadero
{$IF RTLVersion>=32}
   , Androidapi.NativeActivity, Androidapi.AppGlue
{$ENDIF}
{$ENDIF}
{$IFDEF IOS}
   , Macapi.Helpers, FMX.Platform.iOS, FMX.VirtualKeyboard.iOS,
 iOSapi.Foundation, iOSapi.UIKit
{$ENDIF}
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#32
keşke birisi denese de bilgi verebilse Smile
WWW
Cevapla
#33
Bu pazar günü deneyebilirim. Geri dönüşü buraya yaparım.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#34
Bunu bende çok aramıştım ve delphi örnek projeleri arasında eklenmiş bir örnek buldum. test ettim ve çalışıyor projemde ;

isterseniz ; bu Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol orjinal proje örneğini indirebilirsiniz isterseniz de aşağıdaki kodları direkt ekleyebilirsiniz ;


Form'a bir vertscrollBox ve edit ekleyin.


not : edit bileşenini forma bottom olarak sabitlerseniz ya da diğer sabitleme işlemlerini kullanırsanız sağlıklı olacaktır.

orjinalinde layout da vardı fakat ben de olmadığı için koddan ufak kodları çıkarttım. ( toplam iki satır kod  )
orjinal proje dosyasında fark edeceksinizdir.
uses kısmına ;

System.Math 



private

   FKBBounds: TRectF;
   FNeedOffset: Boolean;
   procedure CalcContentBoundsProc(Sender: TObject;
                                   var ContentBounds: TRectF);
   procedure RestorePosition;
   procedure UpdateKBBounds;







procedure Tkisiselbolumu.CalcContentBoundsProc(Sender: TObject;
                                      var ContentBounds: TRectF);
begin
 if FNeedOffset and (FKBBounds.Top > 0) then
 begin
   ContentBounds.Bottom := Max(ContentBounds.Bottom,
                               2 * ClientHeight - FKBBounds.Top);
 end;
end;

procedure Tkisiselbolumu.RestorePosition;
begin
 VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, 0);
 VertScrollBox1.RealignContent;
end;

procedure Tkisiselbolumu.UpdateKBBounds;
var
 LFocused : TControl;
 LFocusRect: TRectF;
begin
 FNeedOffset := False;
 if Assigned(Focused) then
 begin
   LFocused := TControl(Focused.GetObject);
   LFocusRect := LFocused.AbsoluteRect;
   LFocusRect.Offset(VertScrollBox1.ViewportPosition);
   if (LFocusRect.IntersectsWith(TRectF.Create(FKBBounds))) and
      (LFocusRect.Bottom > FKBBounds.Top) then
   begin
     FNeedOffset := True;
     VertScrollBox1.RealignContent;
     Application.ProcessMessages;
     VertScrollBox1.ViewportPosition :=
       PointF(VertScrollBox1.ViewportPosition.X,
       LFocusRect.Bottom - FKBBounds.Top);
   end;
 end;
 if not FNeedOffset then
   RestorePosition;
end;





procedure TFrom1.FormFocusChanged(Sender: TObject);
begin
UpdateKBBounds;
end;



procedure TForm1.FormVirtualKeyboardHidden(Sender: TObject;
 KeyboardVisible: Boolean; const Bounds: TRect);
begin
FKBBounds.Create(0, 0, 0, 0);
 FNeedOffset := False;
 RestorePosition;
end;

procedure TForm1.FormVirtualKeyboardShown(Sender: TObject;
 KeyboardVisible: Boolean; const Bounds: TRect);
begin
FKBBounds := TRectF.Create(Bounds);
 FKBBounds.TopLeft := ScreenToClient(FKBBounds.TopLeft);
 FKBBounds.BottomRight := ScreenToClient(FKBBounds.BottomRight);
 UpdateKBBounds;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  VKAutoShowMode := TVKAutoShowMode.Always;

  VertScrollBox1.OnCalcContentBounds := CalcContentBoundsProc;
end;




kodlar az önce tekrar test edilmiştir ve çalışmaktadır...

iyi günler dilerim...
                    Basit Mantık :
Neyin Neyini Neye Ne Yapmak İstiyorsun ? 
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Form oluşturma (Çözüldü) Orhanlar 3 160 10-09-2018, Saat: 10:48
Son Yorum: Orhanlar
  Scrollable Form Problem malitutuncu 5 271 20-07-2018, Saat: 15:49
Son Yorum: malitutuncu
  form tasarımı arsl01 0 156 10-07-2018, Saat: 09:39
Son Yorum: arsl01
  Android Cihaz İçin Form Tasarlama hi_selamlar 4 278 27-06-2018, Saat: 12:28
Son Yorum: hi_selamlar
  FlowPanel Scrool narkotik 3 387 09-06-2018, Saat: 01:06
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi