|
|
Регистрация | << Правила форума >> | 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, в топку. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось 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
|
|||
|
|||
Readme - в топку
Согласен
|
#19
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#20
|
|||
|
|||
Все работает.
Спасибо |