Bitmap in VirtualDrawTree

Rund um die LCL und andere Komponenten
Antworten
Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Bitmap in VirtualDrawTree

Beitrag von Poelser »

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:

Code: Alles auswählen

 
  // 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

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Bitmap in VirtualDrawTree

Beitrag von Hitman »

Einfacher wäre wohl, du bindest eben die resource Datei wieder ein, anstatt das Bitmap daraus zu extrahieren.

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Bitmap in VirtualDrawTree

Beitrag von Poelser »

Hitman hat geschrieben:Einfacher wäre wohl, du bindest eben die resource Datei wieder ein, anstatt das Bitmap daraus zu extrahieren.
Hmmm, irgendwie scheint mir die Erfahrung damit zu fehlen :oops:

Das habe ich bis jetzt hinbekommen, auch wenn's ganz mühselig im Netz zu finden war: Im Tools-Verzeichnis eine lazre.exe bauen. Mit der habe ich dann eine Datei "myicons.lrs" erzeugen können, in der mit z.B. LazarusResources.Add('SPINCTRL_0','BMP',[... tatsächlich die Bildaten zu finden sind. In der Unit, die diese Bilder braucht, ist in der Initialization {$I myicons.lrs} eingebunden.

Beim Compilieren wird das auch anstandslos verarbeitet, aber zur Laufzeit sagt er mir bei tmpBmp.LoadFromResourceName(HInstance, TmpName); "EResNotFound with message; Resource "SPINCTRL_0" not found". Irgendwie gerate ich von einer Mine auf die nächste :(

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: Bitmap in VirtualDrawTree

Beitrag von Hitman »

Eine .res Datei bindest du genau ein wie in Delphi ... {$r meinedatei.res}

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Bitmap in VirtualDrawTree

Beitrag von Poelser »

Schrub ich doch: "ist in der Initialization {$I myicons.lrs} eingebunden" :wink:

Trotzdem bekomme ich den Fehler, "SPINCTRL_0" kann nicht gefunden werden...

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Bitmap in VirtualDrawTree

Beitrag von Poelser »

Holla, nun hab' ich's doch tatsächlich selbst gefunden :mrgreen:

Statt

tmpBmp.LoadFromResourceName(HInstance, TmpName);

tut's

tmpBmp.LoadFromLazarusResource(TmpName);

Und das ist hier http://wiki.lazarus.freepascal.org/Lazarus_Resources" onclick="window.open(this.href);return false; beschrieben.

CU, der Poelser

Antworten