Вниз
Скачать: CL | DM;

Как нарисовать METAFILEPICT ?   Найти похожие ветки 

 
GuAV ©   (2005-11-29 01:02) [0]

Сабж. METAFILEPICT получается из HGLOBAL, возвращаемого OleGetIconOfClass.


 
MBo ©   (2005-11-29 07:36) [1]

PlayEnhMetaFile c METAFILEPICT.hMF
или загвоздка в чем-то ином?


 
GuAV ©   (2005-11-30 00:05) [2]


> PlayEnhMetaFile c METAFILEPICT.hMF


Возвращает False, RaiseLastOSError даёт:
System Error.  Code: 6.
Неверный дескриптор.


Дескриптор 0x32260922, mm = 8 = MM_ANISOTROPIC, высота и ширина многоватые для пикселей, но для сотых мм реальные, т.е. структура, похоже, правильная.


 
MBo ©   (2005-11-30 07:54) [3]

Через клипборд попробуй  - т.е. записать туда CF_METAFILEPICT, а считать - CF_ENHMETAFILE


 
MBo ©   (2005-11-30 08:02) [4]

или так:
HEnhMF:=CopyEnhMetafile(PGolbal.hMF,nil);


 
GuAV ©   (2005-11-30 20:44) [5]


> MBo ©   (30.11.05 7:54) [3]


> MBo ©   (30.11.05 8:02) [4]


Ничего не вышло. Мой код:

var h: HGLOBAL; P: PMetafilePict; hMF: THandle;
begin
 h :=  OleGetIconOfClass(
   ProgIDToClassID("Word.Document"), "Test", False);
 P := GlobalLock(h);


 
MBo ©   (2005-11-30 21:20) [6]

Так у меня работает:

var
 h: HGLOBAL;
 m: tmetafile;
begin
 h := OleGetIconOfClass(ProgIDToClassID("Word.Document"), "Test", False);
 Clipboard.SetAsHandle(CF_METAFILEPICT, h);
 m := tmetafile.create;
 m.Assign(clipboard);
 canvas.Draw(0, 0, m);


 
GuAV ©   (2005-11-30 22:42) [7]


> MBo ©   (30.11.05 21:20) [6]


Спасибо.
Выяснил, что или это не та функция, или я её не так вызываю. Мне нужен значок, который виден например в Word при Вставка->Объект->Создание->[x]В виде значка.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1133546355
Shuric
2005-12-02 20:59
2005.12.25
Как вы считаете


14-1133445740
Vyacheslav
2005-12-01 17:02
2005.12.25
Excel - Linux


2-1134047661
Daria
2005-12-08 16:14
2005.12.25
вопрос по .db


1-1132928583
remlin
2005-11-25 17:23
2005.12.25
Сохранение свойств приложения


2-1133810801
ZefiR
2005-12-05 22:26
2005.12.25
Помогите! Мой Дельфак выкидывает ошибку!




   Наверх