AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datein zur Laufzeit laden

Ein Thema von XXcD · begonnen am 23. Aug 2016 · letzter Beitrag vom 25. Aug 2016
Antwort Antwort
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

Datein zur Laufzeit laden

  Alt 23. Aug 2016, 17:05
Hallo,

ich habe ein Problem Datein in iOS zur Laufzeit zu laden.
Habe das ganze mit einem Bitmap und Testweise auch mit einer Textdatei probiert.

Delphi-Quellcode:
      image:=fmx.graphics.tbitmap.CreateFromFile(TPath.GetHomePath+'/Horizon_Background.bmp');
      try
      PaintBox1.Canvas.DrawBitmap(image, RectF(0,0,image.Width,image.Height), RectF(0,0,image.Width,image.Height), 255);
      finally
       image.Free;
      end;
Und die Textdatei:
      Memo1.Lines.Loadfromfile(TPath.GetHomePath+'/test.txt'); Ich bekomme beim Laden immer eine Fehlermeldung.
-Fehler beim Laden des Bitmaps
-...test.txt is no such file or directory

Weiß jemand wie man in Firemonkey die Datein laden kann?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datein zur Laufzeit laden

  Alt 23. Aug 2016, 17:16
Pfade verbinden besser so TPath.Combine(TPath.GetHomePath, 'test.txt')
Das achtet auf den "richtigen" Path-Delimiter und ob am "HomePath" schon ein / oder \ dran hängt.

"eigentlich" war es im Delphi mal so, dass xxxDir keinen abschließenden Delimiter besitzt und xxxPath besitzt einen, aber Boland/CodeGear/Embarcadero haben da manchmal bissl "Mist" gebaut und ihre eigenen Pläne nicht richtig durchgesetzt.

Und hat dein Programm auch Zugriff auf das HomePath-Verzeichnis?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Datein zur Laufzeit laden

  Alt 23. Aug 2016, 17:35
Ich habe das schon mit TPath.Combine(TPath.GetHomePath, 'test.txt') probiert, half leider auch nicht.

Falls ich wirklich kein Zugriff auf mein Home Verzeichnis haben sollte, wie kann ich das denn ändern?
Habs auch schon mit TPath.GetDocumentsPath und die Datein in StartUp/Documents kopiert, funktioniert aber auch nicht.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.898 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datein zur Laufzeit laden

  Alt 23. Aug 2016, 20:04
Bist du sicher das es wirklich da ist FileExists(...) ?

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Datein zur Laufzeit laden

  Alt 23. Aug 2016, 20:40
Ja ich bin mir sicher, dass die Datei da ist.

Konnte jetzt eine Textdatei laden die sich im Documents Ordner befindet.
Leider lassen sich aber immer noch keine Bitmaps von da laden.

Die Datein habe ich überigens mit dem Bereitstellungsassistenten der Anwendung hinzugefügt.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.898 Beiträge
 
Delphi 12 Athens
 
#6

AW: Datein zur Laufzeit laden

  Alt 25. Aug 2016, 10:44
Versuchs mal damit:

Delphi-Quellcode:
function Bmp_LoadFromStream( const aStrm : TStream;
                              var bmp : TBitmap;
                              const sExt : String) : Int64;
var
  aBCM: TBitmapCodecManager;
  aBMS: TBitmapSurface;

begin
    Result := 0;

    if not Assigned(aStrm) or not Assigned(bmp) then
      Exit;

    aBCM := TBitmapCodecManager.Create;
    aBMS := TBitmapSurface.Create;

    try

      begin

          if aBCM.LoadFromStream( aStrm, aBMS ) then // This is no more reches
          begin
            Result := aStrm.Size; // the Operation was OK so far
          end else
          begin
            Result := 0; // the Operation was NOT OK
          end;

      end;

      if Result > 0 then
      begin // Copy was OK, so do Assign
        bmp.Assign( aBMS );
      end;

    finally
      aBMS.Free;
      aBCM.Free;
    end;

end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz