Форум по 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, 01:19
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от TeRomani
та неееет
Что нет? Он же на этих плитках предварительный просмотр и рисует, разве нет? Осталось лишь научиться выводить плитку на панель.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Этот пользователь сказал Спасибо Freeman за это полезное сообщение:
Alegun (04.06.2014)
  #8  
Старый 04.06.2014, 08:27
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

ну в теории может вы и правы...
а плитка будет многостраничная? масштабироваться? в том окошке скрин которого я скинул word'овский документ можно масштабировать, все страницы пролистать и т.д.
Ответить с цитированием
  #9  
Старый 04.06.2014, 08:30
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

а посмотрел предложенный код...
не не будет
Res:=ExtractImage.GetLocation(@PathBuffer[0], Length(PathBuffer),
Priority, Size, ColorDepth, Flags);

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

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

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

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

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

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

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

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

Цитата:
Сообщение от TeRomani
и на 99% уверен что все решается одной строчкой так как по логике врятли микрософт бы заморачивался скорее всего объявили стандартом какуюто одну команду
Не люблю я давать такие ответы, но тут вижу, что человек умный, поэтому не могу не удивиться: "А вы гуглить не пробовали?". У меня, например, нагуглилось про Word и Excel. Из прочитанного в той теме догадываюсь, что решение не совсем универсально, следовательно задача оказалась сложнее, чем представлялась на первый взгляд.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #15  
Старый 04.06.2014, 14:54
TeRomani TeRomani вне форума
Прохожий
 
Регистрация: 18.12.2012
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Не люблю я давать такие ответы, но тут вижу, что человек умный, поэтому не могу не удивиться: "А вы гуглить не пробовали?".
перегуглил все что можно вкладок 40 открыто
те решения что предлагаются по ворду и экселю
а) не универсальные
б) зачастую устаревшие

часто речь в них идет про офис 2003 или еще раньше и там набор команд по тупо скрытию менюшек но это не удовлетворительное решение, у меня office 2013 стоит на него те методы не действуют

мало того загуглил вообще тему по OLE без привязки к delphi или контейнеру, частво встречал какието описания к какимто уникальным прогам типа для рисования чертежей и т.д. и там среди прочего было вставка оле объекта и была ссылка на настройки проги где какраз отключалось меню оле-сервера и т.д.
т.е. то что метод скорее всего универсальный я не с потолка взял
я вообще на форум пишу крайне редко когда ну 100% даже намека на решение найти не могу...

не раз встречал похожие темы но они както без решения и остались

вообще странно на самом деле... вещь то полезная... объясню в каком контексте мне нужно
делаю ДБ офисную, и тама предполагается хранение долгосрочное доков в том числе, ну вот и я думаю чтоб не экспортить\импортить чтоб тупо пролистать какойто док удобнее жешь просматривать его прям на форме... ну както так... странно конечно что раньше никто таким не озадачился такой превью\прелистинг напрашивается сам собой
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter