Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Resource in Designtime Package (https://www.delphipraxis.net/100809-resource-designtime-package.html)

backdraft 4. Okt 2007 09:29


Resource in Designtime Package
 
Hallo zusammen,

ich hab ein merkwürdiges Problem bei einem Package.

Ich habe eine Resourcedatei die ich in der Unit mit {$R *.res} einbinde.

Delphi-Quellcode:
initialization

  TextBitmap := TBitmap.Create;
  TextBitmap .LoadFromResourceName(HInstance, 'MEINBILD');
Wenn ich jetzt das Package in Delphi installieren möchte bekomme ich den Fehler, dass er das Bild "MEINBILD" nicht findet.
Über einen Resourceneditor habe ich mal in die BPL Datei reingesehen, da ist es drin auch schön unter BITMAP.

Was mache ich falsch?

Oliver

shmia 4. Okt 2007 09:47

Re: Resource in Designtime Package
 
Ist der Resourcentyp auch RT_BITMAP? (ansonsten klappt es nicht)

backdraft 4. Okt 2007 09:59

Re: Resource in Designtime Package
 
Zitat:

Zitat von shmia
Ist der Resourcentyp auch RT_BITMAP? (ansonsten klappt es nicht)

jo ist es, und im Resource Editor ist das BMP ja auch.

shmia 4. Okt 2007 10:17

Re: Resource in Designtime Package
 
Versuch mal:
Delphi-Quellcode:
if FindResource(HInstance, PChar('MEINBILD'), RT_BITMAP) = 0 then
   raise Exception.Create('Resource MEINBILD nicht gefunden');
Mit diesem Test sollte geklärt werden, ob die Resource wirklich im Package ist.

backdraft 4. Okt 2007 10:29

Re: Resource in Designtime Package
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von shmia
Versuch mal:
Delphi-Quellcode:
if FindResource(HInstance, PChar('MEINBILD'), RT_BITMAP) = 0 then
   raise Exception.Create('Resource MEINBILD nicht gefunden');
Mit diesem Test sollte geklärt werden, ob die Resource wirklich im Package ist.

Meldet die Exception, aber ... hier ein Import der BPL-Datei. Der Screenshot zeigt auf deb BITMAP-Teil beim importieren
Vlt gehts ja bei Packages anders?

shmia 4. Okt 2007 10:51

Re: Resource in Designtime Package
 
Dein Anhang beweisst aber nicht, dass da eine Bitmap-Resource mit dem Namen "MEINBILD" enthalten ist.
Hol dir mal den XN Resource Editor und schau damit rein:
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

backdraft 4. Okt 2007 11:08

Re: Resource in Designtime Package
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von shmia
Dein Anhang beweisst aber nicht, dass da eine Bitmap-Resource mit dem Namen "MEINBILD" enthalten ist.
Hol dir mal den XN Resource Editor und schau damit rein:
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

MeinBild war auch nur ein Pseudonym, das richtige Bild hab ich unterlegt mit dem Cursor (IBTVHEADERDESCBMP).
Tatsächlich zeigt der ResourceEditor von dir alle Bilder nicht an. Woran kann dass denn liegen?

Ich hab mal nen Shot vom Package und von der Resource Datei mitgeschickt.

Jetzt bin ich verwirrt...

stahli 4. Okt 2007 11:41

Re: Resource in Designtime Package
 
Bist Du sicher, dass der Compiler auch Deine Res-Datei findet?
Gib doch mal versuchsweise statt *.res den vollständigen Dateinamen an...

Stahli

backdraft 4. Okt 2007 12:01

Re: Resource in Designtime Package
 
Zitat:

Zitat von stahli
Bist Du sicher, dass der Compiler auch Deine Res-Datei findet?
Gib doch mal versuchsweise statt *.res den vollständigen Dateinamen an...

Stahli

hab ich schon alles probiert. auch nen namen den es nicht gibt, dann sagt er das auch.
in dem anderen resourceeditor seh ich sie ja auch ...

backdraft 4. Okt 2007 12:56

Re: Resource in Designtime Package
 
Kann es vielleicht an Delphi 2007 liegen?

uligerhardt 4. Okt 2007 12:57

Re: Resource in Designtime Package
 
Schuss ins Blaue: Vielleicht kommt Delphi mit der Art des Bitmaps nicht klar? Probier's doch mal mit einem "primitiveren" Bitmap - z.B. nur 16 Farben.

backdraft 4. Okt 2007 13:05

Re: Resource in Designtime Package
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von uligerhardt
Schuss ins Blaue: Vielleicht kommt Delphi mit der Art des Bitmaps nicht klar? Probier's doch mal mit einem "primitiveren" Bitmap - z.B. nur 16 Farben.

Hier ist die Resource Datei, es sind ja nur 16 Farben (4 bit).

Es fehlen ja auch sämtliche Anderen Resourcen, da sind ja noch viel mehr drin. Ich hab es sonst immer so gemacht, k.a. was da schief läuft.
Hab ich vielleicht was beim Package umgestellt?

backdraft 4. Okt 2007 13:25

Re: Resource in Designtime Package
 
Ich habe gerade mal, alles ausser die Unit aus dem Package gelöscht, dann geht es!?!
Was kann sowas verursachen?

stahli 4. Okt 2007 13:30

Re: Resource in Designtime Package
 
Zitat:

hab ich schon alles probiert. auch nen namen den es nicht gibt, dann sagt er das auch.
in dem anderen resourceeditor seh ich sie ja auch ...
Da solltest Du mal nachhaken...
Wenn Du {$R xyz.res} angibst und die Datei nicht existiert, sollte eigentlich schon der Compiler meckern und nicht erst das Programm zur Laufzeit...

Stahli

uligerhardt 4. Okt 2007 13:37

Re: Resource in Designtime Package
 
Zitat:

Zitat von backdraft
Ich habe gerade mal, alles ausser die Unit aus dem Package gelöscht, dann geht es!?!
Was kann sowas verursachen?

Hm, bei mir (BDS2006) geht's mit ner simplen VCL-App auch - zwei Biuttons, ein TImage und folgender Code:
Delphi-Quellcode:
unit MainF;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  ExtCtrls;

type
  TForm65 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form65: TForm65;

implementation

{$R *.dfm}
{$R iBTVHeader.res}

procedure TForm65.Button1Click(Sender: TObject);
begin
  if FindResource(HInstance, PChar('IBTVHEADERDESCBMP'), RT_BITMAP) = 0 then
    //raise Exception.Create('Resource MEINBILD nicht gefunden');
    ShowMessage('Resource MEINBILD nicht gefunden');
end;

procedure TForm65.Button2Click(Sender: TObject);
var
  TextBitmap: TBitmap;
begin
  TextBitmap := TBitmap.Create;
  TextBitmap.LoadFromResourceName(HInstance, 'IBTVHEADERDESCBMP');
  Image1.Picture.Assign(TextBitmap);
  TextBitmap.Free;
end;

end.
Versuche doch mal, dein Package soweit zu verkleinern wie möglich, ohne dass der Fehler verschwindet. Vielleicht merkst du ja dabei schon, wo's hakt. Anderenfalls poste dein Ergebnis mal.

backdraft 4. Okt 2007 13:39

Re: Resource in Designtime Package
 
Ich hab die Lösung. Durch rauswerfen habe ich die Unit gefunden, und diese enthielt nur eine Resource.

Eine andere Resourcedatei enthielt ein Bild namens iBERGRM_INF.
Wenn ich diese Resource mit in das Package gepackt habe, dann krachte es.
Ich habe die Resource nun umbenannt in IBERDIAGRAMM_INF. Jetzt geht es. Kann es sein, dass er sich an dem kleinen "i" vorne gestört hat?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz