:: Visual Foxpro, Foxpro for DOS
Некомфортный просмотр файлов
Тьма
Автор

Сообщений: 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 ничем. Подскажите, пожалуйста, у кого какие мысли есть? Может изложил сумбурно - прошу пардону...
Ratings: 0 negative/0 positive
Re: Некомфортный просмотр файлов
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
ActiveX всегда будут поверх нативных VFP-контролов, и ZOrder на них не действует. Так что перекрыть шейпом или контейнером не получится, придется как-то по-другому решать. Как один из вариантов - конвертировать все форматы в PDF или в картинку перед показом. Тогда для показа можно обойтись одним OCX, но придется прикрутить конвертер.
Можно еще попытаться другие OCX найти. Некоторые коммерческие, судя по описанию, поддерживают ReadOnly - вот, например www.edrawsoft.com



Исправлено 1 раз(а). Последнее : ry, 16.05.18 19:14
Ratings: 0 negative/1 positive
Re: Некомфортный просмотр файлов
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Дурацкая мысль. Скопируй просматриваемый файл в "тмп"-шный директорий, сделай ему атрибут RO, и предьяви этот файл в ShellExecute... Только проблема - когда его (файл) уничтожить?

Еще есть экзотический вид открытия (создания) файла (в CreateFile - FILE_FLAG_DELETE_ON_CLOSE 0x04000000 - когда будет CloseHandle, последний на этот файл, то файл будет уничтожен...). Что-то можно с ним придумать...



Исправлено 1 раз(а). Последнее : of63, 16.05.18 19:55
Ratings: 0 negative/0 positive
Re: Некомфортный просмотр файлов
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
А вот полупрозрачным окном его можно сверху накрыть.
Ratings: 0 negative/1 positive
Re: Некомфортный просмотр файлов
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Тьма
Ну не прикрываются сторонние .OCX ничем. Подскажите, пожалуйста, у кого какие мысли есть?

Подобное уже когда-то обсуждали. Возможно давно конечно, да и тему уж не помню, по каким словам можно поискать.
"Сторонние .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
Ratings: 0 negative/2 positive
Re: Некомфортный просмотр файлов
Тьма
Автор

Сообщений: 21
Дата регистрации: 12.04.2017
Спасибо всем (кроме of63). Информации достаточно - буду разбираться дальше. Тему можно закрыть.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 22 (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика