![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
||||
|
||||
|
Как пример:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
MemStream : TMemoryStream;
jpg : 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;P.S. Приложенный Readme, в топку. Последний раз редактировалось angvelem, 25.06.2012 в 00:07. |
|
#17
|
|||
|
|||
|
Код:
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; |
|
#18
|
|||
|
|||
|
Согласен
![]() |
|
#19
|
||||
|
||||
|
Цитата:
|
|
#20
|
|||
|
|||
|
Все работает.
Спасибо ![]() |