uses Soap.EncdDecd; // DecodeStream
function TFrmMain.GetImgFromTxt(sPic:String):TMemoryStream;
var
xInSs: TStringStream;
xOutMs:TMemoryStream;
begin
if (sPic<>'') then
begin
xInSs:=TStringStream.Create(sPic); //jpg в baze64 из txt
xOutMs:=TMemoryStream.Create;
DecodeStream(xInSs,xOutMs);
XOutMs.Position:=0;
Result:=XOutMs;
xInSs.Free;
xOutMs.Free;
end;
end;
Затем присваиваю
if (Pict1<>'') then
begin
Image1.Bitmap.LoadFromStream(GetImgFromTxt(Pict1));
Image1.Visible:=true;
end
else
begin
Image1.Visible:=false;
end;
Так вот в LoadFromStream приходит nil.
Если я комментирую // xOutMs.Free; то картинка нормально отображается.
Почему такое происходит? Как тогда правильно очищать переменную xOutMs?
Вопрос
Rusland
Перекодирую картнику из текста в MemoryStream
uses Soap.EncdDecd; // DecodeStream function TFrmMain.GetImgFromTxt(sPic:String):TMemoryStream; var xInSs: TStringStream; xOutMs:TMemoryStream; begin if (sPic<>'') then begin xInSs:=TStringStream.Create(sPic); //jpg в baze64 из txt xOutMs:=TMemoryStream.Create; DecodeStream(xInSs,xOutMs); XOutMs.Position:=0; Result:=XOutMs; xInSs.Free; xOutMs.Free; end; end;
Затем присваиваю
if (Pict1<>'') then begin Image1.Bitmap.LoadFromStream(GetImgFromTxt(Pict1)); Image1.Visible:=true; end else begin Image1.Visible:=false; end;
Так вот в LoadFromStream приходит nil.
Если я комментирую // xOutMs.Free; то картинка нормально отображается.
Почему такое происходит? Как тогда правильно очищать переменную xOutMs?
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.