![]() |
Android 4.2 vs 5.0+
Hallo,
habe mit XE6 einen InputQuery Dialog auf Android fein hingegriegt. Doch wie ich jetzt auf Seattle und Android 5.0+ umgestiegen bin, schreibt mein Android 4.2 Tablet, dass Dialogfelder werden blockiert ist auf dieser Plattform nicht implementiert. AUf der Android Plattform werden nur Überladungen mit TINputCloseBoxProc oder TINputCloseBoxEvent unterstützt. Was kann ich tun? Damit wieder der INput von Strings als DIalog möglich ist? Danke mfg Walter |
AW: Android 4.2 vs 5.0+
![]() Zitat:
|
AW: Android 4.2 vs 5.0+
Danke, aber ich habe es so probiert um nicht viel umschreiben zu müssen, aber es klappt nicht.
Weiß wer was ich falsch mache?
Delphi-Quellcode:
function TForm1.MyInputQuery(line1: string; line2: string; var invar: string): boolean;
var myResult:boolean; myVal: string; begin InputQuery( line1, [line2], [invar], procedure(const AResult: TModalResult; const AValues: array of string) begin if AResult=mrOK then begin myResult:=true; MyVal:=AValues[0]; ShowMessage(' EIngabe: '+myval); end else begin myResult:=false; Myval:=''; end; end); Result:=myResult; if Result then invar:=myVal else invar:=''; end; |
AW: Android 4.2 vs 5.0+
Du hast die verlinkte Doku nicht genau gelesen. Code hinter dem InputQuery wird bei der nicht blockierenden Variante ausgeführt, bevor das Dialogfeld geschlossen wird.
|
AW: Android 4.2 vs 5.0+
Ja danke, aber ich möchte dass der Programmablauf wieder anhaltet solange keine Eingabe getätigt wurde.
Ich hab die ganze Logik darauf aufgebaut. WIe siehts damit aus? Bin am Knoblen und um jeden Rat dankbar.
Delphi-Quellcode:
function TForm1.MyInputQuery(line1: string; line2: string; var invar: string): boolean;
var myResult:integer; myVal: string; begin myResult:=3; InputQuery( line1, [line2], [invar], procedure(const AResult: TModalResult; const AValues: array of string) begin //repeat if AResult=mrOK then begin myResult:=1; MyVal:=AValues[0]; ShowMessage(' EIngabe: '+myval); end else begin myResult:=2; Myval:=''; end; //until ((AResult=mrOK) or (AResult=mrCancel)); end); repeat case myResult of 1: begin Result:=true; end; 2: begin Result:=false; end; 3: begin Result:=false; end; end; if Result then invar:=myVal else invar:=''; until myresult <> 3; toast(' EIngabe getätigt!'); end; |
AW: Android 4.2 vs 5.0+
Du kannst Dir beispielsweise eine Property samt Setter deklarieren. Innerhalb der anonymen Methode setzt Du dann den Wert dieser Property, damit wird dann auch der Setter durchlaufen.
|
AW: Android 4.2 vs 5.0+
Aber wie bleibt dann der PRogrammablauf stehen, denn ich habe viele solche Abfragen:
Delphi-Quellcode:
Ich weiß ich könnte den nachfolgenden Teil in die anym-Procedure reinschreiben, doch ich hab einen menge und will nicht viel ändern.
if InputQuery('name','Name',name) and name.trim <> '' then begin ... end
Am schönsten wäre es wenn man die neue MyInputQuery so machen kann, dass auch der PRogrammablauf nach Eingabe weitergeht. So wie es in Android 4.2 auch war. das mit der Proterty ist ja ählich der Weise, mit der Variablen in meinen Beispiel ? oder? Schön wäre ein kleines Bsp. Dann lerne ich am schnellsten. danke herzlich |
AW: Android 4.2 vs 5.0+
Du musst Deine Abläufe umstellen, auch wenn Du das jetzt nicht gerne hörst. Blockierend wird von Android nicht mehr zugelassen.
|
AW: Android 4.2 vs 5.0+
Ja das hab ich ja befürchtet, das ist viel ARbeit.
|
AW: Android 4.2 vs 5.0+
Das ist zwar bitter, aber eine andere Möglichkeit wüsste ich nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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