Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Die Probleme beginnen beim drehen... (https://www.delphipraxis.net/174494-die-probleme-beginnen-beim-drehen.html)

Mavarik 25. Apr 2013 10:51

Die Probleme beginnen beim drehen...
 
Hallo Zusammen!

Mit den Ausrichtungen, Margins usw. kann man sicherlich schon viel machen, aber immer wieder stellt man beim Design fest, dass man eigentlich für hoch und quer, eigene Forms definieren muss.

Das ganze multipliziert sich dann, wenn es auch auf iPad laufen soll.

Nach der Drehung - es gibt keinen Event der vorher feuert - kann man also das "richtige" Formular laden..

Aber was ist mit den schon eingegeben Daten?

Habt Ihr schon ein Konzept, wie Ihr das lösen wollt?

Mavarik

Union 25. Apr 2013 11:27

AW: Die Probleme beginnen beim drehen...
 
Also die Drehung selber durch entsprechende Panels, Anchors etc. Aber für IPad halte ich es für sinnvoll eine eigene App zu machen. Schau Dir doch alleine mal die Monster-Auflösung an. Um das Teil im Simulator und einer normalen Grafikkarte angezeigt zu bekommen braucht man ja einen 40" Monitor.

Daniel 25. Apr 2013 11:34

AW: Die Probleme beginnen beim drehen...
 
Für die Daten würde ich eine Zwischenschicht nutzen. Eine Art "Controller", der beide Formulare kennt und auch für das Umschalten verantwortlich ist und auf diese Weise die Daten von Formular (a) abgreifen kann, um danach dann Formular (b) zu bestücken und umgekehrt.

Mavarik 25. Apr 2013 11:49

AW: Die Probleme beginnen beim drehen...
 
Zitat:

Zitat von Daniel (Beitrag 1212849)
Für die Daten würde ich eine Zwischenschicht nutzen. Eine Art "Controller", der beide Formulare kennt und auch für das Umschalten verantwortlich ist und auf diese Weise die Daten von Formular (a) abgreifen kann, um danach dann Formular (b) zu bestücken und umgekehrt.

Ja so hab ich es jetzt auch gemacht...

Delphi-Quellcode:
   case CurrentDeviceOrientation of
              doUnknown            :;

              doPortraitUpsideDown,
              doPortrait           : begin
                                        if ViewFormOrientation <> mfPortrait then
                                          begin
                                            if Assigned(LForm) then
                                              FreeandNil(LForm);

                                            PForm := TTest1P.create(self);
                                            PForm.Show;
                                            exit;
                                          end;
                                      end;
              doLandscapeRight,
              doLandscapeLeft      : begin
                                        if ViewFormOrientation <> mfLandscape then
                                          begin
                                            if Assigned(PForm) then
                                              FreeandNil(PForm);

                                            LForm := TTest1L.create(self);
                                            LForm.Show;
                                            exit;
                                          end;
                                      end;
              doFaceUp,
              doFaceDown           :;
           end; //
Dann hab ich ein TTest1G (als Vater Formular) Test1L(TTest1G) und Test1P(TTest1G) sind davon abgeleitet...

Jetzt muss ich "nur" noch die Inhalte der Felder,Memos, Switches usw. zwischenspeichern.

Und ich will den Controler ja nicht für jedes Formular Programmieren, also muss ich die Creates noch anonymisieren... So nach dem Motto Einchecken von einem Formular Paar in den Controller...

Mavarik

Mavarik 25. Apr 2013 11:51

AW: Die Probleme beginnen beim drehen...
 
Zitat:

Zitat von Union (Beitrag 1212846)
Schau Dir doch alleine mal die Monster-Auflösung an.

Auflösung ist nicht die Frage.. Das skaliert FM2 ja alles... Aber Du hast einfach irre mehr platz als auf den iPhone...

Mavarik


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