Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Bitmap in Resource einbauen (https://www.delphipraxis.net/128046-bitmap-resource-einbauen.html)

Poelser 23. Jan 2009 07:59


Bitmap in Resource einbauen
 
Moin,

ich habe in einem Programm für WinCE einen VirtualDrawTree, der Bitmaps einblenden soll. Der Code ist identisch zu einem Delphi-Programm (soll auch so sein!) und lädt so die Bitmaps:

Delphi-Quellcode:
            // Bitmap davor setzen
            tmpBmp := TBitmap.Create;
            if myData^.AnzahlBestellt = 0 then
              tmpName := 'SPINCTRL_0'
            else if myData^.AnzahlBestellt = 0.5 then
              tmpName := 'SPINCTRL_05'
            else if myData^.AnzahlBestellt = 1.0 then
              tmpName := 'SPINCTRL_1'
            else if myData^.AnzahlBestellt = 2.0 then
              tmpName := 'SPINCTRL_2'
            else
              tmpName := 'SPINCTRL_3';
            tmpBmp.LoadFromResourceName(HInstance, TmpName);
Die Bitmaps habe ich mir aus der Delphi-Resource mit dem XN Resource Editor als BMP gespeichert. Doch wie bekomme die in Lazarus nun in die Resource hinein, damit das funktioniert? Gibt's da irgendwo ein Wiki?

CU, der Poelser

rollstuhlfahrer 23. Jan 2009 13:32

Re: Bitmap in Resource einbauen
 
HI,

du musst Lazarus per Compiler-Anweisung noich sagen, dass er die Ressource-Datei noch in die EXE einbindet. Bei Delphi geht das mit {$R xxx.res}. Lazarus hat entweder das selbe oder {$L xxx.res}. Falls du nicht fündig wirst: In der neuen Unit wird das Formular per Direktive eingebunden. Das selbe ist dann noch für die Ressource-Datei zu machen.

Bernhard

JamesTKirk 2. Feb 2009 09:27

Re: Bitmap in Resource einbauen
 
Hi!

Ich weiß nicht, ob du's schon geschafft hast, aber unter Lazarus gibt es dafür zwei Möglichkeiten:

Entweder du arbeitest mit Windows Resource Dateien (nur für Win32/64/CE) oder du verwendest Lazarus Ressourcen (Cross-Platform).

Im ersten Fall erstellst du eine Resource Datei, die mit windres (in LAZARUS_DIR\fpc\VERSION\bin\i386-win32) kompiliert wird (macht FPC das auch automatisch?) und bindest die Resource mit {$R name.res} in der jeweiligen Unit ein. Der Zugriff auf die Ressourcen erfolgt wie in Delphi.

Solltest du die Lazarus Variante verwenden wollen, so verweise ich dich auf das Wiki von Lazarus zu diesem Thema.
Kurz gesagt: du erzeugst mit Hilfe des Tools lazres (Quelltext unter LAZARUS_DIR\tools\lazres.pas) eine Datei, die du per Include ({$I ...}) im initialization Abschnitt deiner Unit einbindest. Der Zugriff erfolgt dann über
Delphi-Quellcode:
tmpBmp.LoadFromLazarusResource(TmpName);
Gruß,
Sven


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