Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Hallo,
da bekannter maßen die gängigen Dialoge (ShowMessage , MassageDLG) unter IOS (aktuellste Version) nicht mehr antippbar sind. Unter Android lächelt mich nur noch eine Fehlermeldung an, das diese Plattform das nicht mehr unterstützen! Das alles in der aktuellsten Version von Tokyio mit aktuellen Feb Fix. Gibt es da ein Hotfix oder muss man nun für die mobile Entwicklung, doch umsteigen ? |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Showmessage gibt es nach wie vor für einfache Mitteilungen und für Sachen wie Abfragen Ja/nein gibt es
Delphi-Quellcode:
wobei man da beachten muss dass die Auswertung der Antwort Bestandteil des Dialogs ist!
TDialogService.MessageDialog(Meldung, TMsgDlgType.mtWarning, mbYesNo,TMsgDlgBtn.mbNo, 0,
procedure(const aResult: TModalResult) Ciao Stefan |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
Wenn ich das nutze dann nur anonymer Prozedur. Zitat:
Rollo |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
IOS auch mit Berlin und Seattle gehen die Dialoge nicht mehr unter IOS (Sichtbar, aber nicht anklickbar) Zitat:
|
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
[deleted]
|
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zwei Links die Du lesen solltest:
http://docwiki.embarcadero.com/Libra...ogs.MessageDlg http://docwiki.embarcadero.com/Libra...ageDialogAsync |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Liste der Anhänge anzeigen (Anzahl: 1)
So nochmals ich:
also bei alt Projekten von mir und meinem Mitarbeiter gehen mit dem Update von IOS die ShowMessage und MessageDLG nicht mehr (was Jahre lang ging). Jetzt habe ich ein einfaches neues Projekt gemacht, hier gehts wieder wie gewohnt ?! Warum kann ich erstmal nicht sagen. PS: unter IOS hält der MessageDLG auch ganz normal an und arbeitet erst nach Beantwortung des Dialogs ganz normal im Code weiter ohne anonyme Methoden usw. |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Liste der Anhänge anzeigen (Anzahl: 1)
Also mit IOS 11.2.5 und 11.2.6 gibt es definitiv ein Problem mit MessageDLG!
Code:
unter IOS 9 und IOS10 geht alles wie gewohnt und ab IOS 11.2.x sind die Dialoge nicht anklickbar (siehe Screenshot) es es hängt hier fest!
MessageDLG('File delete?',
TMsgDlgType.mtWarning, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo] ,0, TMsgDlgBtn.mbNo, procedure(const AResult: System.UITypes.TModalResult) begin if aResult = mrYes then begin ShowMessage('yes'); DeleteFile(Filename); FormShow(Sender); end else begin ShowMessage('no'); end; end); end; |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Gerade eine App von mir unter iOS 11.2.6 getestet. Konnte keine Probleme bei Dialogen feststellen.
|
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
es ist aber nicht nur eine App und nicht nur von mir, sondern auch vom Kollegen. Der hat Apps mit Seattle und Berlin die im Appstore stehen.
Hier kommen Beschwerden, von Kunden, die die App schon länger haben und IOS Update gemacht haben.... Deshalb habe ich es mit Tokyo getestet. Wie schon mal geschrieben, mit einer neuen leeren App geht das mit meiner bestehenden App, wo einige Forms in der Reihenfolge vorher stehen: {UPDATE} MailForm-> FliedialogForm dann geht nichts mehr Ich habe nun einiges getestet (liegt es vielleicht am ShowModal ? -> nun ging es genau 1 mal, bei 2'ten Aufruf geht nicht mehr ???? Jetzt nur mit Show jetzt geht es dauerhaft -> MailForm-> FliedialogForm (Show/ShowModal) |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Mit dem Update 10.2.3 ist das Problem gelöst!
Es geht wieder wie gewohnt :wink: |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Ja, mit den in der Doku angegebenen Fassungen bekommt man entsprechende Dialoge zum Laufen.
Es gibt aber leider noch ein Problem damit: https://quality.embarcadero.com/brow...2MessageDlg%22 Vielleicht möchte ja der eine oder andere auch für diesen Report in QP abstimmen? Grüße TurboMagick |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
Delphi-Quellcode:
Hab das irgendwo als Workaround gesehen...
While not result do
begin application.Processmessages; Sleep(10); end; Mavarik |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
mit dem Sleep nutzt nichts wenn die Ja/Nein Buttons nicht mehr klickbar sind (waren)
Ich habe aber nur eine "alte" App getestet, die ich im okt 2015 zu letzt mit dem damaligen aktuellen Delphi hochgeladen hatte (IOS). Diese ging dann nicht mehr mit Tokyo 10.2.2 (oben beschriebenes Dialog Problem). Mit 10.2.3 gingen hier nun wieder die Dialoge. Android konnte ich noch nicht testen, da das Update meine Android Einstellungen ZERSTÖRT hat und mir es noch nicht wieder gelungen ist dies wieder zum laufen zu bringen, damit die SDK Einstellung wieder gehen. |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
unter IOS hänge der MessageDlg weiterhin, wenn das Fenster vorher mit ShowModal geöffnet wurde :oops::roll::mrgreen: Sorry für die Fake New |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Kleiner Tipp zum SDK Manager...
Wenn das Parsen der XML Datei hängen bleibt... Fenster minimieren und wieder herstellen. (2-3 mal) Dann läuft er jedes mal weiter... Gleiches gilt für den download. (Ist halt java) Mavarik |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
ich glaube mobile Plattformen (zumindest Android!) mögen keine modalen Dialoge. Also kein ShowModal benutzen. Wenn man sowas konstruieren möchte, muss man es glaube ich DoItYourself mäßig tun. Meiner Meinung nach wäre es besser (auch wenn's manchmal aufwändiger ist, ich kenne das Problem) die App gleich so umzusetzen, dass die nicht modale Dialog Form benutzt wird und der Programmablauf erst über die beim Drücken der Buttons ausgelösten Handler weiter macht. Grüße TurboMagic |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Hallo,
ich habe ebenfalls Probleme mit Showmessages und Dialogen unter iOS mit Delphi 10.2.x. Eventuell liegt hier das gleiche Problem vor. Die Dialoge, Showmessages und auch der Scroll bei Comboboxen funktionieren nicht mehr, sobald diese auf einer 2. Form die mit Showmodal aufgerufen wurde liegen/aufgerufen werden. Beitrag der Delphi-Praxis: https://www.delphipraxis.net/196278-...-probleme.html Das Problem habe ich bereits im QC gemeldet: https://quality.embarcadero.com/browse/RSP-20221 Embarcadero konnte mir hier leider nicht weiterhelfen. Ich sehe diesen Bug als ziemlich kritisch an. |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Ich find den Workaround mit TPanel in Deinem Thread sehr gut. Schade das er Dir nicht zusagt.
|
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Zitat:
|
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Hallo,
ich würde hier gerne nochmal das Thema aufgreifen. Da ShowModal unter iOS nicht mehr verwendbar ist, habe ich versucht alles auf Show umzustellen. In den meisten Fällen gelingt das auch. Wie sieht es jedoch mit folgender Konstruktion aus(Als Beispiel): 1. Form1 ruft Form2 mit einem String-Parameter auf 2. Form2 verarbeitet den String und soll diesen verarbeiteten String, nach einem Button Klick an Form1 zurückgeben (Unit der Form1 soll nicht in Unit der Form2 eingebunden werden, da Form2 in mehreren Formen verwendet werden soll.) Wie bekomme ich den verarbeiteten String der Form2 nun als Ergebnis zurück? Mit ShowModal hätte ich in der Anonymen Procedure den String ausgelesen. Hoffe ihr könnt mir einen kurzen Denkanstoß geben ;) mfg Nick. |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Schreib dir doch eine Methode
Delphi-Quellcode:
und rufe diesen Callback auf, wenn die Form geschlossen wird.
ShowWithCloseCallback( ACloseCallback: TProc )
Das sollte mit ein paar Zeilen Code erledigt sein. |
AW: Dialoge unter IOS und Anroid _> FMX unbenutzbar ?
Um es mal etwas detaillierter zu erläutern:
Unit Unit2; interface type TMyCallback = procedure(Sender: TObject; s: string) of Object; TForm2 = class(TForm) [..] private FMyCallback : TMyCallback; public procedure ShowWithCallback(Callback: TMyCallback); end; [..] procedure TForm2.ShowWithCallback(Callback: TMyCallback); begin assert(assigned(Callback), 'Es muss ein Callback übergeben werden'); FMyCallback := Callback; end; Im OnClose wird es dann so aufgerufen: FMyCallback(self, 'mein Rückgabewert'); Und Form1 braucht natürlich eine Public Methode wie folgt: procedure TForm1.Form2ReturnCode(Sender: TObject; ReturnValue: string); Grüße TurboMagick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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