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

Масштаб метафайла   Найти похожие ветки 

 
alxx ©   (2002-06-27 12:11) [0]

При переносе метафайла из проги в Word через ClipBoard почему-то меняется его размер - 12-й шрифт вдруг становится размером с 14-й. Как его можно выравнять?


 
Volj ©   (2002-06-27 13:23) [1]

А ты как переносишь? Код в студию.


 
alxx ©   (2002-06-27 14:04) [2]

Допустим так:

procedure TForm1.ToolButton18Click(Sender: TObject);
Var
clp :TClipboard;
Meta :TMetaFile;
Canv :TMetaFileCanvas;
Begin
WA.Connect;

Meta:=TMetaFile.Create;

Meta.Width:=80; Meta.Height:=20;
Meta.Enhanced:=True;

Canv:=TMetaFileCanvas.Create(Meta,0);
Canv.Font.Size:=12; Canv.Font.Name:="Times New Roman";

Canv.TextOut(0,0,"Здрассьте");
Canv.Free;
Canv:=nil;

WD.ConnectTo(WA.ActiveDocument);

clp:=TClipboard.Create;
clp.Assign(Meta);
clp.Free;

WD.ActiveWindow.Selection.Paste;


Meta.Free;

WD.Disconnect;
WA.Activate;
WA.Disconnect;
end;


Где WA и WD - TWordApplication и TWordDocument соответственно.

Причем пытался смотреть размеры в миллиметрах через
Meta.MMWidth и
WA.PointsToMillimeters(WD.InlineShapes.Item(i).Width), дык совпадают же, что любопытно!!!

Я конечно могу сделать на два пункта меньше у себя в проге, но боюсь это от чего-то зависит...


 
Volj ©   (2002-06-27 15:16) [3]

Вставляй как
WD.ActiveWindow.Selection.PasteSpecial(Link:=False,
DataType:=wdPasteEnhancedMetafile,
Placement:=wdFloatOverText, DisplayAsIcon:=False);

иначе у тебя вставляется как рисунок.


 
alxx ©   (2002-06-27 15:48) [4]

Спасибо, сейчас попробую.
А можно ли сделать так, чтобы он и только он был selected после вставки?


 
Volj ©   (2002-06-27 16:22) [5]

Очевидно, да :) Пользуйся возможностью записи макросов. Deselect&select, и записанный макрос покажет тебе, что нужно сделать.


 
alxx ©   (2002-06-27 16:48) [6]

Возникла пара проблем:

а. Мне надо бы туда, где курсор
б. Надо бы в InlineShape, но в принципе могу сделать ConvertToInlineShape - но для этого надо знать номер Shape. Как бы?


 
alxx ©   (2002-06-28 10:12) [7]

Мне пришлось наворотить вот такое:

WD.ActiveWindow.Selection.ShapeRange.ConvertToInlineShape;

tt1:=wdCharacter; tt2:=1; tt3:=wdExtend;

WD.ActiveWindow.Selection.MoveRight(tt1,tt2,tt3);
WD.ActiveWindow.Selection.Cut;
WD.ActiveWindow.Selection.Start:=Trunc(X);
WD.ActiveWindow.Selection.Paste;
WD.ActiveWindow.Selection.
WD.ActiveWindow.Selection.MoveLeft(tt1,tt2,tt3);


Будет ли это правильно и всегда работать?



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

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



Память: 0.46 MB
Время: 0.007 c
3-47104
ДимкаН
2002-06-21 15:14
2002.07.15
Help! Проблемы с кодировкой :(


1-47316
SDv-503
2002-07-01 00:17
2002.07.15
Как программно нажать на .... (+)


3-47187
SkyWalker
2002-06-18 14:40
2002.07.15
IB


14-47735
vads
2002-06-09 09:22
2002.07.15
Кто-нибудь работал со cмарт-картами и card-reader ами ???


1-47395
Shrek
2002-07-02 16:32
2002.07.15
TShellTreeView




   Наверх