Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

Масштабирование 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 вся ветка

Форум: "Corba";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
1-1110744759
DremLIN
2005-03-13 23:12
2005.03.27
Delphi, CLX-проект, handle


1-1110570982
idiot
2005-03-11 22:56
2005.03.27
Ламерский вопрос


14-1110455760
mmms
2005-03-10 14:56
2005.03.27
Холодильник молотит без остановки, есть ли спецы?


1-1110549873
UT
2005-03-11 17:04
2005.03.27
Побновить экран


3-1109245156
_1
2005-02-24 14:39
2005.03.27
Проблема со вставкой данных в базу (dbExpress)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский