View Full Version : ذخیره فایل تصویر در DLL  و فراخوانی آن در TImage
  
seyed_farid
دوشنبه 31 خرداد 1400, 00:45 صبح
با سلام
چطور میشه با استفاده از ریسورس ، فایل تصویر PNG را در DLL ذخیره کرد و در برنامه آن تصویر را در Image لود کرد؟
خیلی گشتم و چیزهایی پیدا کردم ولی هیچکدوم به انجام نرسید.
seyed_farid
شنبه 05 تیر 1400, 12:54 عصر
function LoadImageResource(Module: NativeUInt; const ResName: string): TPNGGraphic;
    var
      Strm: TResourceStream;
    begin
      Strm := TResourceStream.Create(Module, ResName, RT_RCDATA);
      try
        Result := TPNGGraphic.Create;
        try
          Result.LoadFromStream(Strm);
        except
          on E : Exception do
          begin
           ShowMessage('Error::: ' + E.message);
          Result.Free;
          raise;
         end; 
        end;
      finally
        Strm.Free;
      end;
    end;
استفاده:
Image1.Picture.Graphic.Assign(LoadImageResource(Lo adLibrary(PChar('DLL.dll')),Edit1.Text));
 مشکل این کد چیه بنظرتون؟؟؟
seyed_farid
یک شنبه 13 تیر 1400, 13:13 عصر
دوستان کسی کار نکرده به این شکل؟:افسرده::متفکر:
چرا سایت اینقدر سوت و کور شده :ناراحت:
hp1361
چهارشنبه 16 تیر 1400, 10:20 صبح
دوستان کسی کار نکرده به این شکل؟:افسرده::متفکر:
چرا سایت اینقدر سوت و کور شده :ناراحت:
سلام
از این کد استفاده کنید
uses
  Vcl.Imaging.pngimage;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  Stream: TStream;
  MyPng: TPngImage;
  gv_res: THandle;
begin
  gv_res := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'DllProject.dll')); { Load DLL }
  Stream := TResourceStream.Create(gv_res, 'SIGN', 'PNG');
  Try
    MyPng := TPngImage.Create;
    Try
      MyPng.LoadFromStream(Stream);
      Image1.Picture.Assign(MyPng);
    Finally
      MyPng.Free;
    end;
  Finally
    Stream.Free;
  end;
end;
منبع : 
https://www.programmersought.com/article/87751312991/
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.