Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TOLEContainer, (Проблеммы с отображением) 
:(
    Опции темы
Paranoid_Android
Дата 14.2.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.2.2007

Репутация: нет
Всего: нет



ГОСПОДА ПРОГРАММИСТЫ, помогите в решении проблеммы:
Загруженный в OLEContainer объект (у меня лист Excel) не отображается полностью. Просто обрезается. Ответы, типа: Поставить AutoSize видел многократно на разных форумах, НО... Все эти штуки я пробовал. Не помогает. Так что же делать  smile ....

Опытным путем выяснил, что правая сторона обрезается там, где кончается видимая часть листа при открытии его в Excel. А вот высота вообще непонятно от чего зависит.  smile   Вопрос не могу решить уже долго, если кто-то знает в чем тут дело - буду благодарен за помощь!
PM MAIL   Вверх
Remember
Дата 25.2.2007, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: нет
Всего: 1



Бьюсь с такой же проблемой с таким же успехом, как и ты smile. 
Только у меня Word. И я не открываю в OleContainer'e, а копирую из таблицы в OleContainer.

Выявил следующие закономерности smile : из таблицы, как бы копируется в новый документ Word и в том виде в котором представляется в пустом документе выводится в OleContainer. 

Пробовал менять конфигурацию нового листа
W.ActiveDocument.PageSetup.RightMargin:=80;
Конфигурация меняется, результат нет!! Бьюсь как рыба, ничего не могу сделать...

Я просто думаю, что надо понять алгоритм ввода в OleContainer.. если бы кто мог его объяснить.. я думаю это очень помогло бы..

2 Paranoid_Android: Если есть желание пообщаться во этому поводу, то скинь асю в приват
PM MAIL   Вверх
Remember
Дата 6.3.2007, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: нет
Всего: 1



В общем после долгих изысканий решил я проблему двумя разными способами. Кому интересно пусть почитает, ибо намучился я знатно.

Первый:
Код

Procedure TMainform.ZapVopr(nv: integer);
begin

 // Вставляю исходный текст, который нужно отобразить в OleContainere
 Clipboard.Clear;
 Table.Cell(nv,2).Range.Copy;
 mainform.OleVopr.Paste;
 Clipboard.Clear; 

 mainform.PanelVar.Enabled:=true;//делает активной панель, где у меня OleContainers
 mainform.PanelVopr.Enabled:=true;//делает активной панель где у меня OleContainers

 mainform.OleVopr.DoVerb(ovShow);// Делает активной OleContainer
   OW:=mainform.OleVopr.OleObject.Application; // Создает документ MSWord, причем нужно уже загрузить перед этим в OleContaner MSWord
   OW.ActiveDocument.Tables.Item(1).Columns.Item(1).Width:=CentimetersToPoints(13.5);// Так как копируется у меня из таблицы, задаю нужную мне ширину столбца в который и копируется исходный тескт
   OW.Selection.ParagraphFormat.Alignment:=1;//Выравнивание по середине
 mainform.OleVopr.Close;// Деактивизирует OleContainer

end;


Второй: просто поставить OleContainer1.SizeMode:=msAutoSize, но если у вас много текста, то он может быть слишком маленьким и из-за этого может быть практически не видным ;), также пропадает возможность редактировать сам текст выводимый в OleContainer.

Это сообщение отредактировал(а) Remember - 6.3.2007, 19:20
PM MAIL   Вверх
Albinos_x
Дата 6.3.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



Paranoid_Android, попробуй сделать, как предложено здесь: http://forum.vingrad.ru/topic-139439.html
в последних трёх постах...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Remember
Дата 6.3.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: нет
Всего: 1



Albinos_x, может скажешь как мне убыстрить работу с OleContainer? А то видно, как происходит действие 
Код

mainform.OleVopr.DoVerb(ovShow);


Что можно сделать?
PM MAIL   Вверх
Albinos_x
Дата 6.3.2007, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



я с OLEContainer не работал, так что точно не скажу... но попробуй, на время действия делать его Enabled:=False;


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.