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 :

Layout et scale : quelle stratégie ? [Android]


Sujet :

Composants FMX Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Layout et scale : quelle stratégie ?
    Bonjour,

    j'en suis à l'organisation des Forms. Je pars d'un projet FMX-Win 32 et dans ce projet je veux créer a peu près la même couche métier pour mes Forms Win32 et Androïd (A priori, je suis obligé de différencier le code de certains événements).

    Je suis un peu perplexe. En FMX, il y des layout (y compris Flow) et chaque composant peut-être affecté d'une échelle. A priori, cela donne beaucoup d'aisance et de facultés d'adaptation au développement. Seulement par mes quelques expériences en tablette/smartphone, je me suis rendu compte que l'organisation fluide était très délicate et chronophage. J'en suis arrivé à la conclusion, qu'il était préférable d'utiliser plusieurs modèles de pages (de Forms) avec des tailles différentes.

    Cette dernière méthode est-elle gérable en FMX? fLogin, fLoginAndroidTaille1, fLoginAndroidTaille2,... ?

    Cordialement. Gilles
    Dernière modification par Invité ; 29/09/2014 à 15h08.

  2. #2
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 915
    Points
    1 915
    Par défaut
    Tu voudrais gérer tes forms en fonction de la taille de l'écran ?

    Si c'est le cas, on peut utiliser les services liés à la plateform avec FMX.Platform.IFMXScreenService


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    uses FMX.Platform;
     
    ...
     
    var   l_Svc: IFMXScreenService;
          l_TailleEcran : TPointF;
     
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(l_Svc)) = True then
        l_TailleEcran := l_Svc.GetScreenSize;
     
    end;

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

    Merci pour votre réponse. Ma question manque de précision en effet.

    Voici le résultat obtenu hier sur un Samsung S à partir de la Form définie initialement à gauche:

    Sur la photo de l'écran Samsung, on voit qu'il serait possible d'utiliser toute la surface de l'écran en agrandissant les champs contenus au prorata X et Y.

    D'une manière plus générale, ce que permettrait peut-être de faire Delphi (et que je ne suis pas arrivé à faire autrement) c'est d'optimiser l'affichage en fonction de la taille de l'écran et de sa résolution (quelques caractéristiques ici).
    Le principe serait d'utiliser les scale en effet et une organisation par layout pour traiter par exemple une image d'origine ainsi...

    1 est la Form d'origine (la copie d'écran de la photo)
    2 en fonction des capacités d'affichage, on agrandit jusqu'à une scale max pour occuper le maximum de la surface d'écran (cas du Samsung S).
    3 si on dépasse le scale max (écran trop grand, il faut garder des tailles de polices raisonnables, par exemple pour un Galaxy Tab), on garde cet agrandissement max et on centre dans l'écran.

    Sinon je ne vois pas d'autre solution que d'utiliser plusieurs "types" de form pré-définies en fonction des tailles, ce qui sous-entend une déclinaison de chacune des Forms. J'ai pratiqué ainsi avec d'autres IDE : c'est usant et mal commode ! Or dans Delphi, je ne vois rien qui me permettent de décliner une Form plusieurs fois dans un même environnement Androïd. Je peux différencier la Form Win d'une Form Androïd mais pas de 2 androïds clonées. Donc je me demande quelle stratégie présente Delphi en la matière compte tenu du fait qu'à priori en Androïd, la possibilité des écrans d'affichage est variée. Cela l'est moins chez Apple.

    Evidemment en cas de rotation de l'écran, on définit une autre stratégie (le centrage n'est pas nécessairement de rigueur... ou mieux suivant le contenu, le centrage peut être programmé ou non). C'est l'énorme avantage ici d'utiliser Delphi.

    Mais peut-être que je me fourvoie encore totalement... comme pour les styles. Quoique pour les styles, j'obtiens quelque chose de significatif même si ce n'est pas prévu pour fonctionner ainsi


    PS : question sans rapport mais comme je lisais votre code.. Il n'y a pas de complétion automatique dans les uses de XE7 ? Systématiquement, je suis obligé de saisir le nom complet de l'unité que je veux ajouter.
    Dernière modification par Invité ; 29/09/2014 à 15h46.

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 915
    Points
    1 915
    Par défaut
    Citation Envoyé par selzig Voir le message
    1 est la Form d'origine (la copie d'écran de la photo)
    2 en fonction des capacités d'affichage, on agrandit jusqu'à une scale max pour occuper le maximum de la surface d'écran (cas du Samsung S).
    3 si on dépasse le scale max (écran trop grand, il faut garder des tailles de polices raisonnables, par exemple pour un Galaxy Tab), on garde cet agrandissement max et on centre dans l'écran.
    C'est ce que fait le ScaledLayout pour les desktop, par contre je n'ai jamais essayé avec les mobiles, il faudrait faire un essai en mettant un ScaledLayout ( propriété Align = Client ) sur la form et peut être que cela fonctionne, je serais curieux de savoir si cela fonctionne ( je en peux pas faire l'essai aujourd'hui )

    Citation Envoyé par selzig Voir le message
    PS : question sans rapport mais comme je lisais votre code.. Il n'y a pas de complétion automatique dans les uses de XE7 ? Systématiquement, je suis obligé de saisir le nom complet de l'unité que je veux ajouter.
    La complétion auto sur les uses fonctionne avec XE4 et je viens de faire l'essai avec XE7, apparemment cela ne fonctionne pas non plus chez moi...

  5. #5
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    En fait il faut mixer un Layout normal avec un alignement alFit et un ScaledLayout. Je vous conseille de jeter un oeil au lien suivant :

    http://www.ledevdujeudi.com/layouts/

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour Thierry,

    Cela pourrait être un bon début. Mais le système est entièrement automatisé et évidemment l'image par exemple en devient floue.

    Par ailleurs, j'apprécie votre aide et celle de ce forum, mais le lien fourni Projet ScaledFit (86.2 Ko) n'est pas exploitable... facilement.

    Sur le fond, comme le traitement est entièrement automatisé, il faut que je démonte une par une les interactions pour voir comment cela fonctionne.... et les neutraliser si j'en ai besoin... et avec une telle approche j'en aurai besoin ! Mais, je ne veux pas d'une procédure d'affichage automatique. Je veux une procédure d'agrandissement et de centrage raisonnée... si c'est possible. Je préférerais connaître les principes de fonctionnement potentiellement à ma disposition et extraire ceux dont j'ai besoin... Il est vrai que le code est commenté.

    Déjà, ce n'est pas une vidéo anglo-saxonne avec un accent incompréhensible

    Plus anecdotique mais fatigant à la fin car beaucoup trop fréquent, pour la Form (i.e. sur la forme), ce n'est pas exploitable facilement non plus. Ma première tentative de compilation du projet dézippé :
    Vérification des dépendances de projet...
    Compilation de ScaledFit.dproj (Release, Win32)
    Ligne de commande dcc pour "ScaledFit.dpr"
    c:\program files\embarcadero\studio\15.0\bin\dcc32.exe -$D0 -$L- -$Y- --no-config -M -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;
    Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE
    -E.\Win32\Release -I"c:\program files\embarcadero\studio\15.0\lib\Win32\release\FR";"c:\program files\embarcadero\studio\15.0\lib\Win32\release";
    C:\Users\gillesh\Documents\Embarcadero\Studio\15.0\Imports;"c:\program files\embarcadero\studio\15.0\Imports";
    C:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp;"c:\program files\embarcadero\studio\15.0\include";"C:\Program Files\FastReports\LibD21";
    "C:\Program Files\Raize\CS5\Lib\RS-XE7\Win32" -LEC:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl
    -LNC:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp -NU.\Win32\Release\DCUs -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;
    Bde;System;Xml;Data;Datasnap;Web;Soap; -O"c:\program files\embarcadero\studio\15.0\lib\Win32\release";
    C:\Users\gillesh\Documents\Embarcadero\Studio\15.0\Imports;"c:\program files\embarcadero\studio\15.0\Imports";
    C:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp;"c:\program files\embarcadero\studio\15.0\include";"C:\Program Files\FastReports\LibD21";
    "C:\Program Files\Raize\CS5\Lib\RS-XE7\Win32" -R"c:\program files\embarcadero\studio\15.0\lib\Win32\release\FR";"c:\program
    files\embarcadero\studio\15.0\lib\Win32\release";C:\Users\gillesh\Documents\Embarcadero\Studio\15.0\Imports;"c:\program
    files\embarcadero\studio\15.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp;"c:\program files\embarcadero\studio\15.0\include";
    "C:\Program Files\FastReports\LibD21";"C:\Program Files\Raize\CS5\Lib\RS-XE7\Win32" -U"c:\program files\embarcadero\studio\15.0\lib\Win32\release\FR";
    "c:\program files\embarcadero\studio\15.0\lib\Win32\release";C:\Users\gillesh\Documents\Embarcadero\Studio\15.0\Imports;"c:\program
    files\embarcadero\studio\15.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp;"c:\program files\embarcadero\studio\15.0\include";
    "C:\Program Files\FastReports\LibD21";"C:\Program Files\Raize\CS5\Lib\RS-XE7\Win32" -NBC:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp
    -NHC:\Users\Public\Documents\Embarcadero\Studio\15.0\hpp\Win32 -NO.\Win32\Release\DCUs ScaledFit.dpr
    [dcc32 Erreur] uMain.pas(35): E2003 Identificateur non déclaré : 'TButton'
    [dcc32 Erreur] uMain.pas(37): E2003 Identificateur non déclaré : 'TLabel'
    [dcc32 Erreur] uMain.pas(38): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(39): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(40): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(41): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(42): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(43): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(44): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(45): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(46): E2007 Constante ou identificateur de type attendu
    [dcc32 Erreur] uMain.pas(62): E2003 Identificateur non déclaré : 'TBitmap'
    [dcc32 Erreur] uMain.pas(86): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(90): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(109): E2066 Opérateur ou point-virgule manquant
    [dcc32 Avertissement] uMain.pas(145): W1000 Le symbole 'alNone' est déprécié: 'Use TAlignLayout.None'
    [dcc32 Avertissement] uMain.pas(151): W1000 Le symbole 'alFit' est déprécié: 'Use TAlignLayout.Fit'
    [dcc32 Erreur] uMain.pas(163): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(164): E2066 Opérateur ou point-virgule manquant
    [dcc32 Avertissement] uMain.pas(188): W1000 Le symbole 'alNone' est déprécié: 'Use TAlignLayout.None'
    [dcc32 Avertissement] uMain.pas(199): W1000 Le symbole 'alFit' est déprécié: 'Use TAlignLayout.Fit'
    [dcc32 Erreur] uMain.pas(200): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(200): E2029 '(' attendu(e) mais ':=' trouvé(e)
    [dcc32 Erreur] uMain.pas(201): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(201): E2029 '(' attendu(e) mais ':=' trouvé(e)
    [dcc32 Erreur] uMain.pas(203): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(219): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur] uMain.pas(227): E2029 'THEN' attendu(e) mais identificateur 'Enabled' trouvé(e)
    [dcc32 Erreur] uMain.pas(234): E2035 Pas assez de paramètres originaux
    [dcc32 Erreur] uMain.pas(240): E2029 '.' attendu(e) mais ';' trouvé(e)
    [dcc32 Erreur] uMain.pas(249): E2029 'THEN' attendu(e) mais identificateur 'Enabled' trouvé(e)
    [dcc32 Erreur] uMain.pas(260): E2066 Opérateur ou point-virgule manquant
    [dcc32 Erreur fatale] ScaledFit.dpr(16): F2063 Impossible de compiler l'unité utilisée 'uMain.pas'
    Echec
    Temps écoulé : 00:00:00.4
    Alors en vrac,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     {$IFDEF VER260+}
      // L'objet TBitmap a été déplacé de l'unité FMX.Types à FMX.Graphics en version XE5
      FMX.Graphics,
      {$ENDIF}
    -> Oui mais XE7 aussi en a besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure btnLoadImageDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Accept: Boolean);
    -> incompatible XE7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uses FMX.StdCtrls;   {TLabel & TButton}
    -> oublié !?

    Et enfin, si on fait des copier-coller sur les 2 pages, ce n'est guère plus exploitable : le bmpTag n'est pas défini dans procedure TfrmMain.DisplayTag(X, Y: Single);
    Le problème c'est que je peux vous présenter toute une liste de dproj téléchargés sur internet dans le même état... et c'est l'objet de ma proposition sur ce forum. Dater, "versionner" tous les exemples et si possible les mettre à jour au fil des versions. Seul réel avantage des 2 pages, les commentaires qui indiquent partiellement pourquoi les objets sont imbriqués de telles façons ou qui présentent quelles sont leurs propriétés utilisées...
    Dernière modification par tourlourou ; 30/09/2014 à 09h37.

  7. #7
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Comme précisé dans le lien le projet source est un projet XE2. Et le but n'était pas de reprendre tel quel le projet mais de voir l'explication dans le document. Car encore une fois ce que vous souhaitez faire se réalise avec un layout en align alfit et et un TScaledlayout. Ce qui est expliqué dans le lien.
    De plus en cherchant un peu je suis sûr vous auriez pu très facilement rendre le code XE2 compatible XE7, il m'a fallu à peine 2 minutes. Je vous joint le source qui est donc compatible XE7 maintenant.
    Pour ce qui est de l'image il parait normal que si vous mettez une image de taille très petite et qu'ensuite vous jouez avec le scaledLayout cela va agrandir les composants, mais bien entendu cela va détériorer la qualité de l'image. Si vous mettez une image en 24*24 et que vous jouez sur la propriété Scale pour avoir un composant TImage qui fasse 256*256 forcément votre image sera pixelisé, car l'image source fait toujours 24*24. Les composants sont vectoriels et peuvent être agrandis à volonté sans perte de qualité, mais forcément pour une image pour avoir une qualité correcte il faudra avoir une taille de l'image source qui corresponde. A vous de mettre une image plus grande qui elle apparaîtra correctement en taille réduite, et ne sera pas détériorée lorsque vous l'aurez agrandie.
    Là-dessus, vous pouvez jouer avec les TMultiResBitmap qui sont là pour ça justement. Pour gérer les différentes tailles d'écran et avoir des images correspondantes selon les différents cas :

    http://docwiki.embarcadero.com/RADSt...%C3%A9solution

    http://docwiki.embarcadero.com/RADSt...MultiResBitmap


    LeDevduJeudi.ScaledFit.Tips.XE7.zip

  8. #8
    Invité
    Invité(e)
    Par défaut
    Thierry,

    Moi aussi il m'a fallu 2 minutes ! Le problème c'est bien que le projet soit en XE2 ! Moi, je teste le XE7 ... Et actuellement sous Androïd, ce que ne permet pas nativement le Zip. Et j'en ai des tonnes de téléchargements ou de sources qu'il faut rectifier. Vous vous concentrez sur un sujet, et il faut chercher la nouvelle unit, la nouvelle syntaxe... Dispersion totale, fatigue assurée. J'apprends ou j'essaie. Vous n'imaginez pas -mais votre équipe non plus sans doute- la difficulté d'apprendre avec des ressources variant ainsi d'une version à l'autre.

    Je crois que j'ai fait une description précise de ce que je cherchais à obtenir... Et je pense que je peux y arriver comme avec les styles. Mon niveau d'exigence est assez élevé... Je ne me concentre pas d'ailleurs actuellement que sur les images... mais sur tous les objets de la Form qui possèdent une propriété Scale. A priori mes premiers Test sur les TLabels ont l'air concluants. Maintenant sur les TEdits et autres ComboBox et sous Androïd, je ne sais pas encore... Alors, on ne va pas se fâcher. Je vous remercie pour votre démarche d'aide même si son exploitation ne me paraît pas évidente.

  9. #9
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Encore une fois le ZIP une fois ouvert permet de compiler sur Android. je ne vois donc pas ou est le soucis. Bien entendu il faut juste rajouter la plateforme android car forcément comme elle n'existait pas sur la XE2 elle n'est pas présente dans les options du projet. Mais du coup un click avec le bouton droit sur Plateformes Cibles, option 'Ajouter une plateforme' et vous pouvez ajouter Android comme toutes les autres plateformes.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour Thierry,

    Désolé pour le délai, mais je consacre totalement mes mardi et mercredi à mon lycée.

    Le problème n'est du tout d'ajouter la plate-forme Androïd. J'arrive à le faire de manière autonome ! (Que de progrès !) Ce qui me fait dire que votre application n'est pas compatible nativement avec Androïd est le message d'erreur que retourne la compilation du projet :
    Build started 02/10/2014 14:17:58.
    __________________________________________________
    Project "C:\Projets_Delphi\TestScaled\ScaledFit.dproj" (Make target(s)):
    Target BuildVersionResource:
    c:\program files\embarcadero\studio\15.0\bin\cgrc.exe -c65001 ScaledFit.vrc -foScaledFit.res
    CodeGear Resource Compiler/Binder
    Version 1.2.2 Copyright (c) 2008-2012 Embarcadero Technologies Inc.

    Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0

    Copyright (C) Microsoft Corporation. All rights reserved.


    Suppression du fichier "ScaledFit.vrc".
    Target _PasCoreCompile:
    c:\program files\embarcadero\studio\15.0\bin\dccaarm.exe -$D0 -$L- -$Y- --no-config -M -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DRELEASE -E.\Android\Release -I"c:\program files\embarcadero\studio\15.0\lib\Android\release\FR";"c:\program files\embarcadero\studio\15.0\lib\Android\Release" -LEC:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\Android -LNC:\Users\Public\Documents\Embarcadero\Studio\15.0\Dcp\Android -NU.\Android\Release -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files\embarcadero\studio\15.0\lib\Android\Release" -R"c:\program files\embarcadero\studio\15.0\lib\Android\release\FR";"c:\program files\embarcadero\studio\15.0\lib\Android\Release" -U"c:\program files\embarcadero\studio\15.0\lib\Android\release\FR";"c:\program files\embarcadero\studio\15.0\lib\Android\Release" --libpath:C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib;C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a --linker:C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe -NO.\Android\Release ScaledFit.dpr
    Target _DeleteLnkFile:
    Suppression du fichier ".\Android\Release\ScaledFit.lnk".
    Build succeeded.
    0 Warning(s)
    0 Error(s)
    Time Elapsed 00:00:04.90
    Build started 02/10/2014 14:18:03.
    __________________________________________________
    Project "C:\Projets_Delphi\TestScaled\ScaledFit.dproj" (Deploy target(s)):
    Target _CleanRemoteDir:
    Cleaning APK Output Directory: .\Android\Release\ScaledFit
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --Clean=".\Android\Release\ScaledFit,C:\Projets_Delphi\TestScaled\ScaledFit._@emb_.tmp"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Suppression des fichiers...
    Nombre total de fichiers supprimés : 3 fichiers 3 répertoires
    Suppression du fichier "C:\Projets_Delphi\TestScaled\ScaledFit._@emb_.tmp".
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="Android\Release\AndroidManifest.xml,.\Android\Release\ScaledFit\,1,AndroidManifest.xml"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 2*424 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_SplashImage_640x480.png,.\Android\Release\ScaledFit\res\drawable-large\,1,splash_image.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\release\mips\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\mips\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="Android\Release\styles.xml,.\Android\Release\ScaledFit\res\values\,1,styles.xml"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 277 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android\Release\ScaledFit\res\drawable-xxhdpi\,1,ic_launcher.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_SplashImage_960x720.png,.\Android\Release\ScaledFit\res\drawable-xlarge\,1,splash_image.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_SplashImage_426x320.png,.\Android\Release\ScaledFit\res\drawable-small\,1,splash_image.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="fmx.png,.\Android\Release\ScaledFit\assets\internal\,0,fmx.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\release\classes.dex,.\Android\Release\ScaledFit\classes\,1,classes.dex"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 2*772*836 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="Android\Release\splash_image_def.xml,.\Android\Release\ScaledFit\res\drawable\,1,splash_image_def.xml"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 267 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android\Release\ScaledFit\res\drawable-mdpi\,1,ic_launcher.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\release\x86\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\x86\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="Android\Release\libScaledFit.so,.\Android\Release\ScaledFit\library\lib\armeabi-v7a\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 18*802*352 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\debug\armeabi\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\armeabi\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android\Release\ScaledFit\res\drawable-ldpi\,1,ic_launcher.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\debug\classes.dex,.\Android\Release\ScaledFit\classes\,1,classes.dex"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 2*773*944 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\release\armeabi\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\armeabi\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\debug\mips\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\mips\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android\Release\ScaledFit\res\drawable-hdpi\,1,ic_launcher.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android\Release\ScaledFit\res\drawable-xhdpi\,1,ic_launcher.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\lib\android\debug\x86\libnative-activity.so,.\Android\Release\ScaledFit\library\lib\x86\,1,libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="c:\program files\embarcadero\studio\15.0\bin\Artwork\Android\FM_SplashImage_470x320.png,.\Android\Release\ScaledFit\res\drawable-normal\,1,splash_image.png"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 0 fichiers 0 octets
    Target _DeployFiles:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --put="C:\Projets_Delphi\TestScaled\deployedassets.txt,.\Android\Release\ScaledFit\assets\deployinfo\,,"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Copie des fichiers...
    Nombre total de fichiers copiés : 1 fichiers 27 octets
    Target __CreateAPKDirs:
    Création du répertoire ".\Android\Release\ScaledFit\bin".
    Target __StripOutputFile:
    Création du répertoire ".\Android\Release\ScaledFit\debug".
    Copie du fichier de ".\Android\Release\ScaledFit\library\lib\armeabi-v7a\libScaledFit.so" vers ".\Android\Release\ScaledFit\debug\libScaledFit.so".
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --stripdebug="C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe,.\Android\Release\ScaledFit\debug\libScaledFit.so,.\Android\Release\ScaledFit\library\lib\armeabi-v7a\libScaledFit.so"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Target _AndroidPackaging:
    c:\program files\embarcadero\studio\15.0\bin\paclient.exe -u8 --aaptpackage="C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4\Aapt.exe,.\Android\Release\ScaledFit\library,.\Android\Release\ScaledFit\classes,.\Android\Release\ScaledFit\res,.\Android\Release\ScaledFit\assets,.\Android\Release\ScaledFit\AndroidManifest.xml,C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platforms\android-19\android.jar,.\Android\Release\ScaledFit\bin\ScaledFit-unsigned.apk"
    Platform Assistant Client Version 6.0.2.17
    Copyright (c) 2010-2014 Embarcadero Technologies, Inc.

    Erreur : E2312 Impossible d'exécuter '"C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4\Aapt.exe" package -f -M "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\AndroidManifest.xml" -F "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\bin\ScaledFit-unsigned.apk" -I "C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platforms\android-19\android.jar" -S "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\res" -A "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\assets" "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\library" "C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\classes"' (erreur 1)
    Erreur : E2312 C:\Projets_Delphi\TestScaled\Android\Release\ScaledFit\res\drawable\splash_image_def.xml:2: error: Error: Resource package cannot be an empty string (at 'src' with value '@drawable/splash_image').
    c:\program files\embarcadero\studio\15.0\bin\CodeGear.Deployment.targets(376,5): error MSB6006: "paclient" exited with code 1.
    Done building target "_AndroidPackaging" in project "ScaledFit.dproj" -- FAILED.
    Done building project "ScaledFit.dproj" -- FAILED.
    Build FAILED.
    c:\program files\embarcadero\studio\15.0\bin\CodeGear.Deployment.targets(376,5): error MSB6006: "paclient" exited with code 1.
    0 Warning(s)
    1 Error(s)
    Time Elapsed 00:00:02.83
    Voila, voila... Mon projet sous Androïd fonctionne bien (i.e. compile normalement), lui. C'est simple, cela compile ou non. Votre zip : FMX-Win 32 : OK - FMX -Androïd sur le smartphone avec lequel je teste mes projets : erreur. D'où ma conclusion. Alors je n'ai pas envie de polémiquer ni de comprendre pourquoi ce projet ne fonctionne pas d'autant que je le redis, cette méthode d'apprentissage ne me convient pas. J'ai déjà assez de mes propres erreurs... Je clos le sujet. Je vais essayer de me débrouiller seul en croisant les infos dont je dispose.
    Dernière modification par Invité ; 02/10/2014 à 15h50.

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

    Pour terminer cette discussion, c'est résolu. A mon modeste niveau, ce n'est pas du tout aussi simple qu'annoncé mais c'est faisable (i.e. fonctionnel), y compris la gestion de la taille de saisie "auto-corrigée" dans les TEdits. L'approche que j'ai dû pratiquer n'est pas du tout "automatique", et comme pour la gestion des styles, le code est assez alambiqué. Cela paraît idiot mais je ne sais faire cela (les TEdits avec les tailles de polices auto-corrigées) qu'avec Delphi. J'ai essayé avec d'autres plate-formes sans succès. Le "hic", c'est le ré-affichage avec des styles : la position du curseur est mal gérée mais il s'agit vraisemblablement d'un bug et donc la "mécanique" est présente et le potentiel est vraiment intéressant. Sans style "chargé" (donc la Form par défaut), il n'y a aucun problème : c'est bluffant ! L'ensemble est toujours testé sur mon Androïd 2.2.3 (i.e. mon Samsung S).

    Ce travail va clore ma découverte de XE7 avec la version d'essai. J'ai testé les points qui me paraissaient déterminants avec elle. Les autres points déterminants ne peuvent pas être testés puisque les composants fournis par défaut dans Delphi (toutes versions) sont insuffisamment élaborés pour répondre à mes besoins et que la version Trial ne permet pas d'intégrer des composants tiers nécessaires :
    • En mobile, il me faudrait tester UniDac pour remplacer FireDac et son absence de DataSnap serveur sous Nux et donc me permettre l'accès direct à des bases distantes telles que mySQL ou pgSQL
    • En desktop, mes besoins nécessitent de tester les composants TMS pour la gestion des champs riches (HTML) : TEdit/Memo et TGrid dont je ne me passe plus maintenant et qui m'ont fait abandonner Lazarus.


    Si j'ai le temps, je ferai un CR de mon test de XE7. Je vais prendre un petit peu de recul pour décider de la réalisation de tutoriels.

    Aujourd'hui, mais comme je viens de l'écrire il faut que je prenne du recul, je ne pense pas que ceux que je pourrais produire ne soient d'une quelconque utilité même si j'ai pris toutes les notes, copies d'écrans (pour la partie IDE) et même photos d'écran de mon vieux Samsung (pour la partie mobile). Cet archivage avait au départ deux objectifs : réaliser quelques tutoriels et me permettre de reproduire rapidement et efficacement mon travail, le premier étant d'ailleurs utilisable pour le second. Je me rends bien compte en effet que ma programmation semble tout à fait "particulière" et très loin de l'orthodoxie. A ce titre, elle est le contraire de ce qu'il faut pratiquer et utiliser comme exemple, comme support. En plus, je n'ai aucune certitude... parce que je n'ai rien vu d'équivalent avec une approche orthodoxe. La plupart du temps mes recherches ont abouti à des démonstrateurs qui illustrent qu'il est possible de faire quelque chose sur le thème plus ou moins "générique" de la question... comme celle de cette discussion et des réponses proposées. Aussi, si j'en crois les diverses interventions de ceux qui maîtrisent le produit, mes usages sont donc peu recommandables et même des fois, carrément contre-indiqués. J'ai eu en effet plusieurs fois l'impression de réaliser de la programmation "erratique" voire chaotique plutôt que de la programmation déductive. Et donc au final, malgré mes efforts, je n'ai pas réussi à faire autrement, c'est à dire à obtenir le résultat cherché avec l'orthodoxie...
    Dernière modification par Invité ; 05/10/2014 à 11h29.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [BitmapEffect] Quelle stratégie à long terme ?
    Par Marcolinho dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 15/09/2008, 09h43
  2. Quelle stratégie pour l'authentification ?
    Par Invité dans le forum Struts 1
    Réponses: 8
    Dernier message: 19/02/2008, 15h29
  3. Quelle stratégie pour coupler Hibernate et Swing ?
    Par sethys dans le forum Hibernate
    Réponses: 5
    Dernier message: 09/10/2007, 19h38
  4. Quelle stratégie d'archivage?
    Par Alexandre_P dans le forum Oracle
    Réponses: 14
    Dernier message: 21/09/2007, 15h23
  5. Réponses: 4
    Dernier message: 04/04/2006, 19h19

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