Nein, der Name der Grafik wird mitgespeichert und diesen Umstand mache ich mir zu Nutze.
Delphi-Quellcode:
// ------------------------------------------------------------ Procedur einem Schalter eine bestimmte Grafik zuzuweisen
procedure Tfrm_Main.gp_LoadPic(ListViewName : TsAlphaImageList; // ----------- Das ImageList, das umgestellt werden soll
ButtonName : TsSpeedButton; // -------- Der Schalter dessen Grafik geändert werden soll
InternName : String); // ----------------------- Der Name den das eingelagerte Bild hat
var I: Integer;
begin
for I := 0 to ListViewName.Items.Count - 1 do
begin
if ListViewName.Items[I].ImageName = InternName then
begin
ButtonName.ImageIndex := I;
end;
end;
end;
// ---------------------------------------------- Procedur um vorhanden Schalter-Grafiken in der ImageList auszutauschen
procedure Tfrm_Main.gp_Replays(InternName : String; // ------------------------ Der Name den das eingelagerte Bild hat
PicPath : String; // ------- Der Pfad, wo sich die zu ladenden Grafik-Datei befindet
PicName : String; // ------------------------- Der Name der zu ladenden Grafik-Datei
ListViewName : TsAlphaImageList); // ---------- Das ImageList, das umgestellt werden soll
var
I: Integer;
P: String;
begin
for I := 0 to ListViewName.Items.Count - 1 do
begin
if ListViewName.Items[I].ImageName = InternName then
begin
ListViewName.Delete(I);
ListViewName.LoadFromFile( PicPath + PicName);
Break;
end;
end;
end;
man könnte das auch als Function schreiben, um zu überprüfen, ob es wirklich geklappt hat.