Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bilder aus einer externen Datei laden (https://www.delphipraxis.net/144156-bilder-aus-einer-externen-datei-laden.html)

himitsu 1. Dez 2009 15:47

Re: Bilder aus einer externen Datei laden
 
hierbei sollte die Bitmap-Variable inizialisiert sein

entweder die übergebene Variable steht auf NIL oder sie enthält ein gültiges Bitmap.

Whatever 1. Dez 2009 16:10

Re: Bilder aus einer externen Datei laden
 
Hm....irgendwie versteh ichs nicht....

Andreas L. 1. Dez 2009 16:17

Re: Bilder aus einer externen Datei laden
 
Delphi-Quellcode:
var
  bmp: TBitMap;
begin
  bmp := TBitmap.Create;
  try
    //Bild mit dem Index 0 in bmp laden
    GetCard(0, bmp);
    //irgendwas mit bmp machen, z. B.
    Image1.Picture.Bitmap.Assign(bmp);
  finally
    bmp.Free;
  end;
end;

Whatever 1. Dez 2009 16:34

Re: Bilder aus einer externen Datei laden
 
Das interessante ist ja, dass es scheinbar nicht daran liegt :gruebel:

himitsu 1. Dez 2009 17:02

Re: Bilder aus einer externen Datei laden
 
Zitat:

Zitat von Andreas L.
Delphi-Quellcode:
var
  bmp: TBitMap;
begin
  bmp := TBitmap.Create;
  try
    //Bild mit dem Index 0 in bmp laden
    GetCard(0, bmp);
    //irgendwas mit bmp machen, z. B.
    Image1.Picture.Bitmap.Assign(bmp);
  finally
    bmp.Free;
  end;
end;

oder eben
Delphi-Quellcode:
var
  bmp: TBitMap;
begin
  bmp := nil;
  try
    //Bild mit dem Index 0 in bmp laden
    GetCard(0, bmp);
    //irgendwas mit bmp machen, z. B.
    Image1.Picture.Bitmap.Assign(bmp);
  finally
    bmp.Free;
  end;
end;
Zitat:

Zitat von Whatever
Das interessante ist ja, dass es scheinbar nicht daran liegt :gruebel:

Dann gibt es da etwas Pratisches, weches sich Debuggen nennt.

- man legen einen Haltepunkt (F5) an den Anfang dieser Prozedur
- starte sas Programm (F9)
- und geht dann mit F7 oder F8 schrittweise weiter
- und sage uns dann wo genau es knallt und kann gleichzeitig selber mal schauen was eventuell schief läuft

Whatever 1. Dez 2009 17:08

Re: Bilder aus einer externen Datei laden
 
Der Fehler sitzt in dieser Zeile:
Delphi-Quellcode:
r := TResourceStream.CreateFromID(h, CardIndex, 'Bitmap');
Nen BP musste ich dafür aber nicht setzen da die Exception einen sowieso immer an die jeweilige stelle wirft...
Das mit dem Initialisieren verhindert diese auch nicht.
:gruebel:

himitsu 1. Dez 2009 17:11

Re: Bilder aus einer externen Datei laden
 
Wie genau heißt denn die Exception?

So wie es aussieht, wird wohl die Resource nicht gefunden. :gruebel:

Whatever 1. Dez 2009 17:19

Re: Bilder aus einer externen Datei laden
 
Eine Zugriffsverletzung. Also die DLL wird auf jeden Fall gefunden, aber die Ressource in ihr wohl nicht, was sich an der Adresse, die nicht gelesen werden kann sehen lässt.(00000002 für Ressource 2; 00000003 für Ressource 3; usw.)
Aber warum werden diese nicht gefunden.... Ich habe mir meine DLL nochmal mit einem Programm angesehen und.... naja die Ressourcen liegen an ihren Plätzen...
:gruebel:

himitsu 1. Dez 2009 18:08

Re: Bilder aus einer externen Datei laden
 
schau einfach mal, was alles in der DLL drin ist
Delphi-Quellcode:
uses Types;

function EnumResTypeProc(hModule: THandle; lpszType: PChar; lParam: Integer): LongBool; StdCall;
var
  arr: ^TStringDynArray absolute lParam;
begin
  SetLength(arr^, Length(arr^) + 1);
  if Cardinal(lpszType) > $FFFF then arr^[High(arr^)] := lpszType
  else arr^[High(arr^)] := Format('#%d', [Integer(lpszType)]);
  Result := True;
end;

function EnumResNameProc(hModule: THandle; lpszType, lpszName: PChar; lParam: Integer): LongBool; StdCall;
begin
  TMemo(lParam).Lines.Add(lpszType + ' ' + lpszName);
  Result := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  h: THandle;
  i: Integer;
  ResTypes: TStringDynArray;
begin
  h := HInstance; // hier dein DLL-Handle setzen
  EnumResourceTypes(h, @EnumResTypeProc, Integer(@ResTypes));
  for i := 0 to High(ResTypes) do
    EnumResourceNames(h, PChar(ResTypes[i]), @EnumResNameProc, Integer(Memo1));
end;
Memo1 = TMemo

Whatever 1. Dez 2009 18:36

Re: Bilder aus einer externen Datei laden
 
Wow vielen Dank!! :shock:
Zitat:

#10 DVCLAL
#10 PACKAGEINFO
Das ist in der DLL...Aber...Wo sind meine Bilder


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.
Seite 2 von 4     12 34      

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