![]() |
FireMonkeyMobile mit externen .jpgs
Hallo,
bisher habe ich unter Projekt/Bereitstellung die .jpg- und mp3-Dateien mit assets\internal geparkt. Bei 50 MB streikt aber XE 5, bzw. Android. Ich habe wohl wieder die falschen Suchbegriffe verwendet um zu erfahren mit welchem Code (assets\external ?) die Dateien in einen externen Ordner ausgelagert und automatisch mit in die App eingebunden werden können. Kann jemand bitte helfen? |
AW: FireMonkeyMobile mit externen .jpgs
Nur so am Rande: Wenn du die Dateien unter assert/internal anlegst, dann sind die auf dem Device danach doppelt vorhanden.
Wenn das Paket zu groß wird, dann wirst du die zusätzlichen Dateien von der Anwendung nachladen müssen. Also ab mit den Daten in die Cloud und dann von dort laden. |
AW: FireMonkeyMobile mit externen .jpgs
Liste der Anhänge anzeigen (Anzahl: 2)
Danke für die "pauschalen" Hinweise, Sir Rufo.
Ich stehe aber leider weiterhin im dunkeln. (Das liegt natürlich an mir). Ich habe mich unklar ausgedrückt: Nur die .mp3-Files wurden unter assert/internal geparkt. Die .jpgs werden über TImage/MultiResBitmap eingepflegt (siehe Bilder) Anhang 44774Anhang 44775. Im VCL konnte ich den File-Ordner einfach unter Win32/Debug bereitstellen und die Exe griff drauf zu. Unter FireMonkeyMobile weiß ich nicht, wo dieser Ordner platziert werden muss. Etwa unter Android/Release/...? Und wie /wo anstelle von assert/internal der Zugriff auf die externe Datei als Programmzeile o. ä. hinterlegt werden muss. Unter der MultiResBitmapForm (picta.jpg) wird ja zwangsläufig das File "inhaliert" und kostet App-Speicher. Ohne Cloud werden beim App-download von GooglePlay im internen Speicher ganze Datein-Batterien angelegt, auf die das eigentliche Progamm zugreift. Sowas würde ich gern selber machen (können). |
AW: FireMonkeyMobile mit externen .jpgs
Diese .mp3 und .jpg Dateien sind ja ein fester Bestandteil deiner Anwendung und sollen auch nicht vom Anwender bearbeitet werden.
Somit sind das also Ressourcen der Anwendung. Wenn ich eine normale Windows-Anwendung entwickle, dann habe ich in meinem Projekt-Ordner einen Ordner res. In diesem Ordner kommen alle diese Dateien hinein. Bei den Build-Ereignissen läuft dann ein Kopiervorgang, der mir diesen gesamten res Ordner in den Augabepfad kopiert.
Code:
Schon habe ich diese Dateien im Ordner .\res relativ zum Anwendungs-Verzeichnis stehen.
XCOPY /S/E/Y/I "$(PROJECTDIR)\res" "$(OUTPUTDIR)\res"
Dies ist die Vorgehensweise ohne Remote (ausführen direkt auf der Entwicklungsmaschine Win32/Win64). Kommt Remote ins Spiel muss man diese Dateien über den Bereitstellungs-Manager verteilen (eine einheitliche Vorgehensweise wäre hier wünschenswert ...). Und dort ticken die Uhren für jede Plattform etwas anders. Wie die ungefähr ticken, kann man sich in jedem iOS, Android Projekt anschauen (siehe ![]() Bei Android kommen die in den Remote-Pfad res\drawable-<Geräte-Auflösung>\ und bei iOS befinden die sich in dem Remote-Pfad .\. Und was EMba da ablegt, das kann ich auch. In den Sourcen schaut man dann nach, wie man zur Laufzeit an diese Pfade kommt und greift dann einfach darauf zu. Wenn man es ganz genau wissen will, dann schaut man in der Dokumentation (SDK) des Betriebssystems nach, wie da was wie behandelt wird. Die .mp3 Dateien sind allerdings nicht von der Auflösung abhängig, darum würde ich diese unter Android auch nicht in so einen res\drawable-<Geräte-Auflösung> Ordner packen (die sind ja nicht drawable) ;) |
AW: FireMonkeyMobile mit externen .jpgs
Zitat:
|
AW: FireMonkeyMobile mit externen .jpgs
Zitat:
|
AW: FireMonkeyMobile mit externen .jpgs
Zitat:
Siehe Skype ... die laden die Emoticons auch nach ... keine Verbindung, keine Emoticons sondern einfach nur ein gräuliches Bildchen als Platzhalter |
AW: FireMonkeyMobile mit externen .jpgs
Zitat:
|
AW: FireMonkeyMobile mit externen .jpgs
Erst einmal vielen Dank an alle.
Ungelöst bleibt für mich allerdings die Frage, wie ich die .jpgs in den Images (TImages)anders als über MultiResBitmap zur Anzeige bringen kann (siehe oben). Ich kenne keine andere Methode. Damit stecken die jpgs im Programm und nützen nix im separaten Ordner - oder? |
AW: FireMonkeyMobile mit externen .jpgs
Schau doch ob du irgendwo im Zusammenhang zwischen
Delphi-Quellcode:
und
TImage
Delphi-Quellcode:
ein
TBitmap
Delphi-Quellcode:
findest.
LoadFromFile
Dann sollte der nächste Schritt klar sein |
AW: FireMonkeyMobile mit externen .jpgs
Hmm..., ich glaube, ich sollte mich endlich mal mit dem Original, nämlich Android Studio, beschäftigen. Zumindest bedarf es dort keiner teuren Upgrades um nicht wie mit XE5 bei Android 4 ausgebremst zu werden. Mit Android 5 ff. läuft nix mehr.
Und für MultiResBitmap bzw. jpgs im separaten Ordner vermute ich dort auch eine Lösung. Mal sehen... |
AW: FireMonkeyMobile mit externen .jpgs
Aber da musst du auch die Dokumentation lesen.
So wie bei Delphi -> ![]() Da schreit es einen an: Zitat:
|
AW: FireMonkeyMobile mit externen .jpgs
Hallo Sir Rufo,
Zitat:
Bei mir klappt das nur mit:
Delphi-Quellcode:
Das Problem mit den auszulagernden Dateien ist auch noch nicht kleiner geworden. Mit dem Bereitstellungs-Manager kann ich alle gewünschen Dateien zwar in jeden beliebigen Ordner (also auch res) ablegen. Die Compilierung endet aber immer mit
iv.Tag := iv.Tag+1;
iv.Bitmap.Assign(Image1.MultiResBitmap.items[iv.tag].bitmap); [PAClient Fehler] "paclient" exited with code 1. = E0001 Ungültige Option. So kommt die App also nie im Ziel an. Deine Hilfe "... XCOPY /S/E/Y/I "$(PROJECTDIR)\res" "$(OUTPUTDIR)\res" </div> </div> </div>Schon habe ich diese Dateien im Ordner *.\res* relativ zum Anwendungs-Verzeichnis stehen." sieht mir auch nicht nach Delphi aus. Es bleibt also noch ein Rätsel für mich, wo ich ansetzen muss, um einen separaten Datenordner a) zu erzeugen b) ihn ins Programm einzubinden und c) am Ziel automatisch zu laden. Der res-Ordner allein scheint das Problem nicht zu lösen. Bitte nicht böse sein, wenn ich deine aufwändige Hilfe bisher nicht richtig deuten konnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz