Некомфортный просмотр файлов | |
---|---|
Тьма Автор Сообщений: 21 Дата регистрации: 12.04.2017 |
Доброго времени суток уважаемые форумчане!
Вкратце опишу ситуацию. На форме есть ListBox со списком файлов. В зависимости от типа файла я активизирую для просмотра соответствующий просмотрщик. Для просмотра графики использую штатный Image, для *.PDF - pdf.ocx из Adobe Reader 5.0, для *.DOC и *.XLS - DSOFramer.ocx, для .TXT - TextBox из MS Forms 2.0. В оффисном и текстовом просмотрщиках можно установить курсор и ввести текст, что не есть хорошо. Штатных средств (типа ReadOnly) выявлено не было и я решил окно просмотра (кроме ScrollBars) прикрыть прозрачным Shape. Прикрывается только штатный Image, (где этого, в принципе, и не нужно), а сторонние OCX всегда оказываются сверху. Начал играться с методом ZOrder - толку ноль. Пробовал прикрывать пустым контейнером - результат тот же = 0. Вразумите пожалуйста, что я не догоняю? Ну не прикрываются сторонние .OCX ничем. Подскажите, пожалуйста, у кого какие мысли есть? Может изложил сумбурно - прошу пардону... |
Re: Некомфортный просмотр файлов | |
---|---|
ry Сообщений: 2113 Дата регистрации: 24.09.2007 |
ActiveX всегда будут поверх нативных VFP-контролов, и ZOrder на них не действует. Так что перекрыть шейпом или контейнером не получится, придется как-то по-другому решать. Как один из вариантов - конвертировать все форматы в PDF или в картинку перед показом. Тогда для показа можно обойтись одним OCX, но придется прикрутить конвертер.
Можно еще попытаться другие OCX найти. Некоторые коммерческие, судя по описанию, поддерживают ReadOnly - вот, например www.edrawsoft.com Исправлено 1 раз(а). Последнее : ry, 16.05.18 19:14 |
Re: Некомфортный просмотр файлов | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Дурацкая мысль. Скопируй просматриваемый файл в "тмп"-шный директорий, сделай ему атрибут RO, и предьяви этот файл в ShellExecute... Только проблема - когда его (файл) уничтожить?
Еще есть экзотический вид открытия (создания) файла (в CreateFile - FILE_FLAG_DELETE_ON_CLOSE 0x04000000 - когда будет CloseHandle, последний на этот файл, то файл будет уничтожен...). Что-то можно с ним придумать... Исправлено 1 раз(а). Последнее : of63, 16.05.18 19:55 |
Re: Некомфортный просмотр файлов | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
А вот полупрозрачным окном его можно сверху накрыть.
|
Re: Некомфортный просмотр файлов | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Подобное уже когда-то обсуждали. Возможно давно конечно, да и тему уж не помню, по каким словам можно поискать. "Сторонние .OCX" (это могут быть и DLL) можно перекрыть только другим ole-объектом. Что не совсем удобно конечно, но так уж устроено. Все фоксовские объекты всегда располагается на уровень ниже, чем все ole-объекты вне зависимости от фоксовской установки order. Т.е. в принципе можно при желании использовать какие-то элементы, из того же набора MS Forms 2.0 скажем Label с полупрозрачностью для покрытия другого объекта. Однажды когда-то я использовал оттуда объект "линия", чтобы положить ее поверх всего для создания сетки. Хотя вообще здесь, на мой взгляд, можно поступить немного проще. Если для браузера IE установлены все нужные средства для просмотра того или иного типа файлов в браузере, можно просто запускать нужный файл для просмотра через размещенный на форме ole-объект Microsoft Web Browser (в разных версиях может имнонваться по-разному). При этом вдобавок решается проблема редактируемости. Кроме того, чисто из практики использования на форме ole-объектов, я когда-то обнаружил, что при их использовании лучше ставить им свойство Enabled=.F. На их работоспособность это абсолютно никак не влияет, зато решает небольшую, но не особо приятную, проблему передачи фокуса фоксовским объектам, которая иногда возникает при клике по ole-объектам. Установка же Enabled=.F. упрощает работу с ними. Особенно это заметно напрмер при использовании флеш-анимации. Я использовал аналоговые круглые часики со стрелками для показа времени на форме через размещенный на ней shockwave ole-объект, и без отключения Enabled любой клик по ним "разрывал" фоксовскую цепочку переключения клавишами типа Таб или стрелок для перемещения по элементам формы. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 4 раз(а). Последнее : Crispy, 17.05.18 10:22 |
Re: Некомфортный просмотр файлов | |
---|---|
Тьма Автор Сообщений: 21 Дата регистрации: 12.04.2017 |
Спасибо всем (кроме of63). Информации достаточно - буду разбираться дальше. Тему можно закрыть.
|
© 2000-2024 Fox Club  |