I was in need to load the images for a TImageList (in this example TPngImageList) from the file system at runtime. To prevent reinventing the stupid work every time I just created a class helper. Here’s the code:

unit UPngImageHelper;

interface

uses
  PngImageList;
type
  TPngImageListHelper = class helper for TPngImageList
    function AddPngFromFile(AFileName: String):integer;
  end;

implementation

uses System.SysUtils, PngImage;
{ TPngImageListHelper }

function TPngImageListHelper.AddPngFromFile(AFileName: String):integer;
var
  png: TPngImage;
begin
  png := TPngImage.Create;
  try
    png.LoadFromFile(AFileName);
    Result := self.AddPng(png);
  finally
    FreeAndNil(png);
  end;
end;
end.

Usage:

uses UPngImageHelper;
//...
procedure TfrmMain.InitializeToolbar;
begin
  PngImageList1.Clear;
  PngImageList1.Width := 48;
  PngImageList1.Height := 48;

  Action1.ImageIndex:=PngImageList1.AddPngFromFile('images\1.png');
  ToolButton1.Action:=Action1;


  Action2.ImageIndex:=PngImageList1.AddPngFromFile('images\2.png');
  ToolButton2.Action:=Action2;

  Action3.ImageIndex:=PngImageList1.AddPngFromFile('images\3.png');
  ToolButton3.Action:=Action3;

  Action4.ImageIndex:=PngImageList1.AddPngFromFile('images\4.png');
  ToolButton4.Action:=Action4;
end;
Quick-Tipp: Load Images from file into ImageList
Markiert in:            

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.