SD カードを参照し、ディレクトリとファイルを選択し、txt ファイルを Delphi XE5 で作成した Android アプリケーションにロードしたいと考えています。
このための標準的なコンポーネントまたはメソッドはありますか? OpedFileDialog のような?
SD カードを参照し、ディレクトリとファイルを選択し、txt ファイルを Delphi XE5 で作成した Android アプリケーションにロードしたいと考えています。
このための標準的なコンポーネントまたはメソッドはありますか? OpedFileDialog のような?
TOpenFileDialog
Android に相当するものはありません。これはオペレーティング システムの一部ではなく、Android を対象とする場合、コンポーネント パレットからは利用できません。
Dialogs
これは、デザイナーでフォームを表示し、コンポーネント パレットのタブを確認することで確認できます。すべてのコンポーネントが無効になっています。つまり、対象のプラットフォームでは使用できません。それらの上にマウスを置くと、Win32、Win64、および OS X で使用できるが、iOS または Android で使用できないことを示します。
ディレクトリとファイル名を取得するために で利用できる機能を使用して、 に基づいて独自のビルドをいつでも作成できTForm
ます。ファイル名を取得したら、それをロードする機能は簡単で、いくつかの方法で利用できます - 以下にそのいくつかを示します。TPopup
IOUtils.TPath
TFile.ReadAllLines
(再び からIOUtils
)TStringList.LoadFromFile
TFileStream.LoadFromFile
TMemo.Lines.LoadFromFile
を使用TStringList
して、TStringList.loadFromFile(file);
procedure TForm1.Button1Click(Sender: TObject);
var
TextFile : TStringList;
FileName : string;
begin
try
textFile := TStringList.Create;
try
{$IFDEF ANDROID}//if the operative system is Android
FileName := Format('%smyFile.txt',[GetHomePath]);
{$ENDIF ANDROID}
{$IFDEF WIN32}
FileName := Format('%smyFile.txt',[ExtractFilePath(ParamStr(0))]);
{$ENDIF WIN32}
if FileExists(FileName) then begin
textFile.LoadFromFile(FileName); //load the file in TStringList
showmessage(textfile.Text);//there is the text
end
else begin showMessage('File not exists, Create New File');
TextFile.Text := 'There is a new File (Here the contents)';
TextFile.SaveToFile(FileName);//create a new file from a TStringList
end;
finally
textFile.Free;
end;
except
on E : Exception do ShowMessage('ClassError: '+e.ClassName+#13#13+'Message: '+e.Message);
end;
end;