Laden bitmap aus einer Ressource-Datei zu Bild
wie lade ich ein bmp-Bild aus Ressource-Datei und laden Sie es in image1.Bild? Ich versuchte dies:
{$R resource.res}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
BitMap1 : TBitMap;
begin
BitMap1 := TBitMap.Create;
try
BitMap1.LoadFromResourceName(HInstance,'down');
Image1.Picture(BitMap1);
finally
BitMap1.Free;
end;
end;
aber hat nicht funktioniert. Danke!
Ich eine Datei erstellt. rc:
DOWN BMP DOWN.BMP
und ich zusammengestellt brcc32.exe:
brcc32.exe resource.rc
Ich implementiert die Ressource:
{$R resource.res}
aber nicht finden können, die Datei bmp.
Funktioniert es nicht, immer wieder ein Fehler, aber ich fand another code:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance, 'DOWN');
end;
Aber wenn ich auf das Bild verschwindet, warum? Dank
Dies ist der code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ExtCtrls;
type
TForm1 = class(TForm)
XPManifest1: TXPManifest;
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{$R RESOURCE.RES}
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance,'DOWN');
end;
end.
Was nicht funktioniert? Bekommen Sie Fehlermeldungen? Macht nichts angezeigt?
Eine Sache, die ich sehe, falsch richtigen Weg ist
Dann alles, was ich sagen kann ist, stellen Sie sicher, Sie haben gelegt, die Ressource hier.
Bitte überprüfen Sie die Ressource tatsächlich in die ausführbare Datei (im bitmap-Abschnitt) von einem Dritten resource viewer/compiler..
Eine Sache, die ich sehe, falsch richtigen Weg ist
Image1.Picture(BitMap1);
- Sollte dies nicht sein Image1.Picture.Assign(BitMap1);
?Dann alles, was ich sagen kann ist, stellen Sie sicher, Sie haben gelegt, die Ressource hier.
Bitte überprüfen Sie die Ressource tatsächlich in die ausführbare Datei (im bitmap-Abschnitt) von einem Dritten resource viewer/compiler..
LoadBitmap
, LoadImage
mit IMAGE_BITMAP, FindResource
mit RT_BITMAP, werden Sie alle suchen ein BITMAP Ressource. Wenn Sie nicht setzen es in eine 'bitmap' Abschnitt, Sie können nicht LoadFromResourceName
von TBitmap
. Glauben Sie mir!InformationsquelleAutor Giacomo King Patermo | 2012-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist, erstellen Sie die Ressource ordnungsgemäß in den ersten Platz. Beispiel (generische Delphi, da Sie nicht angegeben a-version) unten.
Datei:
Resource.rc
(schrecklicher name, BTW, und eine schreckliche resource name)Dann die Datei in der der code für den compiler zu verarbeiten:
Wenn Ihre Delphi-version nicht unterstützt die oben
{$R }
Richtlinie, entfernen Sie einfach dieresource.rc
Teil, und kompilieren Sie die Ressource aus einer Eingabeaufforderung in Ihrem Projekt-Ordner:Bmp.LoadFromResourceName(HInstance, 'bbabort');
in einem D2007 ausführbare Datei (Sie haben ein paar bitmaps standardmäßig), und zeichnen Sie dann die bitmap auf die form canvas ohne ein problem.seltsam. Ich hatte gerade ein Problem vor ein paar Wochen mit einer Ressource, die Namen scheinbar die groß-und Kleinschreibung (mit
SomeResource
gescheitert, es zu verändernSOMERESOURCE
gearbeitet, ohne sonstige änderungen). Es verwendet, um sein in der MSDN dokumentiert Ressource-Datei-format, aber das habe ich noch nicht überprüft, es im Alter. Ich werde sehen, ob ich es lokalisieren können, aber selbst wenn ist es egal, der obige code korrekt lädt die Ressource, während die original-Frage ist der code nicht. 🙂du hast Recht. Diese Einschränkung hat sich geändert (oder irgendwie anders in Delphi); be -
bbabort
hat in der Tat funktioniert jetzt. Ich werde entfernen Sie diesen Satz. Danke für die Korrektur. 🙂InformationsquelleAutor Ken White
In Delphi 10 oder höher können Sie auf die Ressource zu erstellen, gehen bis zu Menü Projekt
Projekt - > Ressourcen und Bilder
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Resources_and_Images
InformationsquelleAutor ShirleyCC