Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Android BackButton triggert FormVirtualKeyBoardHidden nicht (https://www.delphipraxis.net/215977-android-backbutton-triggert-formvirtualkeyboardhidden-nicht.html)

fisipjm 7. Okt 2024 10:21

Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Hi,

ich hab das Problem unter Delphi 12.2 (Weis nicht ob das schon jemals zuverlässig lief), das unter Android ein HardwareBack aufruf (Also der Pfeil Zurück bei Android um Aktionen abzubrechen) die Tastatur verschwinden lässt, aber kein FormVirtualKeyBoardHidden Triggert.

Kennt jemand einen zuverlässigen Weg das verschwinden der virtuellen Tastatur abzufragen? (ohne nochmal extra den hwBackButton abzufangen)

vG
PJM

philipp.hofmann 7. Okt 2024 11:48

AW: Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Bei mir checke ich es so, d.h. ich prüfe, welche Felder sichtbar sind und ob ich die Tastatur verstecken muss oder auf meine Startseite wechsele.

Delphi-Quellcode:
procedure TicTrainerF.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  {$IFDEF ANDROID}
  if Key = vkHardwareBack then
  begin
    if ((pQuestion.Visible and eQuestion.Visible) or ((TabControl.Visible) and ((tabControl.activeTab=tiBrowser) or (tabControl.activeTab=tiVideoChat) or (tabControl.activeTab=tiConnections)))) then
    begin
      if (keyboardService <> nil) then
        keyboardService.HideVirtualKeyboard;
    end else begin
      showPanel(pWizard);
      tiWizardClick(Sender);
      if (menuItemList<>nil) then
        menuItemList.checkForShowAction(false);
    end;
    Key:=0;
  end;
  {$ENDIF}
end;

fisipjm 7. Okt 2024 12:47

AW: Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1541870)
Bei mir checke ich es so, d.h. ich prüfe, welche Felder sichtbar sind und ob ich die Tastatur verstecken muss oder auf meine Startseite wechsele.

Delphi-Quellcode:
procedure TicTrainerF.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  {$IFDEF ANDROID}
  if Key = vkHardwareBack then
  begin
    if ((pQuestion.Visible and eQuestion.Visible) or ((TabControl.Visible) and ((tabControl.activeTab=tiBrowser) or (tabControl.activeTab=tiVideoChat) or (tabControl.activeTab=tiConnections)))) then
    begin
      if (keyboardService <> nil) then
        keyboardService.HideVirtualKeyboard;
    end else begin
      showPanel(pWizard);
      tiWizardClick(Sender);
      if (menuItemList<>nil) then
        menuItemList.checkForShowAction(false);
    end;
    Key:=0;
  end;
  {$ENDIF}
end;

Hi Phillip,

danke für deine Antwort. Aber das wäre ja genau der Punkt den ich vermeiden möchte. Dann muss ich mir nochmal zusätzlich die KeyUp funktion definieren... Wäre schön wenn Events einfach das machen würden das sie sollen :|
By the Way, hab ein RSP dafür auf gemacht, wer Kommentieren will kann gern mit machen, Voten geht ja mit dem neuen System nicht mehr. Ein Trauerspiel :wall:
https://embt.atlassian.net/servicede...tal/1/RSS-2040
und da ich schon dabei war.
https://embt.atlassian.net/servicede...tal/1/RSS-2041

philipp.hofmann 7. Okt 2024 12:55

AW: Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Ok, in meinem Fall gibt es mehrere Keys die ich eh abfangen möchte. Unter Windows und MacOS z.B. die typischen Shortcuts.
Sehe daher jetzt für mich kein Problem in der Lösung.

fisipjm 7. Okt 2024 13:03

AW: Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1541884)
Ok, in meinem Fall gibt es mehrere Keys die ich eh abfangen möchte. Unter Windows und MacOS z.B. die typischen Shortcuts.
Sehe daher jetzt für mich kein Problem in der Lösung.

Unter Android und in meinem Fall (der eigentlich nicht so speziell ist) funktioniert das auch nicht als Workaround, warum?
Wenn du ein Memo Feld auf der Form hast (Unter Android) und deine Tastatur auf ist und du diese Tastatur schließt (Über HardwareBack) dann wird KeyUp auch nicht getriggert, erst nachdem man ein weiteres mal Zurück ausführt.
Das Keyboard über den HardwareBackButton verschwinden zu lassen schleicht sich scheinbar gänzlich an allen Events vorbei.

fisipjm 7. Okt 2024 15:13

AW: Android BackButton triggert FormVirtualKeyBoardHidden nicht
 
Und weils so schön war gleich noch einer:
https://embt.atlassian.net/servicede...tal/1/RSS-2047


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.

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