IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Gestion des Forms avec différents OS cibles


Sujet :

Composants FMX Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Gestion des Forms avec différents OS cibles
    Bonjour,

    je travaille toujours sur mes questionnaires (QCM) Win32 et Androïd. La "mécanique" fonctionne mais évidemment d'un OS à l'autre le GUI est différent.

    S'il est facile de différencier le code Win32 du code Android (par exemple, j'appelle une Form modale en Win32 : Form1.Showmodal alors qu'en Androïd cela sera Form1.Show), il est parfois (à mon avis toujours) nécessaire d'utiliser des composants différents (comme des ScaledLayouts en Androïd mais pas nécessaires en Win).

    Dans le cas présent, ce sont également des TLabels additionnels pour afficher le temps qui se décrémente. En Win, il n'est affiché que dans la Form principale qui reste visible à l'écran, les questions étant des Forms modales. En Androïd, on ne visualise qu'une seule Form à la faois. Il faut donc "transférer" et afficher le temps d'une fenêtre à l'autre... ce qui suppose un Label de plus dans les Forms qui sont utilisées pour les questions. A chaque fois qu'une de celles-ci est fermée par l'utilisateur, la page principale (sur la photo sans layouts androïd adaptés) se ré-affiche (automatiquement). En clair, le ShowModal n'existe pas en Androîd mais facilite énormément le développement en Win et OS X.

    La question est de savoir s'il est préférable de faire 2 projets différents (un Win et un Androïd) en partageant le code (par des includes par exemple) ou s'il est possible de différencier chaque Form dans chaque cible dans le même projet. A mon avis, ce n'est pas le cas (la différenciation dans un même projet). Bref, comment porte-t-on le plus facilement possible le design (l'UI) d'une Form d'un Win32 à un Androïd ?

    Sinon, pour information l'utilisation des styles à la mode "delegate Qt" (je ne sais pas comment cela s'appelle en Delphi) est transférable de Win à Androïd mais il faut que j'affiche 2 fois la Form principale au départ (ou que je fasse une rotation du smartphone) pour que les boutons inclus dans les lignes du TreeView soient actifs. Je regarderai cela après.

    D'abord je me concentre sur la méthode à employer : Un ou 2 projets sachant qu'une même Form diffère vraiment d'un OS à l'autre non pas par ses codes (i.e. c'est facilement gérable), mais par la nature même des composants nécessaires à son fonctionnement compte tenu des spécificités de l'OS considéré : il en faut plus en Androïd layout, scalelayout, label et button dans mon cas. Alors évidemment, je peux rendre les composants additionnels inactifs mais c'est mal commode quand on développe (nécessairement en Windows). En plus les fenêtres Windows n'ont pas nécessairement une taille adaptée à Androïd et n'ont pas nécessairement le même sens. Enfin, on peut concevoir 2 UIs pour les mobiles suivant l'orientation de l'écran. Le "fluide" a ses limites. Là, il y a une mécanique tout à fait spécifique à construire, déjà testée et opérationnelle.

    C'est pourquoi, je penche plutôt pour le développement d'une couche "métier" FMX en Win dans un projetWin... puis la création d'un projet androïd (projetAnd) reprenant la couche métier et des composants "métiers" dans les Forms nécessaires (cela fonctionne bien par copier-coller avec les 2 projets ouverts) et une IHM-GUI typiquement mobile. Est-ce une approche adaptée... Et que propose exactement Delphi ?

    Je ne sais pas si ma question est compréhensible. J'ai du mal avec le vocabulaire FireMonkey.
    Sinon, le "portage" est sensationnel et vraiment plaisant. "Faire" de l'androîd dans ces conditions est épatant. Il y a certainement des limites mais... pour l'instant j'en suis loin et surtout l'application est fonctionnelle même si son design n'est pas au point. J'attends avec impatience vos conseils.
    Merci.

    Toujours avec mon vieux Samsung GTi9070P dont j'ai actualisé la version d'Androïd (2.3.6)
    Dernière modification par Invité ; 11/10/2014 à 20h28. Motif: Relecture

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    XE7 avec FireUI semble répondre à cette question . Je me réfère à la démonstration en ligne que nous a fait Thierry Laborde (@thierry , si tu nous lis ?) le Mardi 7/10/14 cependant je ne sais pas si cette vidéo est déjà sur le net , je vais donc essayé d'en expliquer ce que j'ai retenu (sans XE7 pas facile de mémoriser) .

    1 - tu crées un projet FMX sans avoir forcément à en faire une présentation formidable (mettre les composants carrément en vrac est même envisageable)
    2- tu utilises la petite barre juste au dessus de l'éditeur de code pour faire tes différentes présentations (choix de l'os, du type d'écran etc...)
    et miracle tu obtiens plusieurs DFM (placés les uns à la suite des autres au niveau de ton source) , à la suite de la déclaration initiale {$R *.fmx}

    à défaut de la vidéo de thierry j'ai trouvé ça qui l'explique certainement mieux que moi

    Serge
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Serge,

    Merci pour le lien. Je l'ai regardé intégralement... 30 minutes c'est long... pour découvrir ce qui est proposé... en étant obligé d'écouter le laïus "à grand taux de dispersion" de l'animateur...

    Puis j'ai essayé d'exploiter en me "synchronisant" avec l'exemple... J'ai arrêté rapidement. Cette démarche est toujours insupportable pour moi... et pourtant mon appareil dispose d'un double écran. Ras le bol d'arrêter, de revenir en arrière approximativement en prenant obligatoirement le réflexe de noter le minutage... Cet apprentissage pavlovien m'est réellement insupportable. Comment peut-on accepter d'apprendre ainsi ? Je dois être un cas !

    Pour en revenir au "document", en Androïd, ma liste ne correspond pas. Est-ce lié aux appareils connectés ? A la version de Delphi ? Le CustomView n'existe pas dans ma liste. Pourquoi ? Comment le fait-on apparaître ? Je me moque du Google Glass, pas la peine d'y passer du temps. Où commence la suite ? ...

    Donc, j'ai vu que c'était faisable avec un seul projet. Cela a l'air correctement pensé mais sans expérimentation personnelle avec mes "vrais" besoins, il est difficile de se faire un jugement. D'un autre côté, je me méfie de tout ce qui est "RAD". On commence par gagner une heure, puis à en perdre une dizaine, dès qu'on veut modifier quelque chose de non prévu, de non intégré dans le RAD.

    A étudier de plus près donc, mais je ne me suis pas encore résolu à acheter la version Academic* et ma version d'essai s'arrête dans 6 jours**. Le sujet de cette discussion n'est pas prépondérant. Je peux facilement différencier un même projet en sous-projets "à la main" spécifiques aux OS . Il me reste par contre à tester FastReport et notamment sa capacité à gérer les champs HTML.

    Ensuite, je clos le bilan commencé... et décide.

    Merci une nouvelle fois pour ton aide. Bonne fin de WE.



    *enfin pour être honnête c'est pratiquement acquis : je suis séduit réellement par le produit, sa puissance, son efficacité, bilan comparatif à l'appui mais beaucoup moins par son environnement (la documentation, l'aide...) et les rapports que je peux deviner entre les développeurs et "l'Establishment".

    Sans sublimer le passé, j'ai eu d'autres rapports avec Borland qui s'adressait à "ses" utilisateurs-développeurs alors qu'avec Embarcadero, il me semble que je postule simplement à ne devenir "qu'un" client. Et cela, j'ai beaucoup de mal à m'y résoudre. Je comprends l'impériosité de la démarche commerciale. Mais, une fois que la licence est achetée, je demande à être traité comme un programmeur et non plus comme un client. La première chose à faire et de séparer les documents techniques des documents commerciaux. Les "vidéo-démonstrateurs", je m'en moque totalement. Et ce n'est pas la peine d'essayer de me faire passer cela pour de l'assistance technique. A mes yeux, c'est de la publicité déguisée, ni plus, ni moins.

    C'est quand même un gros point de réflexion. Même si pour moi, le développement n'est qu'une passion, le rapport avec le produit et son environnement est important. Mais pour une entreprise de développement qui choisit Delphi, la problématique est semblable : quel est l'équivalent du service technique apporté par Digia à un coût pratiquement identique ? Il existe certainement... mais j'ignore lequel. C'est un autre reproche déguisé. A mon sens la communication autour de Delphi est inintelligible... pour la cible visée et n'est vraiment pas à la hauteur du produit.

    ** C'est la valeur "optimale" sans doute : Le gestionnaire des licences inclus dans Delphi m'indique encore 6 jours restants avec une date d'expiration au 18/10/2014 alors que quand je démarre Delphi, la fenêtre de lancement m'indique encore 4 jours d'utilisation...
    Dernière modification par Invité ; 12/10/2014 à 12h15. Motif: Précisions, commentaires

Discussions similaires

  1. [Admin] Gestion des users avec 2 métiers différents
    Par tux2005 dans le forum Administration-Migration
    Réponses: 4
    Dernier message: 05/03/2011, 09h14
  2. Gestion des transactions avec les composants DOA
    Par lper dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/12/2008, 16h06
  3. Gestion des cookies avec Indy 10
    Par membrax dans le forum Web & réseau
    Réponses: 5
    Dernier message: 21/09/2005, 18h44
  4. Class de gestion des images avec rotation
    Par Johnny Boy dans le forum MFC
    Réponses: 1
    Dernier message: 03/05/2005, 11h54
  5. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo