I don't think theres a fast way of doing this, but you could try locking the shadow texture and editing it pixel by pixel. It should look something like this asuming you use 32bit color:
[pascal]
var
LRect: TD3DLocked_Rect;
x, y, Distance: Integer;
SrcPtr: Pointer;
begin
if Image.Lock(0,LRect)<> 0 then//texture lock and error check, Image is TAGFimage - the shadow texture
begin
//TODO: finalise everything
ShowMessage('Texture lock failed!')
Application.Terminate();
Exit;
end;

for y:= 0 to ImageHeight-1 do
begin
SrcPtr:= Pointer(Integer(LRect.Bits) +Integer(LRect.Pitch * y));//Get the pointer to the pixel at 0,y coordinates
for x:= 0 to ImageWidth-1 do
begin
//todo: find pixels at x,y Distance to the nearest light
if Distance>245 then // asuming 245 this is the farthest the light reaches
LongWord(SrcPtr^):=LongWord(245 shl 24)//if the point is far from the light then make it black with some transparency
else LongWord(SrcPtr^):=LongWord(distance shl 24);//here we only set alpha leaveing rgb on 0
Inc(Integer(SrcPtr), 4);//move the pointer to the next pixel
end;
end;
image.Unlock(0);//Don't forget to unlock the texture
end
[/pascal]
Warning: not tested.