AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Android 4.2 vs 5.0+

Ein Thema von wschrabi · begonnen am 13. Apr 2016 · letzter Beitrag vom 14. Apr 2016
Antwort Antwort
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#1

Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 15:12
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 15:48
Delphi-Referenz durchsuchenInputQuery
Zitat:
Wenn im Aufruf von InputQuery der Parameter ACloseQueryProc nicht enthalten ist, wird der Aufruf auf allen Plattformen blockiert; d. h., InputQuery kehrt erst zurück, wenn das Dialogfeld geschlossen wird. Android unterstützt keine blockierenden Aufrufe; Sie können InputQuery unter Android nur verwenden, wenn Sie den Parameter ACloseQueryProc angeben.
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
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#3

AW: Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 19:07
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 20:09
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.
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
wschrabi

Registriert seit: 16. Jan 2005
456 Beiträge
 
#5

AW: Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 20:35
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;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Android 4.2 vs 5.0+

  Alt 13. Apr 2016, 20:54
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.
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
Antwort Antwort

 

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 13:45 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