Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android: Inputquery läuft nicht (https://www.delphipraxis.net/181765-android-inputquery-laeuft-nicht.html)

greenmile 8. Sep 2014 11:04

Android: Inputquery läuft nicht
 
Jetzt habe ich den MessageDlg so angepasst, dass es korrekt unter Android / iOS läuft. Jetzt habe ich versucht, InputQuery anzupassen:

Code:
function TfrmMain.InputQuery(const ACaption, APrompt: string; var Value: string): Boolean;
var
  Prompts: array of string;
  Values: array of string;
begin
  MsgDlgResult := -1;
  InputQueryResultStr := '';

  SetLength(Prompts, 1);
  Prompts[0] := APrompt;
  SetLength(Values, 1);
  Values[0] := Value;

  Result := FMX.Dialogs.InputQuery(ACaption, Prompts, Values,
            function(const Values: array of string): Boolean
            begin
              MsgDlgResult:= 0;
              InputQueryResultStr := Values[0];
            end
          );
  while MsgDlgResult<0 do Delay(10);
  Value := InputQueryResultStr;
end;
Unter iOS funktioniert das, unter Android (Galaxy S5) kommt weiterhin die Meldung wegen blockierender Meldungen, also alles außer InputQuery. Ist das ein Bug?
Man man man, ist echt eine Haßliebe mit EMBT. Manchmal mag man die, manchmal verflucht man die Änderungen der neuen Version.

himitsu 8. Sep 2014 16:23

AW: Android: Inputquery läuft nicht
 
Das ist ein Dialog, welcher per ShowMessage angezeigt wird und gerade das ist doch kaputt ... siehe die anderen Threads dazu.

Hmmm :gruebel:


Beim debuggen, kommt der bis in die While-Schleife, oder bleibt es im inneren InputQuery-Aufruf hängen?

greenmile 8. Sep 2014 22:57

AW: Android: Inputquery läuft nicht
 
Diese Methode funktioniert problemlos bei MessageDlg, er wartet halt solange, bis die Procedure beendet ist. Ich habe mit XE6 vieles mit einer MessageBox (Ja/Nein) gelöst, nach der erst weitergemacht wird, ich kann das nicht mal eben auf die neue XE7 Methode umstellen (ich verstehe auch ehrlich gesagt nicht, was sich EMBT dabei gedacht hat, aber was soll's). Die Funktion wird garnicht erst aufgerufen, vorher kommt die "Ist blockiert und nicht möglich" Meldung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 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