Detrox mal bitte nachdenken.
Guck dir mal den Code von turboPASCAL an. Ich hab dsa Gefühl du hast es nicht gemacht.
Delphi-Quellcode:
...
if AnsiLowerCase(FExt) = '.bmp' then
begin
Image.Picture.Assign(TBitmap(ImgStream));
Result := True;
end else
...
Dieser ganze Teil prüft auf den Typ und castet den Stream entsprechend.
Also bitte mal Posts, die dir auf den ersten Blick kompliziert erscheinen nicht übergehen.
Das Problem ist an sich schon gelöst.