![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение размеров страницы в Word'е [D5, WinXP]
Afonya © (2008-08-29 20:28:00)Всем доброго времени суток!
Столкнулся с такой проблемой: запускаю из под делфей ворд, открываю в ворде документ. Как определить размеры страницы в пикселях? (ну в сантиметрах потом можно будет тпреобразовать).
Под VB делается так:
Dim AH As Double
...
AH = ThisDocument.PageSetup.PageHeight
Как подобное организовать в делфях?
Xandr001 (2008-09-02 18:11:00) [1]а вообще... как ты юзаешь оле объект? подключаешься к открытому документу или создаешь новый?
Xandr001 (2008-09-02 18:03:00) [2]а если так?
HPosition := MSWord.ActiveDocument.Selection.Frames[1].HorizontalPosition
Afonya (2008-09-01 10:57:00) [3]Попробовал в квадратных - все равно не получается пишет вот что:
Project Form.exe raised exception class EOleError with message "Method 'Selection' not supported by automation object" Process stopped...
Xandr001 (2008-08-31 13:47:00) [4]Не получится, попробуй так:
HPosition := MSWord.ActiveDocument.Selection.Frames[1].HorizontalPosition
With MSWord.ActiveDocument.Selection.Frames(1) do begin
.Select;
.Width = CentimetersToPoints(2.78);
end;
Xandr001 (2008-08-31 13:42:00) [5]попробуй вместо круглых скобок поставить квадратные. дело в том, что Делфи круглые скобки воспринимает как список параметров процедуры, а квадратные как указатель на элемент массива. а Frames это массив...
А вообще вот так попробуй:
HPosition := MSWord.Selection.Frames[1].HorizontalPosition
KilkennyCat (2008-08-30 13:30:00) [6]ну и какая ошибка выдается, если, конечно, не секрет?
Afonya (2008-08-29 20:49:00) [7]на следующие строчки выдает ошибку:
var HPosition : real;
...
HPosition := MSWord.Selection.Frames.Items(1).HorizontalPosition;
// или так
HPosition := MSWord.Selection.Frames(1).HorizontalPosition;
Afonya (2008-08-29 20:47:00) [8]Все - нашел ответ сам...
pageHeight := MSWord.ActiveDocument.PageSetup.PageHeight;
pageWidth := MSWord.ActiveDocument.PageSetup.PageWidth;
А вот как реализовать такое в делфях:
скрипт VB:
With Selection.Frames(1)
.Select
.Width = CentimetersToPoints(2.78)