Grafiken in die exe einbinden



  • Hallo zusammen

    Ich habe mir ein Programm geschrieben in welchem ein paar Bilder (jpg) vorkommen. Im Moment sind die Pfads der Bildersouce hard-codiert. Wenn die exe nun auf einem anderen PC läuft müssen sich die Grafiken genau in diesem Pfad befinden. Gibt es eine möglichkeit diese Bilder in das Programm zu integrieren?

    Vielen Dank
    Dani



  • Such mal hier im Forum nach "Ressourcen" da war letzte Woche noch ein Thread drüber.



  • Warum nimmst du nicht eine Bildkomponente und lagerst die jps dort ein?



  • Original erstellt von medmed:
    Wenn die exe nun auf einem anderen PC läuft müssen sich die Grafiken genau in diesem Pfad befinden.

    Wenn sie sich in dem gleichen Verzeichnis befinden wie die Exe, dann ist das kein Problem, denn du brauchst keine Pfade:

    Image1->Picutre->Bitmap->LoadFromFile("Hase.bmp");
    

    zum Beispiel. Wenn du sie in einem Unterverzeichnis ablegst, dann geht das auch

    Image1->Picutre->Bitmap->LoadFromFile("Unterverzeichnis\\Hase.bmp");
    

    @Panzerechse: Das ist Resourcenverschwendung!



  • Sorry für die Abweichung vom ursprünglichen Thema, aber das kann so nicht stehenbleiben. 😉

    Original erstellt von WebFritzi:
    Wenn sie sich in dem gleichen Verzeichnis befinden wie die Exe, dann ist das kein Problem, denn du brauchst keine Pfade

    Das ist so nicht richtig. Es wird nicht im Programmverzeichnis gesucht sondern im "Arbeitsverzeichnis". Dieses kann zur Laufzeit aber beliebig verändert werden, wie es zB. bei Benutzung des OpenDialogs geschieht. Ausserdem kann das das Arbeitsverzeichnis auch schon beim Start, über die Einstellung "Ausführen in" einer Programmverknüpfung verändert werden.

    Man sollte deshalb nach Möglichkeit nie relative sondern stets absolute Pfade benutzen. Im aktuellen Fall also siehe ParamStr(0), TApplication::ExeName usw.



  • OK, hast recht. Das wusste ich bisher noch nicht. 🙄



  • Falls du unbedingt auf Pfade stehst, wende zusätzlich die "try-catch"-Anweisung an. Dies verringert die Absturzanfälligkeit deines Progs.



  • Eine Fehlerbehandlung zB. mit try/catch sollte man bei Dateioperationen ohnehin immer einsetzen. Denn auch bei Verwendung absoluter, korrekter Pfadangaben gibt es ja keine Garantie, dass die Datei auch tatsächlich geöffnet werden kann.


Anmelden zum Antworten