Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#5

Re: Bilder von DLL in ImageList

  Alt 12. Aug 2007, 22:35
Zitat von dominikkv:
Delphi-Quellcode:
procedure ImageToBitmap(Img: TImage);
//...

procedure TForm1.LoadImages;
var
  h :HINST;
  r :TResourceStream;
  j :TJpegImage;
  im: TImage;
  I: Integer;
  Namen: TStringList;
begin
  Namen := TStringList.Create;
  Namen.Add('bWdhTrackp'); Namen.Add('bWdhTrack');
  Namen.Add('bWdhp'); Namen.Add('bWdhNonep');
  Namen.Add('bWdhNone');

  h := LoadLibrary('pBilder.dll');
  if h <> 0 then
    for I := 0 to 4 do // <--<<
    begin
      r := TResourceStream.Create(h, Namen[I], 'Jpeg'); // <--<<
      j := TJpegImage.Create; // <--<<
      im := TImage.create(self); // <--<<
        try
          j.LoadFromStream(r);
          Im.Picture.Assign(j);
          ImageToBitmap(Im);
          test.Add(im.Picture.Bitmap);
        finally
          j.Free; // <--<<
          r.Free; // <--<<
          im.free; // <--<<
        end;
    end;
  FreeLibrary(h);
  Namen.free;
end;
Also, eine AV -Fehlerstelle kann ich jetzt so nicht sehen. Aber das du Objekte zu "Wegwerfartikeln" machst obwohl man es geschickter anstellen könnte...

Delphi-Quellcode:
procedure TForm1.LoadImages;
var
  h :HINST;
  r :TResourceStream;
  j :TJpegImage;
  im: TImage;
  I: Integer;
  Namen: TStringList;
begin
  Namen := TStringList.Create;
  Namen.Add('bWdhTrackp');
  Namen.Add('bWdhTrack');
  Namen.Add('bWdhp');
  Namen.Add('bWdhNonep');
  Namen.Add('bWdhNone');

  h := LoadLibrary('pBilder.dll');
  if h <> 0 then
  begin
    j := TJpegImage.Create;
    im := TImage.create(self);
    try
      for i := 0 to Namen.Count - 1 do
      begin
        r := TResourceStream.Create(h, Namen[I], 'Jpeg');
        try
          j.LoadFromStream(r);
          Im.Picture.Assign(j);
          ImageToBitmap(Im);
          test.Add(im.Picture.Bitmap, im.Picture.Bitmap);
        finally
          r.Free;
        end;
      end;
    finally
      j.Free;
      im.free;
    end;
  end;
  FreeLibrary(h);

  Namen.free;
end;
(nur mal so ins blaue getippt)

Hänge doch mal das Projekt als Zip an ,dann könnte man mal nachgucken.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat