Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Grafik / Sound / Multimedia (https://www.delphipraxis.net/21-library-grafik-sound-multimedia/)
-   -   Delphi Bilder in DLL einbinden und aufrufen (https://www.delphipraxis.net/3837-bilder-dll-einbinden-und-aufrufen.html)

Darty 2. Apr 2003 00:48


Bilder in DLL einbinden und aufrufen
 
Hier möchte ich zeigen wie man Bilder in eine DLL einbindet und dieses dann auch aufruft.
Wir nehmen mal als Beispiel 3 Jpeg Bilder, mit den folgenden Namen Borland.jpg, Delphi.jpg, Foto.jpg.

Als erstes erstellen wir mit einem Text-Editor die Datei Bilder.rc in der dann folgendes steht:
Delphi-Quellcode:
BILD1 JPEG "Borland.jpg"
BILD2 JPEG "Delphi.jpg"
BILD3 JPEG "Foto.jpg"
Dann erstellen wir in Delphi eine DLL (Neu -> DLL). Der wird dann unter Bilder.dpr gespeichert.
In der steht soll dann folgendes stehen.
Delphi-Quellcode:
library Bilder;

{$R 'Bilder.res' 'Bilder.rc'}

begin
end.
Und dann dieses Projekt erzeugen. Dann hat man eine Bilder.dll erstellt.

Das Bild1.jpg in der DLL wird z.B. so aufgerufen:
Benötigt wird eine Image1. Und da es Jpeg ist muss unter Uses noch JPEG eingefügt werden.
Delphi-Quellcode:
var
  h :HINST;
  r :TResourceStream;
  j :TJpegImage;
  i :integer;
begin
  h := LoadLibrary('Bilder.dll');
  if h <> 0 then
  begin
    r := TResourceStream.Create(h, Bild1, 'Jpeg');
    j := TJpegImage.Create;
      try
        j.LoadFromStream(r);
        Image1.Picture.Bitmap.Assign(j);
      finally
        j.Free;
        r.Free;
      end;
  end;
  FreeLibrary(h);
end;
  else
    RaiseLastOSError();
end;
Nun sieht man Borland.jpg in der Image1. Genauso wird mit den anderen Bilder verfahren. Ist ein einfaches Beispiel bei der die Image1 mit den Bild aus der DLL gefüllt wird :)

[edit=Daniel B]Delphi-Tags gesetzt. MfG Daniel B.[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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