Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.06.2014, 12:59
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию OleContainer и предварительный просмотр всего и вся

Собственно сабж...

Хотелось бы сделать такую штуку как в винде когда делаешь любой OpenDialog там же есть такая штука с предаврительным просмотром любого как я понимаю зарегистрированного типа файла... вот на форме у себя хотелось бы такое разместить

мучался с OleContainer, я так понимаю концы туда ведут... но (отмечаю только то что можно сделать в стандартном опендиалоге и не получилось никак с контейнером)
1. полоски прокрутки в границах контейнера
2. лишние менюхи в ворде\экселе
3. пдф вообще вылазит целиком окно акробата

в общем если кто может помочь с этим...
повторюсь задача стоит чтоб показывалось также как и в окошке предварительного просмотра винды (7) ну или лучше
Ответить с цитированием
  #2  
Старый 02.06.2014, 19:13
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

На самом деле не всё так просто - виндовс показывает не сам документ, а его скриншот, для получения которого работает специальный сервис предварительного просмотра. Не знаю как насчёт уже зарегистрированных типов, есть лишь пример как можно отображать превьюшку своего файла (инсталлятор - это регистратор библиотеки плюс исходник и примеры "своих" файлов для проверки), для этого нужно прописать его в системном сервисе с помощью внедрения туда DLL... в исходниках этот процесс расписан довольно подробно
Ответить с цитированием
  #3  
Старый 02.06.2014, 19:52
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

хм... да мне собственно своих то не надо... мне б достаточно было б и того что в опендиалоге в превьюшке есть... мож какаянить функция с winapi это может... или еще что ну както вот так
Ответить с цитированием
  #4  
Старый 02.06.2014, 23:20
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Я знаю, что в XP за "Программу просмотра изображений и факсов" отвечает shdocwv.dll (Shell Document View). В современных версиях Delphi есть модуль SHDocWv.pas, но в нем что-то больше про браузер. Не знаю.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #5  
Старый 03.06.2014, 20:40
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

так что-ли:



Получение эскиза файла/папки
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 04.06.2014, 00:15
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

та неееет
вот так
http://prntscr.com/3pdls2
например

ну сделайте где угодно файл-> открыть и тама справа окошко предварит. просмотра
Ответить с цитированием
  #7  
Старый 04.06.2014, 09:32
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
виндовс показывает не сам документ

Да ладно????
его даже редактировать можно в окошке превьюхи
ну речь о вин7 я хз про ХП помоему все забыли давно уже
Ответить с цитированием
  #8  
Старый 04.06.2014, 11:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от TeRomani
...его даже редактировать можно в окошке превьюхи...
Тогда это у вас не превью, а полноценный редактор - чисто OLE-контейнер с запущеной в нём программой, концепт превью лишь в том чтоб показать примерное содержание документа пользователю, а уж потом он решает что с ним делать дальше
Ответить с цитированием
  #9  
Старый 04.06.2014, 12:42
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

дык я об этом еще в первом посте написал
что речь об olecontainer

и на 99% уверен что все решается одной строчкой так как по логике врятли микрософт бы заморачивался скорее всего объявили стандартом какуюто одну команду
типа
OleObject.PreviewMode=True
или
OleObject.HideMenu
или
DoVerb(ovPreview)
ну чтото в этом роде
или ShowContent

вот вопрос что это за команда\процедура\параметр...
Ответить с цитированием
  #10  
Старый 04.06.2014, 14:09
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от TeRomani
и на 99% уверен что все решается одной строчкой так как по логике врятли микрософт бы заморачивался скорее всего объявили стандартом какуюто одну команду
Не люблю я давать такие ответы, но тут вижу, что человек умный, поэтому не могу не удивиться: "А вы гуглить не пробовали?". У меня, например, нагуглилось про Word и Excel. Из прочитанного в той теме догадываюсь, что решение не совсем универсально, следовательно задача оказалась сложнее, чем представлялась на первый взгляд.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #11  
Старый 06.06.2014, 19:19
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от TeRomani
1. полоски прокрутки в границах контейнера
2. лишние менюхи в ворде\экселе
3. пдф вообще вылазит целиком окно акробата
Вот странно, потестировал дома на Office XP, выставил SizeMode := smScale и AutoActivate := aaManual, и этого оказалось достаточно, чтобы вид в окне был похож на просмотр и нельзя было войти в документ двойным кликом, загрузив тем самым интерфейс Excel в свою программу.

Посмотрел в исходниках. В реализации TOleContainer используются команды DoVerb(ovPrimary) и DoVerb(ovShow) для реализации свойства AutoActivate.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #12  
Старый 06.06.2014, 23:13
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

http://prntscr.com/3qa0uy
а у меня вот так
Ответить с цитированием
  #13  
Старый 06.06.2014, 23:29
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Я вот ведь гад какой -- сравнил diff-ом OleCntrs.pas от Delphi 6 и XE2. Оказалось, что он почти не изменился, только пара незначащих строчек добавилась. Тут уже надо серьезно исследовать, видимо.

Жарко.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter