Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: 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 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
7-47856
SerVS
2002-04-13 14:21
2002.07.15
Сервисы и LogOut


3-47137
billybons
2002-06-24 07:37
2002.07.15
SQL - запрос (синтаксис)


1-47296
FRecon
2002-06-28 15:33
2002.07.15
EInvalidPointer


1-47518
SkyQuake
2002-07-04 14:31
2002.07.15
Загрузка данных в Image


14-47771
MaximatorVeter
2002-06-11 19:41
2002.07.15
Некоторые символы выводятся только после двойного нажатия.