Hallo TurboMagic,
doch eigentlich schon
. Das war jetzt recht einfach, ein paar Stunden Arbeit und ich konnte mit der App die Dateien lesen und schreiben. Per Compiler-Anweisung schalte ich das öffnen/speichern der Datei zwischen Android und Windows als Ziel einfach um.
Code:
//---------------------------------------------------
// 27.08.2022
// V1.1967
// Android Ladefunktion eingefügt
//
procedure TForm1.BtnLadeCfgClick(Sender: TObject);
begin
// Lade Config File
//
// Windows
{$ifdef MSWINDOWS}
// Öffnen der Datei mit TOpenDialog
//
WindLoadConfig;
{$endif MSWINDOWS}
// Android
{$ifdef ANDROID}
TDocument.Open(
procedure (Document: TDocument)
begin
if Document <> nil then
try
// Debugausgabe
AddLine('Path: ' + Document.Path);
Addline('Anzahl Bytes: '+ IntToStr(High(Document.Read)) );
AddLine('Content: ' + IntToHex(Document.Read[0]));
// Datei prüfen und verarbeiten
//
AndroidGetConfig(Document.Read);
finally
Document.Free;
end;
end, '', '*/*');
{$endif ANDROID}
end; // Ende BtnLadeCfg
Klar nutze ich jetzt erstmal keine eigene "Mime Types" (damit habe ich mich noch nicht beschäftigt), und starte die Dateiauswahl mit "*/*", damit habe ich aber kein Problem. Meine Kunden sind geschulte Techniker, die wissen welche Datei-Endungen geöffnet werden können. Die erstellten Dateien von mir haben ein bestimmtes Header in den ersten Bytes. Passen die nicht wird die Datei nicht verarbeitet und es gibt eine passende Meldung.
Klar wäre es sauberer wenn dies einfach mit dem FMX TOpenDialog/TSaveDialog gemacht werden könnte, dazu müsste aber Embarcadero da mal Hand anlegen.
Thorsten