Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.013 c
3-47119
olban
2002-06-21 08:01
2002.07.15
Доступ к БД


4-47878
Марина
2002-05-13 12:08
2002.07.15
GetUserName и Win95


3-47175
fool
2002-06-19 12:14
2002.07.15
Ошибки по русски,про Oracle слышал, а MSSQL?


3-47139
jaric
2002-06-18 16:14
2002.07.15
Как испоьз в одном запросе 2 dbf-ки из разных каталогов


3-47121
Molodoy_Od
2002-06-15 21:45
2002.07.15
Сводные таблицы в InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский