Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Масштабирование TextBox в Word   Найти похожие ветки 

 
bsFrame ©   (2004-06-21 17:41) [0]

Перерыл кучу инфы, но так и не нашел как исправить, может кто поможет. Есть компанент TImage в котором картинка, копирую картинку в ClipBoard, а затем вставляю в MSWord в TextBox и получается что размеры картинки отличаются от исходной примерно на 125% (Word сам об этом говорит). Захожу в свойства картинки делаю сброс размеров, картинка становиться как надо. Но ручками постоянно заходить и делать сброс как-то вломы, как можно это решить, желательно без макроса Word. Размеры TextBox задаю равными размерам картинки т.е. AddTextBox(1, 1, 1, Image1.Width, Image1.Height); Word XP, Windows XP


 
YurikGL ©   (2004-06-21 19:05) [1]

procedure TForm1.Button2Click(Sender: TObject);
var
vr1:olevariant;

begin
WordApplication1.Connect;
vr1:=номер рисунка(нумерация с единицы);
WordApplication1.Selection.InlineShapes.Item(vr1).ScaleHeight:=500;
WordApplication1.Selection.InlineShapes.Item(vr1).ScaleWidth:=500;//это если размер рисунка надо изменить

Если нужно обратиться к списку текстбоксов, то
vr1:="Text Box 3";
WordApplication1.ActiveDocument.Shapes.item(vr1).Width:=25;

WordApplication1.Disconnect;

end;


 
bsFrame ©   (2004-06-21 22:22) [2]

Что-то немного не так (Word матерится), дело в том что заранее я не знаю какой может быть размер рисунка и его размеры могут отличаться в различных пределах при отрисовывании в Word(114%..126%) но мне нужно чтоб он отрисовывался с размером в 100%. Вот примерный кусок кода может поможет понять суть проблемы. Может с Range поколдовать?

var name: Variant;

begin
Clipboard.Assign(Image1.Picture)
name:=MsWord.ActiveDocument.Shapes.AddTextbox(1,85,126,Image1.Width,Image1.Height).Name;
MsWord.ActiveDocument.Shapes.Item(name).Select;
MsWord.Selection.ShapeRange.Line.Visible := 0;
MsWord.Selection.Range.Paste;

//MsWord.Selection.InlineShapes.Item(1).ScaleHeight:=500;
end;


 
YurikGL ©   (2004-06-21 22:27) [3]


> но мне нужно чтоб он отрисовывался с размером в 100%


> WordApplication1.Selection.InlineShapes.Item(vr1).ScaleHeight:=100;// сто процентов
> WordApplication1.Selection.InlineShapes.Item(vr1).ScaleWidth:=100; // сто процентов



 
YurikGL ©   (2004-06-21 22:30) [4]

Если тебе нужно оперировать с рисунком, то у него ScaleWidth - абсолютный параметр привязанный к начальному размеру рисунка. Обращение к нему идет через InlineShapes.
Если тебе нужно оперировать с текстбоксом, то оперируй с Shapes. У него scalewidth - относительный параметр не привязанный ни к чему.


 
bsFrame ©   (2004-06-22 07:00) [5]

Премного благодарен )))



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

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

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1110449454
Teuton
2005-03-10 13:10
2005.03.27
Ctrl+Del в DBGrid


14-1109856022
saNat
2005-03-03 16:20
2005.03.27
Помогите найти сервер для ICQ


14-1109882797
peppo
2005-03-03 23:46
2005.03.27
Программно отличить виртуальный CD от реального


14-1110281620
Свердликовский Михаил
2005-03-08 14:33
2005.03.27
Заработок на Freeware


1-1110533012
AlexTregubov
2005-03-11 12:23
2005.03.27
Как узнать тип шрифта - TrueType или OpenType?