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 :

Boîtes de dialogue pour ouvrir/enregistrer des fichiers sous Android


Sujet :

Composants FMX Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 399
    Points : 300
    Points
    300
    Par défaut Boîtes de dialogue pour ouvrir/enregistrer des fichiers sous Android
    Bonjour,

    Je commence à développer sous Android avec Delphi 10.1 Berlin.
    Je veux afficher les photos de mon téléphone, mais je n'ai pas accès à TOpenDialog qui n'existe pas sous Android pour choisir une photo à visualiser.
    Je me pose la même question pour enregistrer un fichier, comment choisir où l'enregistrer.

    Donc comment faire pour balayer les arborescences de répertoires ?

    Merci

  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 909
    Points
    1 909
    Par défaut
    Citation Envoyé par Bernard B Voir le message
    Je veux afficher les photos de mon téléphone, mais je n'ai pas accès à TOpenDialog qui n'existe pas sous Android pour choisir une photo à visualiser.
    Je ne me suis pas encore interessé à Android mais je fais cela avec iOS et je suppose que c'est la même chose, la gestion des photos sur mobiles est géré par le composant TActionList, il faut déposer ce composant sur ta fiche et avec un double click dessus, tu choisis les actions à utiliser.
    Pour charger une photo de ton téléphone, il faut utiliser la méthode TakePhotoFromLibraryActionDidFinishTaking

    Citation Envoyé par Bernard B Voir le message
    Je me pose la même question pour enregistrer un fichier, comment choisir où l'enregistrer.

    Donc comment faire pour balayer les arborescences de répertoires ?

    Merci
    Si tu as des documents à gérer, il faut utiliser le dossier StartUp\Documents du package, regardes les classes TPath et TFile de System.IOUtils ( Tdirectory aussi ) cela permet de gérer les fichiers avec fmx.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 399
    Points : 300
    Points
    300
    Par défaut
    Oui j'ai vu TActionList et sa commande pour charger une photo et l'afficher.
    Par contre il faut lui fournir le nom du fichier et son chemin complet (ce qui me semble évident), mais comment chercher dans les répertoires pour trouver le fichier à afficher ?

  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 909
    Points
    1 909
    Par défaut
    Bonjour,


    Avec TActionList tu n'as pas besoin de connaitre l'emplacement de la photo puisque l'événement OnDidFinishTaking de TakePhotoFromLibraryAction fournit en paramètre le bitmap de la photo choisie par l'utilisateur.

    http://docwiki.embarcadero.com/RADSt...es_d%27actions

    Ensuite pour la gestion des fichiers sur les mobiles, il y a TFile et TPath qui permet d’accéder aux dossiers de l'application comme TPath.GetDocumentsPath. En général c'est ce répertoire que l'on utilise sur les mobiles pour gérer les fichiers.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 399
    Points : 300
    Points
    300
    Par défaut
    Merci pour ce lien free07, je ne l'avais pas trouvé et il correspond à la première étape de ce que je cherche.

    Pour démarrer sous Android il donne l'esprit de ce type de développement complètement différent de celui que je pratique où je (tente) de tout maitriser.
    Là il faut rentrer dans le moule de l'OS sans forcément savoir où sont ses fichiers, où les images ne doivent pas se mélanger à autre chose....

    Je vais jouer un peu avec ça et quand je maîtriserai un peu mieux je me pencherai sur un FileExplorer que je viens de trouver !

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    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 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Je ne sais pas si je cerne correctement le problème. Pour moi je comprends qu'il faut trouver un équivalent à un opendialog (qui lui est quelque chose de purement windows). Pour un mobile j'utiliserai (j'écris j'utiliserai car je n'ai pas testé) une liste que je remplirai grâce au routines d'accès aux fichiers IOUtils (TDirectory.GetDirectories et TDirectory.GetFiles)
    Marco Cantù dans son livre blanc sur le dev d'application mobile décrit la manière de faire (chapitre 5.2 page 35-36)
    [Edit] on trouve même un appli+source assez complète ici
    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

  7. #7
    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 909
    Points
    1 909
    Par défaut
    C'est vrai que la gestion des fichiers sur mobile est différente de celle que l'on connait sur Windows et peut un peu déconcerté au début.

    Je connais pas vraiment Android mais de ce que je sais sur iOS, une application est un paquet contenant des sous répertoires et des fichiers tels que les icones de l'application, les splash screen, les polices, etc
    Si l'on a besoin de sauvegarder des données dans des fichiers ou dans une bd, on utilise un sous répertoire de ce paquet et l'on y accède avec TPath.GetDocumentsPath, ces fichiers ( ou bd ) sont propres à l'application vu qu'ils font partie du paquet.
    Ensuite pour accéder à des fichiers extérieures à l'application, il y a la bibliothèque accessible justement grâce TActionList.

    Par contre, si tu veux accéder à des fichiers 'extérieurs' à ton application et à la bibliothèque, c'est surement possible, encore faut il savoir ou ils sont...

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 399
    Points : 300
    Points
    300
    Par défaut
    Effectivement, je cherche quelque chose qui ressemble à un opendialog ou l'équivalent d'un explorateur de fichiers comme on en trouve sous windows ou Mac : la fenêtre qui permet d'aller chercher un fichier dans les moyens de stockage (disque, clef, carte SD...).
    Je vais me pencher sur le lien de SergioMaster pour le document de Marco Cantu.
    Comme tu le dis free07, je commence à cerner que la gestion de fichiers dans les mobiles est assez différentes de classiques desktop.
    Ce que j'aimerais bien c'est éventuellement accéder à des fichiers extérieurs à mon application et quand à savoir où, c'est là qu'un pseudo OpenDialog devrait permettre de le découvrir ?
    Merci à tous les deux et l'appli que Sergio m'a indiquée semble bien contenir ce que je cherche et même plus.
    Je continue mes explorations !

  9. #9
    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 909
    Points
    1 909
    Par défaut
    Citation Envoyé par Bernard B Voir le message
    Ce que j'aimerais bien c'est éventuellement accéder à des fichiers extérieurs à mon application et quand à savoir où, c'est là qu'un pseudo OpenDialog devrait permettre de le découvrir ?
    Merci à tous les deux et l'appli que Sergio m'a indiquée semble bien contenir ce que je cherche et même plus.
    Je continue mes explorations !
    L'exemple indiqué par Sergio a l'air très intéressant, j'ai parcouru rapidement le descriptif car j'ai envie de savoir si l'on n'est pas confronté à des problèmes de droits pour l'accès à certains dossiers mais je n'ai pas trouvé vraiment de réponse ( lu en diagonal ), je crains qu'il faille avoir les privilèges de root pour ne pas avoir de problème d'accès ( peut être pas dans le cas d'accès à une memory card ).

    J'espère avoir le temps de tester cet exemple mais n'hésites pas à le signaler si tu as vu des réponses ou si tu n'as pas eu de problème de droits ( privilège root ou pas ? )

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/12/2013, 11h30
  2. Réponses: 1
    Dernier message: 13/09/2010, 06h22
  3. Enregistrer des fichiers sous VPN
    Par FredericB dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/07/2007, 14h45

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