Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизМасштаб метафайла Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c