Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Bild einbinden (https://www.delphipraxis.net/167402-bild-einbinden.html)

mat72 28. Mär 2012 08:51

Delphi-Version: 5

Bild einbinden
 
Hallo,
ich habe mein Programm jetzt soweit fertig. Leider wird die exe immer größer, da ich auf jedem Formular ein Logo einblende.
Ist es möglich das Logo direkt aus dem Verzeichnis zu laden?
Gesucht habe ich danach und das was ich gefunden habe, hat nicht funktioniert bzw ich habe es nicht ganz verstanden.
Ich habe es so versucht, nur das Bild wird leider nicht angezeigt.
Delphi-Quellcode:
procedure TForm1.Image2Click(Sender: TObject);
begin
   Image1.Picture.LoadFromFile('.\logo.bmp');
end;
Vielen Dank.
Gruß
Mat

Progman 28. Mär 2012 08:57

AW: Bild einbinden
 
Wenn logo.bmp im gleichen Verzeichnis ist, dann lass einfach das '.\' weg. Dann müsste es klappen.

mjustin 28. Mär 2012 09:04

AW: Bild einbinden
 
Zitat:

Zitat von Progman (Beitrag 1159033)
Wenn logo.bmp im gleichen Verzeichnis ist, dann lass einfach das '.\' weg. Dann müsste es klappen.

Besonders wenn man berücksichtigt, dass '.\' bedeutet 'im aktuellen Verzeichnis' ;)

Da sich das aktuelle Verzeichnis ändern kann, ist es zum Beispiel möglich, über ParamStr(0) den Pfad zum aktuellen Programm zu ermitteln und die Position des relativen Ordners anzuhängen, z.B. durch eine Variable oder

Delphi-Quellcode:
function BilderVerzeichnis: string;
begin
 Result := ExtractFilePath(ParamStr(0)) + 'images/';
end;
Und dann

Delphi-Quellcode:
Bild1Path := BilderVerzeichnis + 'bild1.png';

himitsu 28. Mär 2012 09:10

AW: Bild einbinden
 
Delphi Windows kennt
Delphi-Quellcode:
.\
.
Es stimmt aber nicht mit dem Programmverzeichnis überein, wenn das aktuelle Arbeitsverzeichnis nicht dem Programmverzeichnis übereinstimmt.

Relative Pade sind böse.
Verwende nur absolute Pfade.

Delphi-Quellcode:
ExtactFilePath(ParamStr(0))
oder
Delphi-Quellcode:
ExtactFilePath(Application.ExeName)
geben den Programmpfad zurück.
In der DP (Forensuche) lassen sich bestimmt genügend Beispiele finden.
PS: Das Problem haben/hatten viele, es wurde also schon oft besprochen.

DeddyH 28. Mär 2012 09:38

AW: Bild einbinden
 
Man könnte das Bild auch einmalig in die Ressourcen packen und in jedem Image von dort laden, dann kann einem der Pfad egal sein.

mat72 28. Mär 2012 10:16

AW: Bild einbinden
 
Hallo Detlef,
das wäre denke ich das beste. Könntest du mir bitte mitteilen, wie ich das am einfachsten machen kann?
Danke.
Gruß
mat

DeddyH 28. Mär 2012 10:37

AW: Bild einbinden
 
http://www.delphipraxis.net/143899-r...erstellen.html, ein Beispiel unter vielen. IIRC kann man in aktuellen Delphi-Versionen das Bild aber auch einfach über die Projektverwaltung hinzufügen (per Drag&Drop auf das Projekt ziehen).

mat72 28. Mär 2012 11:58

AW: Bild einbinden
 
Hallo,
die DLL habe ich erstellt. Mit etwas suchen und lesen, habe ich es geschafft.
Wie bekomme ich die DLL jetzt in mein Projekt so eingebunden, dass das Logo angezeigt wird?

DeddyH 28. Mär 2012 12:21

AW: Bild einbinden
 
Muss es eine DLL sein? Du kannst das eine Bild doch genauso gut in die Exe packen. Naja, einerlei, mit einem TResourceStream kannst Du das Bild relativ einfach aus der Ressource laden und mit LoadFromStream dann in die Grafik holen.

Andreas L. 28. Mär 2012 12:43

AW: Bild einbinden
 
Zitat:

logo.bmp
Wenn du das Bild ein einem anderen Format speicherst z. B. PNG wird die Dateigröße und somit auch die Exe-Größe um einiges kleiner. Dann kannst du dir den Umweg über Ressourcen oder externe Dateien sparen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Seite 1 von 2  1 2      

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