Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Comboboxen, ShowMessage Probleme (https://www.delphipraxis.net/196278-ios-comboboxen-showmessage-probleme.html)

NickD 7. Mai 2018 10:48

iOS Comboboxen, ShowMessage Probleme
 
Hallo zusammen,
ich stehe aktuell vor einem Problem, das den Release unserer neuen App Version verhindert.
Folgendes Problem tritt ab Delphi 10.2.x unter iOS auf:
Wenn man aus dem Hauptformular ein zweites Fenster aufruft, und dort eine Combobox, DateEdit, TimeEdit oder eine ShowMessage aufruft, sind keine Eingaben mehr möglich.

Das Problem tritt nicht immer auf.
Teilweise muss das 2. Fenster mehrmals geschlossen und wieder geöffnet werden bis der Fehler auftritt.
Es kann dann in den Comboboxen nicht mehr gescrollt werden. Bei ShowMessages lässt sich der OK Button nicht betätigen.

Das Problem habe ich bereits hier geschildert: https://quality.embarcadero.com/browse/RSP-20221

Folgendes Setting:
- Delphi 10.2.3 Tokyo
- aktuelle xCode Version
- iOS 11 SDK
- Nachzustellen auf: iPhone SE, iPad Pro, iPhone 6 (Alle Geräte mit iOS 11.x.x)

Der Support von Embarcadero konnte mir hier leider nicht weiterhelfen, da Sie das Problem nicht nachstellen konnten.
Sie haben mir dazu geraten zurück auf Delphi 10.1 Berlin zu gehen.
Dort tritt der Fehler nicht auf. Allerdings lassen sich hier keine Apps mit dem iOS SDK 11 erstellen, was nun vom AppStore Voraussetzung ist.

Delphi 10.1 Berlin war leider die letzte stabile Version mit der man noch einigermaßen arbeiten konnte.

Konnte dies bisher jemand nachstellen bzw. hat das gleiche Problem oder sogar eine Lösung?

Grüße Nick.

KodeZwerg 7. Mai 2018 11:00

AW: iOS Comboboxen, ShowMessage Probleme
 
Vielleicht können Dir die D.P.F Delphi iOS Native Components weiterhelfen?

NickD 7. Mai 2018 11:38

AW: iOS Comboboxen, ShowMessage Probleme
 
Die Komponenten könnten eine alternative für die Comboboxen sein.
Leider besteht dann aber weiterhin das Problem mit der ShowMessage.

Ich wundere mich darüber das dieser Fehler noch nicht bekannt ist.
Es beeinträchtigt ja fast jede iOS App die mit Delphi entwickelt wird.

himitsu 7. Mai 2018 11:45

AW: iOS Comboboxen, ShowMessage Probleme
 
Lösung: Android.
OK, Spaß bei Seite.

Das alte Delphi kann man nicht irgendwie dazu überreden das aktuelle xCode/SDK zu nutzen?

KodeZwerg 7. Mai 2018 11:50

AW: iOS Comboboxen, ShowMessage Probleme
 
Vielleicht ein Workaround, ein TPopup anstelle ShowMessage ?

NickD 7. Mai 2018 11:52

AW: iOS Comboboxen, ShowMessage Probleme
 
Zitat:

Zitat von himitsu (Beitrag 1401519)
Lösung: Android.
OK, Spaß bei Seite.

Das alte Delphi kann man nicht irgendwie dazu überreden das aktuelle xCode/SDK zu nutzen?

Mir ist leider keine Möglichkeit bekannt. Habe hierzu auch in der Suche nichts gefunden.
Wenn ich auf Delphi 10.1 arbeite stelle ich die Befehlszeilentools von xCode zurück und nehme den PA-Server 18.
Tut man das nicht bricht Delphi beim Linken ab.

KodeZwerg 7. Mai 2018 12:11

AW: iOS Comboboxen, ShowMessage Probleme
 
Hier ein Beispiel für TPopup Workaround
how-to-make-my-own-dialog-component-from-firemonkey-tpopup
Delphi-Quellcode:
unit PopupTest;

interface

uses
  System.SysUtils, System.Classes, FMX.Types, FMX.Controls,
  FMX.Layouts, FMX.StdCtrls;

type
  TPopupTest = class(TPopup)
  private
    FPanel       : TPanel;
    FLayoutButton : TLayout;
    FCloseButton : TButton;
    FSaveButton  : TButton;
    FClientArea  : TLayout;
  protected
    procedure  OnClose(Sender: TObject);
    procedure  OnSave(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TPopupTest]);
end;

{ TPopupTest }

constructor TPopupTest.Create(AOwner: TComponent);
var
PopPanel: TPanel;
PopLayout: TLayout;
PopClose: TButton;
PopSave: TButton;
PopClientArea: TLayout;
begin
  inherited;

  PopPanel                  := TPanel.Create(Owner);
  PopPanel.Position.X       := 0;
  PopPanel.Position.Y       := 0;
  PopPanel.Margins.Left     := 10;
  PopPanel.Margins.Right    := 10;
  PopPanel.Margins.Top      := 10;
  PopPanel.Margins.Bottom   := 10;
  PopPanel.StyleLookup      := 'flyoutpanel';
  PopPanel.Parent           := Owner as TFmxObject;
  PopPanel.Align            := TAlignLayout.alClient;
  PopPanel.Visible          := True;

  PopLayout           := TLayout.Create(Owner);
  PopLayout.Parent    := PopPanel;
  PopLayout.Align     := TAlignLayout.alBottom;
  PopLayout.Height    := 22;

  PopClose            := TButton.Create(Owner);
  PopClose.Parent     := PopLayout;
  PopClose.Align      := TAlignLayout.alLeft;
  PopClose.StyleLookup := 'flyoutbutton';
  PopClose.Text       := 'Fechar';
  PopClose.OnClick    := OnClose;

  PopSave             := TButton.Create(Owner);
  PopSave.Parent      := PopLayout;
  PopSave.Align       := TAlignLayout.alLeft;
  PopSave.StyleLookup := 'flyoutbutton';
  PopSave.Text        := 'Salvar';
  PopSave.OnClick     := OnSave;

  PopClientArea             := TLayout.Create(Owner);
  PopClientArea.Parent      := PopPanel;
  PopClientArea.Align       := TAlignLayout.alClient;

  FPanel:= PopPanel;
  FLayoutButton:= PopLayout;
  FSaveButton:= PopSave;
  FCloseButton:= PopClose;
  FClientArea:= PopClientArea;

  Width                   := 100;
  Height                  := 100;
end;

destructor TPopupTest.Destroy;
begin
  FClientArea.Free;
  FCloseButton.Free;
  FSaveButton.Free;
  FLayoutButton.Free;
  FPanel.Free;

  inherited;
end;

procedure TPopupTest.OnClose(Sender: TObject);
begin

end;

procedure TPopupTest.OnSave(Sender: TObject);
begin

end;

end.


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