Du machst es einem Menschen mit Rot/Grün-Schwäche aber echt schwer...
... und doch zu kompliziert. Da du nur eine Größe für die Bilder hast, geht es auch einfacher:
Delphi-Quellcode:
procedure TForm1.LoadCustomImage(const Path, ImageName: string);
var
index: Integer;
fileName: string;
begin
fileName := ExtractFilePath(ParamStr(0)) + Path + '\' + ImageName + '.png';
if not FileExists(fileName) then
Exit;
index := Images.GetIndexByName(ImageName);
if (index = -1) then
Exit;
Images.Images[index].SourceImages[0].Image.LoadFromFile(fileName); // ersetzt das Source-Image
Images.Images[index].Change; // aktualisiert die VirtualImageList, die auch gleich das Disabled-Image erneuert
end;