I'm not at home now but the code is something like this:
[pascal]
...
// altering the imagelist
showmessage(inttostr(DXImageList1.Items[0].patternwidth));
// it shows 100 like it is declared as default in the imagelist
DXImageList1.Items[0].patternwidth := 50;
DXImageList1.Items[0].patternheight := 50;
showmessage(inttostr(DXImageList1.Items[0].patternwidth));
// it shows 50 like I changed it
// end of altering imagelist

// creating new sprites
...
with playersprite do
image := DXImageList1.Items[0];
width := DXImageList1.Items[0].patternwidth;
height := DXImageList1.Items[0].patternwidth;
x := 100;
y := 100;
...
end;
[/pascal]

But in runtime the images stay at patternwidth and height of 100x100.
Maybe there is something missing in the code. Telling to actualy use the new values,...?