![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Масштаб метафайла [D6, Win2k]
alxx © (2002-06-27 12:11:00)При переносе метафайла из проги в Word через ClipBoard почему-то меняется его размер - 12-й шрифт вдруг становится размером с 14-й. Как его можно выравнять?
alxx (2002-06-28 10:12:00) [1]Мне пришлось наворотить вот такое:
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);
Будет ли это правильно и всегда работать?
alxx (2002-06-27 16:48:00) [2]Возникла пара проблем:
а. Мне надо бы туда, где курсор
б. Надо бы в InlineShape, но в принципе могу сделать ConvertToInlineShape - но для этого надо знать номер Shape. Как бы?
Volj (2002-06-27 16:22:00) [3]Очевидно, да :) Пользуйся возможностью записи макросов. Deselect&select, и записанный макрос покажет тебе, что нужно сделать.
alxx (2002-06-27 15:48:00) [4]Спасибо, сейчас попробую.
А можно ли сделать так, чтобы он и только он был selected после вставки?
Volj (2002-06-27 15:16:00) [5]Вставляй как
WD.ActiveWindow.Selection.PasteSpecial(Link:=False,
DataType:=wdPasteEnhancedMetafile,
Placement:=wdFloatOverText, DisplayAsIcon:=False);
иначе у тебя вставляется как рисунок.
alxx (2002-06-27 14:04:00) [6]Допустим так:
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 13:23:00) [7]А ты как переносишь? Код в студию.