AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Probleme mit FormVirtualKeyboardShown
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit FormVirtualKeyboardShown

Ein Thema von sko1 · begonnen am 7. Feb 2017 · letzter Beitrag vom 10. Feb 2017
Antwort Antwort
Seite 1 von 2  1 2      
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Probleme mit FormVirtualKeyboardShown

  Alt 7. Feb 2017, 15:24
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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme mit FormVirtualKeyboardShown

  Alt 7. Feb 2017, 15:56
In welchem Betriebssystem beobachtest Du dieses Verhalten? Unter iOS habe ich keine Probleme (abgesehen vom noch ungelösten Kalender-Verhalten).

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.096 Beiträge
 
Delphi 12 Athens
 
#3

AW: Probleme mit FormVirtualKeyboardShown

  Alt 7. Feb 2017, 19:59
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
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Probleme mit FormVirtualKeyboardShown

  Alt 8. Feb 2017, 06:44
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
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.096 Beiträge
 
Delphi 12 Athens
 
#5

AW: Probleme mit FormVirtualKeyboardShown

  Alt 8. Feb 2017, 08:27
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
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: Probleme mit FormVirtualKeyboardShown

  Alt 8. Feb 2017, 13:12
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
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#7

AW: Probleme mit FormVirtualKeyboardShown

  Alt 9. Feb 2017, 08:43
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.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Probleme mit FormVirtualKeyboardShown

  Alt 9. Feb 2017, 10:34
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

FKBBounds := TRectF.Create(Bounds);

auch nur einen falschen Inhalt bekommen...

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Probleme mit FormVirtualKeyboardShown

  Alt 9. Feb 2017, 12:58
Funktioniert denn die ScrollableForm-Demo bei Dir?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Probleme mit FormVirtualKeyboardShown

  Alt 9. Feb 2017, 13:07
Das Beispiel funktioniert bei mir, so wie der Event auf Formularen mit wenigen Steuerelementen (meist) richtige Ergebnisse liefert...

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr.
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