2017-08-07 68 views
1

我需要存儲從相機拍攝的照片,我正在嘗試使用您可以在下面找到的代碼。Delphi android無法使用TPath

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

特別是變量的名稱表示:

  • ImagePhoto:包含拍攝照片一個的TImage
  • getNewName:返回像filename.bmp一個字符串的函數

我在使用條款中包含了System.IOUtils,但TPath無法正常工作。當我按下Ctrl鍵,我點擊TPATH IDE中打開這個

TPath = class(TCustomPath) 

,這就是FMX.Objects裏面,不是System.IOUtils!我怎樣才能解決這個問題?我正在使用德爾福東京。

基本上我需要知道如何指定我需要IOUtils的TPath。

+0

在C++中有命名空間,他們可以輕鬆解決這個問題。 Delphi有這樣的東西嗎?順便說一句,我不知道他們爲什麼把兩個不同的單位相同的名稱... –

+1

您需要在(!)FMX.Objects單位後聲明System.IOUtils。 – iamjoosy

+0

該問題應該包含編譯器錯誤。這些細節很重要。你讀過錯誤信息了嗎? –

回答

4

似乎是FMX.Objects出現在用法子句中的System.IOUtil之後。要麼改變或限定調用TPATH

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

所以基本上Delphi的聲明單位的順序很重要? –

+0

@RaffaeleRossi是的,但您也可以利用名稱空間和單位範圍名稱。閱讀更多關於[** here **](http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_Namespaces_with_Delphi) –

+0

不幸的是,是的!儘管在完美的世界中,它不應該發生。這兩個類名都很合理和合理 - 但它們相互衝突。另一個例子是「TMonitor」。這也發生在現實世界的語言中。 –