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

Вниз

ДЛЯ ПРОФИ. 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1121839239
Bless
2005-07-20 10:00
2005.09.04
Непонятная "двуличность" операции "=NULL"


1-1123825518
***_Diman_***
2005-08-12 09:45
2005.09.04
ошибка форматирования (число->строка)


4-1121435065
chili
2005-07-15 17:44
2005.09.04
Как заблокировать файл?


3-1121704689
xroot
2005-07-18 20:38
2005.09.04
Установка базы


11-1106520038
Sphinxx
2005-01-24 01:40
2005.09.04
Как в KOL организовать поиск по компонентам на форме