Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
MemStream : TMemoryStream;
jpg : TJpegImage; //ошибка- Undeclared identifier: 'TJpegImage'
begin
MemStream := TMemoryStream.Create;
try
with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile('test.7z');
for I := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
begin
MemStream.Clear;
ExtractItem(I, MemStream, False);
MemStream.Position := 0;
case I of
0 :
begin
jpg := TJPEGImage.Create;
try
jpg.LoadFromStream(MemStream);
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
end;
1 : Memo1.Lines.LoadFromStream(MemStream);
end;
end;
end;
finally
MemStream.Free;
end;
end;
Вместо TJpegImage пишу TGraphic.
Картинка в архив запакована первой (*.jpg).
После нажатия Button1 - ошибка: Project raised exception class EAbstractError with message 'AbstractError'.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
MemStream : TMemoryStream;
jpg : TGraphic;
begin
MemStream := TMemoryStream.Create;
try
with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile('test.7z');
for I := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
begin
MemStream.Clear;
ExtractItem(I, MemStream, False);
MemStream.Position := 0;
case I of
0 :
begin
jpg := TGraphic.Create;
try
jpg.LoadFromStream(MemStream);
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
end;
1 : Memo1.Lines.LoadFromStream(MemStream);
end;
end;
end;
finally
MemStream.Free;
end;
end;
Текст читается без картинки
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
MemStream : TMemoryStream;
begin
MemStream := TMemoryStream.Create;
try
with CreateInArchive(CLSID_CFormat7z) do
begin
OpenFile('test.7z');
for I := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
begin
MemStream.Clear;
ExtractItem(I, MemStream, False);
MemStream.Position := 0;
case I of
0 : Memo1.Lines.LoadFromStream(MemStream);
end;
end;
end;
finally
MemStream.Free;
end;
end;