Форум: "Основная";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Вниз
ДЛЯ ПРОФИ. OleContainer и его OleObject. У них недопонимание :) Найти похожие ветки
← →
VID © (2005-08-04 18:24) [0]Как научить OleContainer изменять размеры его OleObject"а при изменении размеров самого контейнера ? А то получается так, что в объекте отображается только та часть документа, которая помещается в контейнере, в момент создания его формы, а при дальнейшем изменений размеров формы и контейнера соответственно, размер оле-объекта не меняется.
Выкладки dfm:
object XLContainer: TNOleContainer
Left = 0
Top = 42
Width = 537
Height = 191
AllowInPlace = False
PersistUIActive = False
AutoActivate = aaManual
AutoVerbMenu = False
Align = alClient
TabOrder = 0
TabStop = False
end
Сама загрузка в контейнер происходит так:
procedure TfrmSpDocTemplateDocument.actXLEditExecute(Sender: TObject);
begin
XLContainer.DoVerb(ovOpen); // xlVerbPrimary
IsModified := True;
XLContainer.OleObject.Windows[1].WindowState := $FFFFEFD7 {xlMaximized};
end;
procedure Some;
var
ImportBook, App, Book: Variant;
begin
//XLContainer: TOleContainer;
Book := XLContainer.OleObject;
App := Book.Application;
ImportBook := App.Workbooks.Open(FileName := OpenDialog.FileName);
try
actXLEdit.Execute;
ImportBook.Sheets.Copy(After := Book.Sheets[Book.Sheets.Count]);
finally
ImportBook.Close(SaveChanges := False);
end;
end;
Т.е. как вы видете, не используется метод TOleContainer.CreateObjectFromFile().
В случаях когда используется CreateObjectFromFile или же XLContainer.AllowInPlace = true, то проблемы с размерами оле-объекта отсутствуют. Но такой вариант не подходит по другим причинам...
← →
VID © (2005-08-05 10:29) [1]Дааа... я умею задать сложный вопрос :)
← →
Leonid Troyanovsky © (2005-08-05 11:30) [2]
> VID © (05.08.05 10:29) [1]
> Дааа... я умею задать сложный вопрос :)
Может тебя спасет TOleContainer.SizeMode?
--
Regards, LVT.
← →
VID © (2005-08-05 11:47) [3]Нет, это не то. Какой бы SizeMode я не выбрал, он проводит все изменения только над тем самым видимым участком объекта: растягивает его, центрирует и тп... А мне надо что бы было взаимодействие с объектом: т.е. если в контейнере видно три колонки Excel-листа, то после того как я растянул контейнер (сделал его длинее) стало видно 4 (или более) колонки листа...
Вот что мне нужно...
← →
Leonid Troyanovsky © (2005-08-05 14:18) [4]
> VID © (05.08.05 11:47) [3]
> Нет, это не то. Какой бы SizeMode я не выбрал, он проводит
> все изменения только над тем самым видимым участком объекта:
> растягивает его, центрирует и тп... А мне надо что бы было
> взаимодействие с объектом: т.е. если в контейнере видно
> три колонки Excel-листа, то после того как я растянул контейнер
> (сделал его длинее) стало видно 4 (или более) колонки листа...
> Вот что мне нужно...
Видимо, нужно перекрыть Paint.
См., например, painting the controls background
http://groups-beta.google.com/group/borland.public.delphi.vcl.components.using/msg/6d243bed5ffab769
--
Regards, LVT.
← →
VID © (2005-08-09 13:22) [5]Нее... Перекрытие Paint"а тут, я думаю, не при чем...
Тут надо ширше думать - Почему границы отображения оле-объекта в контейнере не увеличиваются при изменении размеров самого контейнера...
Ни у кого больше нет идей ?
← →
VID © (2005-08-10 17:51) [6]Ну ? Мне это очень нужно
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c