Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.016 c
14-1123893679
green-templar
2005-08-13 04:41
2005.09.04
дрова не ставятся


14-1123508510
oldman
2005-08-08 17:41
2005.09.04
Не помню, откуда сличил, возможно и с этого сайта :)


3-1121754307
Stanislav
2005-07-19 10:25
2005.09.04
Прерывание выполнения запроса


1-1123690794
Bios_
2005-08-10 20:19
2005.09.04
Изменение содержимого каталога


3-1121942224
helpme
2005-07-21 14:37
2005.09.04
Как определить используется ли запись другим пользователем





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