Ca y est, ca marche ... en fait, il faut mettre un seek avant et après le "DecodeToStream".
Donc, pour ceux que ca intéresse, voici mon unité :
--------------------------------------------------------------
unit UseFull;
interface
Uses SysUtils, Classes, Graphics, Dialogs, IdCoderMIME;
function FileToMime(FileName: String): String;
procedure MimeToFile(MimeString: String; FileName: String);
procedure MimeToMemoryStream(Const MimeSring: String; var ms: TMemoryStream);
implementation
function FileToMime(FileName: String): String;
var fs: TFileStream;
begin
fs:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
with TIdEncoderMIME.Create(nil) do
begin
try
result := Encode(fs);
finally
Free;
end;
end;
finally
fs.Free;
end;
end;
procedure MimeToFile(MimeString: String; FileName: String);
var fs: TFileStream;
begin
try
fs := TFileStream.Create(FileName, fmCreate);
with TIdDecoderMIME.Create(nil) do
begin
try
DecodeToStream(MimeString, fs);
finally
Free;
end;
end;
finally
fs.Free;
end;
end;
procedure MimeToMemoryStream(Const MimeSring: String; var ms: TMemoryStream);
begin
try
ms.Seek(0, soFromBeginning);
with TIdDecoderMIME.Create(nil) do
begin
try
DecodeToStream(MimeSring, ms);
ms.Seek(0, soFromBeginning);
finally
Free;
end;
end;
except
end;
end;
end.
------------------------------------------------------------
------------------------------------------------------------
Voici maintenant mes appels aux fonctions :
-> D'un fichier au MIME ( marche bien !!! ):
FlatEdit11.Text := FileToMime('C:\FR.bmp');
-------------------------------------------------------------
-> D'un MIME à un fichier ( marche bien !!! ):
With fenetre_principale.XML_Language.ChildNodes.Nodes['language'].ChildNodes.Nodes['informations'].ChildNodes do
begin
MimeToFile(Nodes['flag'].Text, 'C:\Test__2.bmp');
end;
-------------------------------------------------------------
-> D'un MIME à un TMemoryStream ( Marche bien également !!! ):
var ms: TMemoryStream;
begin
try
ms := TMemoryStream.Create;
With fenetre_principale.XML_Language.ChildNodes.Nodes['language'].ChildNodes.Nodes['informations'].ChildNodes do
begin
MimeToMemoryStream(Nodes['flag'].text, ms);
Image14.Picture.Bitmap.LoadFromStream(ms);
Image14.Stretch := True;
end;
finally
ms.Free;
end;
------------------------------------------------------------
Voilà, en éspérant que ca pourra aider des personnes et merci à tous ( particulièrement à antp pour ses réponses )
a+