2017-08-07 2 views
1

J'ai besoin de stocker une photo prise de l'appareil photo et j'essaie d'utiliser le code que vous pouvez trouver ci-dessous.Delphi Android ne peut pas utiliser TPath

ImagePhoto.Bitmap.SaveToFile( TPath.Combine(TPath.GetCameraPath, getNewName)); 

En particulier, les noms de variables signifie:

  • ImagePhoto: un TImage contenant la photo prise
  • getNewName: une fonction qui renvoie une chaîne comme filename.bmp

J'ai inclus System.IOUtils dans les clauses uses mais le TPath ne fonctionne pas correctement. Lorsque j'appuie sur les touches Ctrl et je clique sur TPath l'IDE ouvre ce

TPath = class(TCustomPath) 

et qui est à l'intérieur des FMX.Objects, pas elle System.IOUtils! Comment puis-je réparer cela? J'utilise Delphi Tokyo.

Fondamentalement, j'ai besoin de savoir comment spécifier que j'ai besoin du TPath de IOUtils.

+0

En C++, il y a des espaces de noms et ils peuvent facilement résoudre ce problème. Est-ce que Delphi a quelque chose comme ça? BTW je ne sais pas pourquoi ils ont mis le même nom de 2 unités différentes ... –

+1

Vous devez avoir le System.IOUtils déclaré après (!) l'unité FMX.Objects. – iamjoosy

+0

La question aurait dû contenir l'erreur du compilateur. Ces détails comptent. Avez-vous lu le message d'erreur? –

Répondre

4

Il semble que FMX.Objects apparaît après System.IOUtils dans la clause uses. Soit changer cela ou qualifier l'appel à TPath:

ImagePhoto.Bitmap.SaveToFile(System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetCameraPath, getNewName)); 
+1

Donc, fondamentalement, l'ordre des unités déclarées est important dans Delphi? –

+0

@RaffaeleRossi Oui, mais vous pouvez également tirer parti des espaces de noms et des noms d'étendue d'unités. En savoir plus sur ces [** ici **] (http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_Namespaces_with_Delphi) –

+0

Malheureusement, oui! Bien que, dans un monde parfait, cela ne devrait pas arriver. Les deux noms de classe sont assez logiques et sensés - néanmoins ils s'affrontent. 'TMonitor' est un autre exemple. Cela arrive aussi dans les langues du monde réel. –