unikum
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вобщем кажись есть одна трабла - Корел при конвертации некоторые кривые бъет на кучу прямых. Если это не пугает тогда делается примерно так. 1. Загружаем куда нить метафайл Код: Metafile.LoadFromFile(FileName); | 2 Делаем "цикл" перебора: Код: size := GetEnhMetaFileBits(Metafile.Handle, 0, nil); if size > 0 then EnumEnhMetaFile(0, Metafile.Handle, @EnumEnhFunc, self, nil); | 3. Делаем процедуру анализа записей Код: function EnumEnhFunc(DC: HDC; HTable: PHandleTable; EMFR: PEnhMetaRecord; nObj: Integer; Sender: TObject): BOOL; stdcall; begin case EMFR^.iType of EMR_HEADER: with PEnhMetaHeader(EMFR)^ do ... EMR_CREATEPEN: with PEMRCreatePen(EMFR)^ do ... EMR_CREATEBRUSHINDIRECT: with PEMRCreateBrushIndirect(EMFR)^ do ... EMR_MOVETOEX: with PEMRMoveToEx(EMFR)^ do ... EMR_LINETO: with PEMRLineTo(EMFR)^ do ... EMR_ELLIPSE: with PEMREllipse(EMFR)^ do ... ... и т.д. end; Result := true; end; | Описание структур смотри в MSDN-е (ключевая фраза Metafile Reference). Сами структуры описаны в Windows.pas |