![]() |
Bild aus Ressource laden - DesignTime geht, Laufzeit nicht
Problem vergleichbar mit dem hier:
![]() Jedenfalls kurze Fehlerbeschreibung: Ich hab ne eigene Kompo erstellt, die von tImage erbt und ein defaultbild laden sollte. Zur Designtime klappt es auch wunderbar. Aber beim start tritt ne Exception auf. Bin da echt überfragt. Meine Kompo: Ich erbe von timage. Im OnCreate der Kompo hab ich:
Delphi-Quellcode:
In der DPK der Kompo ist diese Ressource auch eingebunden mit
picture.Bitmap.LoadFromResourceName(HInstance, 'HINTERGRUND');
{$R 'KompoName.dcr'} Nun hab ich halt zu Testzwecken sauberes Projekt erstellt und platziere Kompo auf der Form. Passt alles wunderbar. promt wird die Hintergrundgrafik geladen, wie erwünscht. Sobald ich starte, kriege ich folgende Meldung: Zitat:
Was ich haben wollte: in meine Kompo ( Erbe von tImage ) eine default bitmap zu haben. Die darf dann zur DesignTime oder Laufzeit natürlich geändert werden. Über denkanstösse jeglicher Art bin ich dankbar. |
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
Also ich habe das jetzt ma eben schnell zusammen geklatscht und getestet. bei mir klappt es problemlos (design+runtime)
MyImage.pas:
Delphi-Quellcode:
MyImage.rc:
unit MyImage;
interface uses SysUtils, Classes, Controls, ExtCtrls; type TMyImage = class(TImage) private { Private-Deklarationen } protected { Protected-Deklarationen } public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; published { Published-Deklarationen } end; procedure Register; implementation {$R MyImage.res} procedure Register; begin RegisterComponents('Samples', [TMyImage]); end; constructor TMyImage.Create(AOwner: TComponent); begin inherited Create(AOwner); self.Picture.Bitmap.LoadFromResourceName(hInstance, 'DEFAULT_IMAGE'); end; end.
Delphi-Quellcode:
DEFAULT_IMAGE BITMAP "MyImage.bmp"
MyImage.pas erstellt, MyImage.rc erstellt, brcc32 MyImage.rc und danach dann die komponente über die ide installiert. kann sie problemlos verwenden. |
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
Hab jetzt genauso gemacht wie du gesagt hattest.
Und... es KLAPPT! Vielen Dank! Nur frag ich mich, wieso es ned gleich geklappt hat :/ |
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
poste doch ma deinen source. dann können wir uns das ja ma angucken ;)
|
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
Ich poste mal den konstructor. Hab da noch "paar" properties und Events, die aber keinen Einfluss haben dürften:
Delphi-Quellcode:
Die ressource hab ich mit dem Bild Editor von Delphi in die Datei "DGSpainter.dcr" gepackt, wo auch das Icon für die Kompo drin war.
constructor tDGSpainter.Create(AOwner: TComponent);
begin inherited Create(AOwner); // TODO: Create Height := 43; Width := 160; picture.Bitmap.LoadFromResourceName(HInstance, 'HINTERGRUND'); if not ( csDesigning In ComponentState ) then if fAutoCon then start; end; Ressource eingebunden im Package (dpk). Wie gesagt, zur DesignTime hat alles bestens funktioniert. Der Code ist derselbe wie deiner. Nur hab ich jetzt diese Bitmap in einer .res Datei, die ich in der DGSpainter.pas direkt einbinde. |
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
wo hast du folgendes plaziert?
Delphi-Quellcode:
bzw.
{$R DeineDatei.dcr}
Delphi-Quellcode:
{$R DeineDatei.res}
|
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
In der alten Version nirgens.
Das einbinden der ressource geschah über das Package. Also in der Delphi Package ( .dpk ) stand halt:
Delphi-Quellcode:
Jetzt hab ichs so gemacht wie vorgeschlagen, direkt unter implementation eine .res eingebunden und damit funktionierts wunderbar.
{$R 'DGSpainter.dcr'}
...sollte ich zur Sicherheit im dritten post etwas fetter dazuschreiben, dass problem gelöst ist? |
Re: Bild aus Ressource laden - DesignTime geht, Laufzeit nic
das dein Problem gelöst ist weiß ich, es ging um die Ergründung warum es bei dir ursprünglich nicht ging damit andere die es genauso machen gelöst bekommen und die Ursache finden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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