Charge bitmap à partir de fichier de ressources pour l'image

comment puis-je charger une image bmp de fichier de ressources et de le charger dans image1.De l'image? J'ai essayé ceci:

{$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;

mais ne fonctionne pas. Merci!


J'ai créé un fichier. rc:

DOWN BMP DOWN.BMP 

et j'ai compilé avec brcc32.exe:

brcc32.exe resource.rc

J'ai mis en place la ressource:

{$R resource.res}

mais ne peut pas trouver le fichier bmp.


Il ne fonctionne pas, toujours une erreur, cependant j'ai trouvé un autre code:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   Image1.Picture.Bitmap.Handle := LoadBitmap(hInstance, 'DOWN');
end;

Mais quand je clique sur l'image disparaît, pourquoi? Grâce

C'est le 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.
  • Ce qui ne fonctionne pas? Êtes-vous d'obtenir des messages d'erreur? Ne fait rien apparaitre?
  • Une chose que je vois mal tout de suite est Image1.Picture(BitMap1); - Ne devrait-ce pas être Image1.Picture.Assign(BitMap1);?
  • J'ai essayé: Image1.Image.Attribuer(BitMap1); mais j'obtiens une erreur: Ressource introuvable.
  • Ensuite, tout ce que je peux dire, c'est assurez-vous que vous avez placé la ressource.
  • La ressource est placé correctement
  • il l'a fait. {$R resource.res}.
  • Veuillez vérifier que la ressource est en fait dans l'exécutable (dans une section bitmap) par un tiers des ressources de la visionneuse/compilateur..
  • Une façon rapide et sale à vérifier est de compiler avec ce que doit inclure l'image, vérifiez la taille du fichier, puis compilez à nouveau sans elle, et de comparer les tailles de fichier.
  • Vous connaissez votre .fichier rc est mal, n'est-ce pas (BITMAP <> BMP)?
  • Si je mets de l'image au lieu de BMP, le compilateur me donne une erreur: INVALID FORMAT BITMAP, donc je dois mettre BMP.
  • LoadBitmap, LoadImage avec IMAGE_BITMAP, FindResource avec RT_BITMAP, ceux-ci vont tous chercher une BITMAP ressource. Si vous ne le mettez pas dans un 'bitmap' section, vous ne pouvez pas utiliser LoadFromResourceName de TBitmap. Croyez-moi!
  • Je l'ai résolu par la conversion du fichier bmp à la couleur de l'échelle. Merci à tous.