бо Selection: WordApplication1.Selection.Paste або WordDocument1.Range (a, b). Paste. Залишити для малюнка достатня кількість порожніх рядків і потрапити в потрібне місце - це вже наша турбота. Якщо він потрапить посеред тексту, вигляд буде досить противний - при такій вставці обтікання текстом малюнка відбувається якось дивно. Можна приготувати для звіту шаблон, де замінюємо малюнком-яке ключове слово. Про те, як знайти в документі потрібний текст, див вище. p> А тепер про дещо іншому способі вставки малюнка, який усуває проблеми з обтеканием і дає нам можливість переміщати його по документу, масштабувати і задавати відступи між малюнком і текстом. Спосіб, власне, той же - копіюємо з буфера обміну, але не прямо в документ, а в "рамку" - текстову вставку. У ній може знаходитися не тільки текст, а й картинка, чим і скористаємося.
"Рамки" утворюють колекцію Frames, нумеруються цілим індексом, пробігають значення від 1 до WordDocument1.Frames.Count. Додамо в документ рамку, змінимо її розмір і вставимо малюнок:
Clipboard.Assign (DBImage1.Picture);
vstart: = 1;
vend: = 2;
WordDocument1.Frames.Add (WordDocument1.Range (vstart, vend));
i: = 1;
WordDocument1.Frames.Item (i). Height: = DBImage1.Height;
WordDocument1.Frames.Item (i). Width: = DBImage1.Width;
WordDocument1.Frames.Item (i). Select;
WordApplication1.Selection.Paste;
Тут для простоти передбачається, що розмір DBImage дорівнює розміру самої картинки, а також що до цього рамок у нас в документі не було. Звернути увагу слід на кілька моментів. Розмір рамки треба задавати до того, як копіювати в неї малюнок. Інакше вона буде мати розмір за замовчуванням, під який замасштабіруется і наша картинка. При спробі змінити розмір рамки заднім числом розмір картинки вже не зміниться. Крім того, параметр Range при додаванні рамки часто ніякої ролі не грає. Рамка спочатку все одно з'явиться в лівому верхньому кутку документа, а зазначений шматок тексту при цьому не постраждає. Але це тільки в тому випадку, якщо він не виділений. Якщо в документі є виділення, рамка з'явиться замість виділеного фрагмента. Таким чином можемо її вставити в потрібне місце замість якогось ключового слова.
При бажанні можемо її посувати в документі і "вручну". Для цього служать властивості горизонтального і вертикального позиціонування, які задають її відступ від лівого верхнього "кута" документа:
i: = 1;
WordDocument1.Frames.Item (i). VerticalPosition: = 30;
WordDocument1.Frames.Item (i). HorizontalPosition: = 50; p> Відступ між краями рамки і текстом задається наступним чином:
WordDocument1.Frames.Item (i). HorizontalDistanceFromText: = 10;
WordDocument1.Frames.Item (i). VerticalDistanceFromText: = 10; p> А тепер про масштабування. Для цього достатньо довжину і ширину рамки помножити на одне і те ж число. Наприклад:
WordDocument1.Frames.Item (i). He...