Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Probleme mit FormVirtualKeyboardShown (https://www.delphipraxis.net/191659-probleme-mit-formvirtualkeyboardshown.html)

sko1 7. Feb 2017 14:24

Probleme mit FormVirtualKeyboardShown
 
Hallo,

um z.B. Memos oder Edits "umzupositionieren" wenn auf dem Handy die virtuelle Tastatur eingeblendet wird, benutze ich den FormVirtualKeyboardShown-Event um dort die Bounds(.height) auszuwerten, das soll die Höhe der Tastatur bringen.

Nun aber ist es so dass dieser Aufruf, wenn er erstmalig erfolgt, falsche Ergebnisse bringt, die Tastatur ist dann nur 25 anstelle 320 hoch!

Ich habe alles mögliche probiert, Application.Processmessages eingefügt, und und und alles ohne Erfolg!

Gibt es noch einen anderen Weg an die Höhe der Tastatur zu kommen (die ja auch abhängig vom Hoch/Querformat dargestellt wird)

Ciao
Stefan

Sherlock 7. Feb 2017 14:56

AW: Probleme mit FormVirtualKeyboardShown
 
In welchem Betriebssystem beobachtest Du dieses Verhalten? Unter iOS habe ich keine Probleme (abgesehen vom noch ungelösten Kalender-Verhalten).

Sherlock

Rollo62 7. Feb 2017 18:59

AW: Probleme mit FormVirtualKeyboardShown
 
Bei mir funktioniert das Bounds.Height auf allen Platformen, inclusive Windows.
Nur Mc hat keine VK implementiert.

Delphi-Quellcode:
procedure TPlan_VMdl.EvOnVirtualKeyboardShown(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
    TToolPanel.SendMessage(TToolPanel.TApi.VirtualKeyboard_Height, Bounds.Height);
...
...
...
Rollo

sko1 8. Feb 2017 05:44

AW: Probleme mit FormVirtualKeyboardShown
 
Das Problem habe ich auf einem Android-Handy mit 5.01 sowie auf allen Emulatoren (4.01 ... 6.1).

Aber auch nicht auf allen Formularen, nur auf denen wo sich viele Steuerelemente befinden :-(
Im Netz habe ich Leidensgenossen gefunden, nur leider keine Lösung des Problems!

Ciao
Stefan

Rollo62 8. Feb 2017 07:27

AW: Probleme mit FormVirtualKeyboardShown
 
Bei mir laufen getestet ab Android 4.43 ... 6.01, Samsung, Nexus, LG, HTC,
und auch ein paar China-Exoten.

Mit Emulatoren teste ich gar nicht mehr, das nervt zu sehr, und hat nie wirklich gut funktioniert.

Rollo

sko1 8. Feb 2017 12:12

AW: Probleme mit FormVirtualKeyboardShown
 
Ich habe das jetzt mit einem Doppelaufruf gelöst, Tag der Form wird im OnShow auf 0 gesetzt:

Delphi-Quellcode:
  Keyboardheight := Bounds.Height;
  // weil der erste Aufruf falsche Werte liefert hier der Versuch das beim ersten Mal zu wiederholen
  if FormAuftrag.Tag = 0 then
  begin
    FormAuftrag.Tag := 1;
    MemoEingabe.ResetFocus;
    MemoEingabe.SetFocus; //erneute Anzeige Keyboard
  end;
  MemoEingabe.Size.Height := FormAuftrag.ClientHeight - Keyboardheight - 40;
Das funktioniert jetzt zuverlässig, nur halt Mist wenn man solche Krücken suchen und verwenden muss...

Ciao
Stefan

QuickAndDirty 9. Feb 2017 07:43

AW: Probleme mit FormVirtualKeyboardShown
 
In meinem Virtualkeyboardshown steht das hier
Delphi-Quellcode:
  FKBBounds := TRectF.Create(Bounds);
  FKBBounds.TopLeft := ScreenToClient(FKBBounds.TopLeft);
  FKBBounds.BottomRight := ScreenToClient(FKBBounds.BottomRight);
  UpdateKeyBoardBounds;
unter Bezug auf FKBBounds richte ich dann den Viewport aus. Damit das Edit immer sichtbar ist.

sko1 9. Feb 2017 09:34

AW: Probleme mit FormVirtualKeyboardShown
 
Schön, hilft aber bei meinem Problem nicht weiter, denn beim ersten Aufruf von FormVirtualKeyboardShown ist der Inhalt von Bounds falsch und da würde Dein

Delphi-Quellcode:
FKBBounds := TRectF.Create(Bounds);


auch nur einen falschen Inhalt bekommen...

Ciao
Stefan

DeddyH 9. Feb 2017 11:58

AW: Probleme mit FormVirtualKeyboardShown
 
Funktioniert denn die ScrollableForm-Demo bei Dir?

sko1 9. Feb 2017 12:07

AW: Probleme mit FormVirtualKeyboardShown
 
Das Beispiel funktioniert bei mir, so wie der Event auf Formularen mit wenigen Steuerelementen (meist) richtige Ergebnisse liefert...

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz